云服务器内容精选

  • 检查Cloud-Init工具相关配置是否成功 执行以下命令,无错误发生,说明Cloud-Init配置成功。 cloud-init init --local 正确安装的Cloud-Init会显示Cloud-Init的版本详细信息,并且无任何错误信息。例如,正确安装的情况下,不含有缺少文件的提示信息。 执行如下命令,可将系统用户密码有效期设置为最大。此操作可选。 chage -M 99999 $user_name 其中,user_name为系统用户,例如root账户。 密码有效期建议设置为99999。
  • 采用官方源码编译安装方法 官方源码编译安装方法的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工具。在不同的操作系统下,查看是否已经安装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/* 设置完成后请勿重启云服务器,否则,需重新设置。
  • 采用官方提供的包源安装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工具章节。
  • 前提条件 云服务器的状态为“运行中”。 需保证根目录可写入,且剩余空间大于300MB。 对于Linux弹性云服务器,selinux会影响重置密码插件运行。若开启了selinux,请参考关闭selinux禁用selinux。 使用SUSE 11 SP4镜像创建的云服务器,内存需要大于等于4G时才能支持一键式重置密码功能。 云服务器使用的VPC网络DHCP不能禁用。 云服务器网络正常通行。 云服务器安全组出方向规则满足如下要求: 协议:TCP 端口范围:80 远端地址:169.254.0.0/16 如果您使用的是默认安全组出方向规则,则已经包括了如上要求,可以正常初始化。默认安全组出方向规则为: 协议:ALL 端口范围:ALL 远端地址:0.0.0.0/16
  • 安装须知 用户自行决定是否安装CloudResetPwdAgent插件,使云服务器具备一键式重置密码功能。 一键式重置密码插件CloudResetPwdAgent已按照GNU General Public License v2.0协议开源至Github开源平台,开放、透明、安全,请您放心使用。 支持安装一键式重置密码插件的操作系统版本如表1所示。 表1 支持安装一键式重置密码插件的操作系统版本 操作系统类型 操作系统版本 CentOS CentOS 8.3 64bit CentOS 8.2 64bit CentOS 8.1 64bit CentOS 8.0 64bit CentOS 7.3 64bit CentOS 7.2 64bit CentOS 7.0 64bit CentOS 7.1 64bit CentOS 6.9 64bit CentOS 6.8 64bit CentOS 6.8 32bit CentOS 6.6 32bit CentOS 6.6 64bit CentOS 6.5 64bit CentOS 6.4 64bit CentOS 6.3 64bit 说明: CentOS 8需要先关闭selinux后再安装一键式重置密码插件,安装后再根据需要选择是否打开selinux。 Debian Debian 9.0 64bit Debian 8.8 64bit Debian 8.2 64bit Debian 7.5 64bit Debian 7.5 32bit openSUSE openSUSE 42.2 64bit openSUSE 13.2 64bit openSUSE Leap 42.2 64bit openSUSE Leap 42.1 64bit SUSE SUSE 12 SP2 64bit SUSE 12 SP1 64bit SUSE 11 SP4 64bit Ubuntu Ubuntu 16.10 32bit Ubuntu 16.04 32bit Ubuntu Server 16.04 64bit Ubuntu Server 14.04 64bit Ubuntu Server 14.04 32bit EulerOS EulerOS 2.2 64bit Fedora Fedora 25 64bit Fedora 24 64bit Oracle Linux Oracle Linux 7.3 64bit Oracle Linux 6.9 64bit Oracle Linux 6.5 64bit
  • 操作步骤 检查弹性云服务器是否已安装一键式重置密码插件。 以root用户登录弹性云服务器。 执行以下命令,查询是否已安装CloudResetPwdAgent。 ls -lh /Cloud* 图1 查询是否已安装一键式重置密码插件 检查结果是否如图1所示。 是,表示已安装一键式重置密码插件,结束。 否,表示未安装一键式重置密码插件,请继续执行如下操作进行安装。 请参考获取并校验一键式重置密码插件完整性(Linux),下载对应的一键式重置密码插件CloudResetPwdAgent.zip并完成完整性校验。 安装一键式重置密码插件对插件的具体放置目录无特殊要求,请您自定义。 执行以下命令,解压软件包CloudResetPwdAgent.zip。 安装一键式重置密码插件对插件的解压目录无特殊要求,请您自定义。 unzip -o -d 插件解压目录 CloudResetPwdAgent.zip 示例: 假设插件解压的目录为/home/linux/test,则命令行如下: unzip -o -d /home/linux/test CloudResetPwdAgent.zip 安装一键式重置密码插件。 执行以下命令,进入文件CloudResetPwdAgent.Linux。 cd CloudResetPwdAgent/CloudResetPwdAgent.Linux 执行以下命令,添加文件setup.sh的运行权限。 chmod +x setup.sh 执行以下命令,安装插件。 sudo sh setup.sh 如果脚本执行成功打印“cloudResetPwdAgent install successfully.”,且未打印“Failed to start service cloudResetPwdAgent”,表示安装成功。 您也可以根据1,检查密码重置插件是否安装成功。 如果密码重置插件安装失败,请检查安装环境是否符合要求,并重试安装操作。 修改重置密码插件的文件权限。 chmod 700 /CloudrResetPwdAgent/bin/cloudResetPwdAgent.script chmod 700 /CloudrResetPwdAgent/bin/wrapper chmod 600 /CloudrResetPwdAgent/lib/*