配置Cloud-Init工具 本节介绍了配置CloudInit工具的操作场景、前提条件、配置步骤说明等内容。 操作场景 CloudInit工具安装完成后,请参考本节操作配置CloudInit工具。 前提条件 已安装CloudInit工具。 已为云主机绑定弹性公网IP。 已登录云主机。 云主机的网卡属性为DHCP方式。 配置步骤说明 包含如下两步操作: 1. 配置CloudInit工具。 具体操作请参考下文“配置CloudInit工具”。 2. 检查CloudInit工具相关配置是否成功。 具体操作请参考下文“检查CloudInit工具相关配置是否成功”。 配置CloudInit工具 1. 用户可以根据需要根据用户类型配置登录云主机的用户权限。使用root账户登录,需要开启root用户的ssh权限,并开启密码远程登录。 − 若用户选择注入密码,则通过自己注入的密码进行远程SSH或noVNC登录。 − 若用户选择注入密钥,则通过自己注入的密钥进行远程SSH登录。 执行以下命令,在vi编辑器中打开“/etc/cloud/cloud.cfg”。 vi /etc/cloud/cloud.cfg 2. (可选)在“/etc/cloud/cloud.cfg”中配置“applynetworkconfig”为“false”。 对于使用CloudInit 18.3及以上版本的用户,需执行本操作。 配置示例 3. 设置开放root密码远程登录并开启root用户的ssh权限。以CentOS 6.7系列操作系统为例,配置文件中的“disableroot”字段为“1”表示为禁用,为“0”表示不禁用(部分OS的CloudInit配置使用“true”表示禁用,“false”表示不禁用)。设置“disableroot”值为“0”,“sshpwauth”为“1”,“lockpasswd”设置为“false”,“false”表示不锁住用户密码。 users: name: root lockpasswd: False disableroot: 0 sshpwauth: 1 4. 开启机器名更新机制,请勿注释或删除“ updatehostname”语句。 cloudinitmodules: migrator bootcmd writefiles growpart resizefs sethostname updatehostname updateetchosts rsyslog usersgroups ssh 5. 执行以下命令,在vi编辑器中打开“/etc/ssh/sshdconfig”。 vi /etc/ssh/sshdconfig 6. 将“sshdconfig”中的“PasswordAuthentication”的值修改为“yes”。 说明: 如果是SUSE和openSUSE操作系统,需要同时配置“sshdconfig”文件中的以下两个参数为“yes”。 PasswordAuthentication ChallengeResponseAuthentication 7. 确保删除镜像模板中已经存在的linux账户和“/home/linux”目录。 userdel linux rm fr /home/linux 8. 配置agent访问OpenStack数据源。 在“/etc/cloud/cloud.cfg”最后一行添加如下内容,配置agent访问OpenStack数据源。 datasourcelist: [ OpenStack ] datasource: OpenStack: metadataurls: [' maxwait: 120 timeout: 5 说明: maxwait和timeout可由用户自定义是否需要配置,上述回显信息中maxwait和timeout的取值仅供参考。 当操作系统版本低于Debian8、CentOS 5时,不支持配置agent访问OpenStack数据源。 CentOS、EulerOS操作系统云主机必须要禁用默认的zeroconf路由,以便精确访问OpenStack数据源。 echo "NOZEROCONFyes" >> /etc/sysconfig/network 9. 在配置文件“/etc/cloud/cloud.cfg”中禁用CloudInit接管网络。 当CloudInit版本等于或高于0.7.9版本时,在配置文件“/etc/cloud/cloud.cfg”中增加如下内容,禁用CloudInit接管网络。 network: config: disabled 说明: 增加的内容需严格按照yaml格式进行配置。 禁用CloudInit接管网络 10. 在配置文件“/etc/cloud/cloud.cfg”中补充如下内容。 manageetchosts: localhost 防止启动云主机时,系统长时间卡在“Waiting for cloudResetPwdAgent”状态。 新增manageetchosts:localhost 11. 修改配置文件“cloudinitmodules”。 在“cloudinitmodules”中将ssh从最后提前到第一位处理,提高云主机ssh登录速度。 提高云主机ssh登录速度 12. 修改以下配置使得镜像创建的云主机主机名不带“.novalocal”后缀且主机名称中可以带点号。 a. 执行如下命令,修改 “init.py”文件。 vi /usr/lib/python2.7/sitepackages/cloudinit/sources/init.py 按“i”进入编辑模式,根据关键字toks查询,修改内容如下回显信息所示。 if toks: toks str(toks).split('.') else: toks ["ip%s" % lhost.replace(".", "")] else: toks lhost.split(".novalocal") if len(toks) > 1: hostname toks[0]