配置Cloud-Init工具

操作场景
Cloud-Init工具安装完成后,请参考本节操作配置Cloud-Init工具。
前提条件
• 已安装Cloud-Init工具。
• 已为Linux云服务器绑定弹性IP。
• 已登录Linux云服务器。
• Linux云服务器的网卡属性为DHCP方式。
操作步骤

  1. 配置Cloud-Init工具。
    具体操作请参考配置Cloud-Init工具。
  2. 检查Cloud-Init工具相关配置是否成功。
    具体操作请参考检查Cloud-Init工具相关配置是否成功。
    配置Cloud-Init工具
  3. 用户可以根据需要根据用户类型配置登录云服务器的用户权限。使用root帐户登录,需要开启root用户的ssh权限,并开启密码远程登录。
    o 若用户选择注入密码,则通过自己注入的密码进行远程SSH或noVNC登录。
    o 若用户选择注入密钥,则通过自己注入的密钥进行远程SSH登录。
    执行以下命令,在vi编辑器中打开“/etc/cloud/cloud.cfg”。
    vi /etc/cloud/cloud.cfg
  4. 设置开放root密码远程登录并开启root用户的ssh权限。以CentOS 6.7系列操作系统为例,配置文件中的disable_root字段为1表示为禁用,为0表示不禁用(部分OS的Cloud-Init配置使用true表示禁用,false表示不禁用)。设置disable_root值为0,ssh_pwauth为1,lock_passwd设置为false,false表示不锁住用户密码。
  5. users:
    • name: root
  6. lock_passwd: False
    
  7. disable_root: 0
    ssh_pwauth: 1
  8. 开启机器名更新机制,请勿注释或删除 - update_hostname语句。
  9. cloud_init_modules:
    • migrator
    • bootcmd
    • write-files
    • growpart
    • resizefs
    • set_hostname
    • update_hostname
    • update_etc_hosts
    • rsyslog
    • users-groups
  • ssh
  1. 执行以下命令,在vi编辑器中打开“/etc/ssh/sshd_config”。
    vi /etc/ssh/sshd_config
  2. 将“sshd_config”中的“PasswordAuthentication”的值修改为“yes”。
    说明:
    如果是SUSE和OpenSUSE的操作系统,需要同时配置“sshd_config”文件中的以下两个参数同时配置为"yes"。
    o PasswordAuthentication
    o ChallengeResponseAuthentication
  3. 确保删除镜像模板中已经存在的linux账户和/home/linux目录。

userdel linux

rm -fr /home/linux

  1. 配置agent访问OpenStack数据源
    在“/etc/cloud/cloud.cfg”最后一行添加如下内容,配置agent访问OpenStack数据源。
    datasource_list: [ OpenStack ]
    datasource:
    OpenStack:
    metadata_urls: [‘http://169.254.169.254’]
    max_wait: 120
    timeout: 5
    说明:
    o max_wait和timeout的可由用户自定义是否需要配置,上述回显信息中max_wait和timeout的取值仅供参考。
    o 当操作系统版本低于Debian8,CentOS5,Red Hat5时,不支持配置agent访问OpenStack数据源。
    o CentOS、Red Hat、Oracle、EulerOS操作系统云服务器必须要禁用默认的zeroconf路由,以便精确访问OpenStack数据源。

echo “NOZEROCONF=yes” >> /etc/sysconfig/network

  1. 在配置文件/etc/cloud/cloud.cfg中禁用Cloud-Init接管网络
    当Cloud-Init版本等于高于0.7.9版本时,在配置文件/etc/cloud/cloud.cfg中增加如下内容,禁用Cloud-Init接管网络。
    network:
    config: disabled
    说明:
    增加的内容需严格按照yaml格式进行配置。
    图1 禁用Cloud-Init接管网络
    在这里插入图片描述
  2. 在配置文件/etc/cloud/cloud.cfg中补充如下内容。
    manage_etc_hosts: localhost
    防止启动云服务器时,系统长时间卡在“Waiting for cloudResetPwdAgent”状态。
    图2 新增manage_etc_hosts: localhost
    在这里插入图片描述
  3. 修改配置文件cloud_init_modules
    在cloud_init_modules中将ssh从最后提前到第一位处理,提高云服务器ssh登录速度。
    图3 提高云服务器ssh登录速度
    在这里插入图片描述
  4. 修改以下配置使得镜像创建的云服务器主机名不带.novalocal后缀且主机名称中可以带点号。
    a. 执行如下命令,修改__init__.py文件。
    vi /usr/lib/python2.7/site-packages/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]
#domain = ‘.’.join(toks[1:])
else:
hostname = toks[0]

if fqdn and domain != defdomain:
return “%s.%s” % (hostname, domain)
else:
return hostname
修改完成后按“ESC”退出编辑模式,输入“:wq!”保存并退出。
图4 修改__init__.py文件
在这里插入图片描述
b. 执行如下命令进入cloudinit/sources文件夹。
cd /usr/lib/python2.7/site-packages/cloudinit/sources/
c. 执行如下命令,删除__init__.pyc文件和优化编译后的__init__.pyo文件。
rm -rf init.pyc
rm -rf init.pyo
d. 执行如下命令,清理日志信息。
rm -rf /var/lib/cloud/*
rm -rf /var/log/cloud-init*
12. 执行以下命令编辑Cloud-Init日志输出路径配置文件,设置日志处理方式handlers,建议配置为cloudLogHandler。
vim /etc/cloud/cloud.cfg.d/05_logging.cfg
图5 配置为cloudLogHandler
在这里插入图片描述
检查Cloud-Init工具相关配置是否成功
执行以下命令,无错误发生,说明Cloud-Init配置成功。
cloud-init init --local
正确安装的Cloud-Init会显示Cloud-Init的版本详细信息,并且无任何错误信息。例如,正确安装的情况下,不含有缺少文件的提示信息。
说明:
执行如下命令,可对系统用户密码有效期设置为最大。(可选)

chage -M 99999 $user_name

user_name为系统用户,例如root账户。
密码过期时间有效期建议设置为99999。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值