云服务器内容精选

  • 操作背景 安装bms-network-config软件包,与Cloud-Init配合完成集中式裸金属服务器的网络配置,需要安装bms-network-config软件包的裸金属服务器规格如表1所示。分布式裸金属服务器(带SDI 3.0卡或SDI 2.2网络卡的机型)不需要执行此步骤。 表1 裸金属服务器规格 规格类型 规格名称 通用型 physical.s3.large、physical.s3.xlarge、physical.s3.2xlarge、physical.s4.medium、physical.s4.large、physical.s4.xlarge、physical.s4.2xlarge、physical.s4.3xlarge 本地存储型 physical.d1.large、physical.d2.tiny、physical.d2.large、physical.d2.xmedium 内存优化型 physical.m2.small、physical.m2.medium、physical.m2.large、physical.m2.xlarge IO优化型 physical.io1.large、physical.io2.xlarge GPU加速型 physical.p1.large、physical.p2.large、physical.g1.small、physical.p3.large、physical.pi6.3xlarge.6 高性能计算型 physical.h2.large、physical.hc2.xlarge 鲲鹏型 physical.ks1.2xlarge
  • 操作步骤 进入bms-network-config安装包所在目录,执行rpm -ivh bms-network-config-1.0-7.centosRedhat7.x86_64.rpm命令。 [root@localhost r74]# rpm -ivhbms-network-config-1.0-7.centosRedhat7.x86_64.rpm Preparing... ############################### [100%] Updating / installing... 1:bms-network-config-1.0.7.centosRe############################### [100%] SUSE 12/SUSE 15系列安装bms-network-config时,如果出现下面的依赖报错,请执行:rpm -ivh bms-network-config-1.0-9.suse12.x86_64.rpm --nodeps --force 对于Ubuntu/Debian操作系统,使用dpkg -ixxx进行安装,xxx为deb包名。 root@ubuntu:~/file# dpkg -i bms-network-config-1.0.7.ubuntu1604-918.deb Selecting previously unselected package bms-network-config. (Reading database ... 97630 files and directories currently installed.) Preparing to unpack bms-network-config-1.0.7.ubuntu1604-918.deb ... Unpacking bms-network-config (1.0) ... Setting up bms-network-config (1.0) ... root@ubuntu:~/file# dpkg -s bms-network-config rpm包和deb包的名称以实际为准。 安装完成后,执行rpm -qa | grep bms-network-config,如下回显表示安装成功。 [root@localhost r74]# rpm -qa | grep bms bms-network-config-1.0.7.centosRedhat7.x86_64 对于Ubuntu/Debian操作系统,使用dpkg -s bms-network-config命令查看。 查看服务状态。 对于Oracle Linux 7、Red Hat 7、CentOS 7、Ubuntu 16.04、Ubuntu 18.04、SUSE 12、SUSE 15、EulerOS操作系统,执行service bms-network-config status命令查看服务状态。如果不是“enabled”,请执行systemctl enable bms-network-config,开启服务。 [root@localhost r74]# service bms-network-config status Redirecting to /bin/systemctl status bms-network-config.service bms-network-config.service - Network Config Loaded: loaded (/usr/lib/systemd/system/bms-network-config service; enabled vendor preset: disabled) Active: inactive (dead) 对于Red Hat 6系列、CentOS 6系列、SUSE 11 SP4和Oracle Linux 6.8、Oracle Linux 6.9操作系统,执行chkconfig --list | grep bms-network-config命令查看服务状态。如果不是“on”,请执行chkconfig bms-network-config on命令,开启服务。 [root@localhost r69]# chkconfig --list | grep bms bms-network-config 0:off 1:off 2:on 3:on 4:off 5:on 6:off 对于Ubuntu 14.04/Debian,可以使用initctl status bms-network_config查看安装状态。 root@ubuntu:~# initctl status bms-network_config bms-network_config stop/waiting 检查服务启动依赖。 参考使用systemctl cat bms-network-config命令,确保服务文件如下: [Unit] Description=NetworkConfig DefaultDependencies=no After=dbus.service Wants=dbus.service [Service] Type=oneshot ExecStart=/usr/bin/bms-network_config rhel RemainAfterExit=yes TimeoutSec=0 [Install] WantedBy=multi-user.target 尤其注意依赖项顺序。如果不对,使用vim /usr/lib/systemd/system/bms-network-config.service命令进行修改。
  • 操作步骤 单击左下角的图标,选择“服务器管理”,进入“服务器管理”页面。 在左侧导航树中选择“本地服务器”,在右侧“Windows防火墙”区域,单击其后的状态链接。 在“Windows防火墙”页面,选择左侧导航树中的“开启或关闭Windows防火墙”。 在“自定义设置”页面,将专用网络和公用网络的Windows防火墙设置为关闭。 防火墙设置完成后,返回“本地服务器”页面,单击“远程桌面”后的状态链接。 在“系统属性”页面,选择“允许远程连接到此计算机”。 返回“本地服务器”页面,确保各属性状态如下图所示。
  • 采用官方源码编译安装方法 官方源码编译安装方法的Cloud-Init工具Github开源地址:https://github.com/canonical/cloud-init/ 执行以下命令,下载Cloud-Init压缩包,并将其复制至新建的“/tmp/CLOUD-INIT”文件夹。 0.7.6版本安装包下载地址:https://github.com/canonical/cloud-init/archive/refs/tags/0.7.6.zip 0.7.9版本安装包下载地址:https://github.com/canonical/cloud-init/archive/refs/tags/0.7.9.zip Cloud-Init所有版本安装包下载地址:https://github.com/canonical/cloud-init/releases wget https://github.com/canonical/cloud-init/archive/refs/tags/0.7.6.zip mkdir /tmp/CLOUD-INIT cp cloud-init-0.7.6.zip /tmp/CLOUD-INIT cd /tmp/CLOUD-INIT 执行如下命令,解压Cloud-Init压缩包。 unzip cloud-init-0.7.6.zip 执行如下命令进入cloud-init-0.7.6文件夹。 cd cloud-init-0.7.6 若cloud-init为18.3~22.3版本,则需要进行如下适配。否则跳过本步骤,继续执行下一步。 sed -i '/VALID_DMI_ASSET_TAGS =/a\VALID_DMI_ASSET_TAGS += ["HUAWEICLOUD"]' cloudinit/sources/DataSourceOpenStack.py cat cloudinit/sources/DataSourceOpenStack.py | grep VALID_DMI_ASSET_TAGS 确认执行结果如下图,表示语句添加成功。 按照操作系统类型,执行相应的命令安装Cloud-Init安装包。 CentOS6.x/SUSE11.x: python setup.py build python setup.py install --init-system sysvinit CentOS7.x/SUSE12.x: python setup.py build python setup.py install --init-system systemd Cloud-Init安装时需要添加syslog用户到adm组。存在syslog用户时直接添加syslog用户到adm组。不存在syslog用户时(如CentOS和SUSE),执行下列命令创建syslog用户,添加到adm组: useradd syslog groupadd adm usermod -g adm syslog 设置Cloud-Init相关服务为开机自启动。 若操作系统是sysvinit自启动管理服务,则执行以下命令进行设置。 chkconfig --add cloud-init-local; chkconfig --add cloud-init; chkconfig --add cloud-config; chkconfig --add cloud-final chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status 若操作系统是systemd自启动管理服务,则执行以下命令进行设置。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查Cloud-Init是否安装成功。 cloud-init -v cloud-init init --local 回显如下类似信息所示表示安装Cloud-Init成功。 cloud-init 0.7.6
  • 采用官方提供的包源安装Cloud-Init工具(优先推荐) 在不同操作系统的云服务器上安装Cloud-Init工具的方法不同,请在root用户下执行相关安装操作。 以下将介绍SUSE、CentOS、Fedora、Debian和Ubuntu操作系统安装Cloud-Init工具的具体方法。其他操作系统类型,请安装并配置对应类型的Cloud-Init工具,例如,使用CoreOS操作系统时需安装并配置coreos-cloudinit。 SUSE操作系统 SUSE操作系统的Cloud-Init网络安装地址: https://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/ http://download.opensuse.org/repositories/Cloud:/Tools/ 在上述提供的网络安装地址下选择相应操作系统版本的repo安装包进行安装。 以SUSE Enterprise Linux Server 12为例,Cloud-Init工具的安装步骤如下。 登录到创建Linux私有镜像所使用的云服务器。 执行以下命令,安装SUSE 12的网络安装源。 zypper ar https://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/SLE_12_SP3/Cloud:Tools.repo 执行以下命令,更新网络安装源。 zypper refresh 执行以下命令,安装Cloud-Init。 zypper install cloud-init 执行以下命令,设置Cloud-Init为开机自启动服务。 SUSE 11: chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status SUSE 12以及openSUSE 12/13/42: systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 对于SUSE和openSUSE操作系统,请执行以下步骤禁止动态修改云服务器名称。 执行以下命令,使用vi编辑器打开“dhcp”文件。 vi etc/sysconfig/network/dhcp 将“dhcp”文件中的“DHCLIENT_SET_HOSTNAME”的值修改为“no”。 CentOS操作系统 CentOS操作系统的Cloud-Init网络安装地址如表1所示。请在提供的网络安装地址下选择相应的epel-release安装包进行安装。 表1 Cloud-Init网络安装地址 操作系统类型 版本 网络安装地址 CentOS 6系列32位 https://archives.fedoraproject.org/pub/archive/epel/6/i386/ 6系列64位 https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/ 7系列64位 https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/ 执行以下命令安装Cloud-Init: yum install 网络安装地址/epel-release-x-y.noarch.rpm yum install cloud-init “网络安装地址”表示Cloud-Init对应的epel-release安装包的地址,“x-y”表示当前操作系统对应的Cloud-Init epel-release版本号,执行命令时需参考表1以及实际使用的安装包版本进行替换。 以CentOS 6系列64位为例,当前版本号为6.8,则命令修改为: yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm 以CentOS 7系列64位为例,当前版本号为7.14。则命令修改为: yum install https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm 执行以下命令,设置Cloud-Init为开机自启动服务。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service Fedora操作系统 安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/yum.repo.d/fedora.repo”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考相关Fedora官网信息配置软件包安装源。 执行以下命令,安装Cloud-Init。 yum install cloud-init 执行以下命令,设置Cloud-Init为开机自启动服务。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service Debian和Ubuntu操作系统 安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/apt/sources.list”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考Debian或者Ubuntu官网信息配置软件包安装源。 执行以下命令,安装Cloud-Init。 apt-get update apt-get install cloud-init 执行以下命令,设置Cloud-Init为开机自启动服务。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 以cloud-init-23.2.2版本为例,介绍Centos、Fedora、Ubuntu、Debian和SUSE操作系统安装Cloud-Init工具的具体方法,安装步骤如下。 cloud-init-23.2.2.tar.gz源码包下载地址:https://launchpad.net/cloud-init/trunk/23.2.2/+download/cloud-init-23.2.2.tar.gz Centos 7/Fedora (Fedora-Server-36)操作系统 依赖python3 环境,确认已经安装python3。 查询当前系统环境是否已安装cloud-init, 执行有结果表示已经安装。 cloud-init -v 删除cloud-init缓存目录。 rm -rf /var/lib/cloud/* 安装cloud-init依赖包 yum install python3-pip -y yum install python3-devel 执行如下命令,下载cloud-init压缩包。 wget https://launchpad.net/cloud-init/trunk/23.2.2/+download/cloud-init-23.2.2.tar.gz 执行如下命令,解压cloud-init压缩包。 tar -zxvf cloud-init-23.2.2.tar.gz 执行如下命令进入cloud-init-23.2.2目录文件夹,并安装所有依赖库。 cd cloud-init-23.2.2 pip3 install -r requirements.txt 执行如下命令安装cloud-init。 python3 setup.py build python3 setup.py install --init-system systemd 在配置文件/etc/cloud/cloud.cfg禁用cloud-init接管网络(可选)。 vi /etc/cloud/cloud.cfg 添加如下内容: network: config: disabled 重启cloud-init, 查看cloud-init 状态。 systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 设置cloud-init相关服务为开机自启动。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查cloud-init版本以及是否正常运行。 cloud-init -v cloud-init init --local Ubuntu22.0.4/debian11操作系统 依赖python3 环境,确认已经安装python3。 检查并清理系统自带的cloud-init可能存在冗余的配置文件。 rm -rf /var/lib/cloud/* rm -f /var/log/cloud-init* 删除/etc/cloud/cloud.cfg.d/目录下除了log相关的配置文件外的所有文件。 执行如下命令更新apt,检查是否有wget,没有则安装。 sudo apt update sudo apt install wget 执行如下命令,安装依赖包。 apt-get install cloud-guest-utils -y apt-get install python3-pip -y apt-get install python3-devel 执行以下命令,下载cloud-init压缩包。 wget https://launchpad.net/cloud-init/trunk/23.2.2/+download/cloud-init-23.2.2.tar.gz 执行如下命令,解压cloud-init压缩包。 tar -zxvf cloud-init-23.2.2.tar.gz 进入cloud-init目录。 cd cloud-init-23.2.2 执行如下命令安装所有依赖库。 pip3 install -r requirements.txt 执行如下命令安装cloud-init。 python3 setup.py install 在vi /etc/cloud/cloud.cfg配置禁止cloud-init接管网络(可选)。 1.当cloud-init版本等于高于0.7.9版本,且用户需要自定义网络时,在cloud-init安装完成后,请执行如下命令,在编辑器中打开/etc/cloud/cloud.cfg。 vi /etc/cloud/cloud.cfg 2.输入i, 在/etc/cloud/cloud.cfg中将network修改为disabled, 禁用Cloud-Init接管网络配置(若没有该配置项请增加): network: config: disabled 重启cloud-init, 查看cloud-init 状态 systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 设置cloud-init相关服务为开机自启动。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查cloud-init版本以及是否正常运行。 cloud-init -v cloud-init init --local SUSE Enterprise Linux Server 15操作系统 依赖python3 环境,确认已经安装python3。 执行如下命令查看历史已配置好的安装源。 zypper lr 执行如下命令删除历史配置的suse的cloud-init的源。 zypper rr 步骤1中执行结果显示的序号 执行如下命令配置suse源。 zypper ar https://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/SLE_15_SP4/Cloud:Tools.repo 执行如下命令刷新suse源。 zypper refresh 执行如下命令安装cloud-init。 zypper install cloud-init 安装cloud-init成功后,执行cloud-init -v,若出现类似下图报错提示,需执行如下命令安装依赖包。 pip install requests pyyaml oauthlib jsonschema jsonpatch jinja2 configobj 检查cloud-init是否安装成功,若出现下图报错提示,则需要在/etc/cloud/cloud.cfg配置datasource_list。 datasource_list: [ OpenStack ] datasource: OpenStack: metadata_urls: ['http://169.254.169.254'] max_wait: 120 timeout: 5 apply_network_config: false 修改配置文件后,重启cloud-init, 并查看cloud-init 的状态 systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 设置cloud-init相关服务为开机自启动。 systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service 执行如下命令检查cloud-init版本以及是否正常运行。 cloud-init -v cloud-init init --local
  • 操作场景 为了保证使用私有镜像创建的新云服务器可以通过“用户数据注入”功能注入初始化自定义信息(例如为云服务器设置登录密码),请在创建私有镜像前安装Cloud-Init工具。 安装Cloud-Init工具时需要从官网下载并安装,因此,需要提前为云服务器绑定弹性公网IP。 不安装Cloud-Init工具,将无法对云服务器进行自定义配置,只能使用镜像原有密码登录云服务器。 使用公共镜像创建的云服务器,默认已经安装Cloud-Init,不需要执行安装及配置操作。 用户导入镜像创建的云服务器,请按照指导安装及配置Cloud-Init。配置Cloud-Init操作请参考配置Cloud-Init工具章节。
  • 检查是否已经安装Cloud-Init工具 请先执行如下步骤检查是否已安装Cloud-Init工具。在不同的操作系统下,查看是否已经安装Cloud-Init工具的方法不同。 若依赖python3 环境时,以Ubuntu22.0.4为例,执行以下命令查看是否安装Cloud-Init工具。 which cloud-init 回显类似如下,表示已经安装Cloud-Init工具,无需重复安装。 /usr/bin/cloud-init 回显类似如下,表示未安装Cloud-Init工具。 /usr/bin/which: no cloud-init in (/usr/local/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin) 若依赖python2 环境时,以CentOS 6系列为例,执行以下命令查看是否安装Cloud-Init工具。 which cloud-init 回显类似如下,表示已经安装Cloud-Init工具,无需重复安装。 cloud-init-0.7.5-10.el6.centos.2.x86_64 无回显信息表示未安装Cloud-Init工具。 由于Cloud-Init工具存在多种安装方法,如果无回显信息,请再次使用rpm -qa |grep cloud-init命令进行检查。which cloud-init和rpm -qa |grep cloud-init任何一个命令显示已安装,表示操作系统已安装Cloud-Init工具。 如果已安装Cloud-Init工具,还需要执行以下操作: 请确认当前云服务器操作系统中用于SSH登录的证书是否继续使用。如果不再使用该证书,请删除证书。 root用户对应目录下的文件(如“/$path/$to/$root/.ssh/authorized_keys”),执行以下命令: cd /root/.ssh rm authorized_keys 非root用户对应目录下的证书文件(如“/$path/$to/$none-root/.ssh/authorized_keys”),执行以下命令: cd /home/centos/.ssh rm authorized_keys 执行以下命令,清除Cloud-Init工具产生的缓存,确保使用该私有镜像创建的云服务器可以使用证书方式登录。 sudo rm -rf /var/lib/cloud/* 设置完成后请勿重启云服务器,否则,需重新设置。