- 最新动态
- 功能总览
- 产品介绍
- 快速入门
-
用户指南
- 通过IAM授予使用IMS的权限
- 创建私有镜像
- 管理私有镜像
- Windows操作系统相关操作
- Linux操作系统相关操作
- 管理公共镜像
- 标签管理
- 配额管理
- 使用CTS审计IMS操作事件
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 镜像咨询类
- 操作系统停止支持类
- 镜像创建类
- 镜像共享类
- 操作系统类
- 镜像导入类
- 镜像导出类
-
镜像优化类
- 一定要在云服务器中安装Guest OS driver吗?
- Windows操作系统为什么要安装并更新virtio?
- 通过镜像文件注册私有镜像过程中,系统会对镜像做哪些修改?
- 创建私有镜像前云服务器、裸金属服务器或镜像文件需要完成哪些初始化配置?
- Windows外部镜像文件在导出前未完成初始化配置,怎么办?
- Linux外部镜像文件在导出前未完成初始化配置,怎么办?
- 如何优化镜像?
- 如何使用通过I代云服务器创建的私有镜像创建II代云服务器
- 如何设置镜像的网卡多队列属性?
- 如何配置IPv6地址
- 如何优化系统盘镜像使其支持实例快速发放?
- 为什么Windows云服务器安装Guest OS driver会失败?
- 怎样安装原生的XEN和KVM驱动
- 镜像复制类
- 镜像删除类
- 镜像加密类
- 市场镜像类
- 账号与权限类
- Cloud-Init操作类
- 云服务器创建类
- 驱动安装类
- 镜像标签类
- 计费类
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
配置Cloud-Init工具
操作场景
Cloud-Init工具安装完成后,请参考本节操作配置Cloud-Init工具。
前提条件
- 已安装Cloud-Init工具。
- 已为云服务器绑定弹性公网IP。
- 已登录云服务器。
- 云服务器的网卡属性为DHCP方式。
配置步骤说明
包含如下两步操作:
- 配置Cloud-Init工具。
具体操作请参考配置Cloud-Init工具。
- 检查Cloud-Init工具相关配置是否成功。
具体操作请参考检查Cloud-Init工具相关配置是否成功。
配置Cloud-Init工具
- 用户可以根据需要根据用户类型配置登录云服务器的用户权限。使用root账户登录,需要开启root用户的ssh权限,并开启密码远程登录。
- 若用户选择注入密码,则通过自己注入的密码进行远程SSH或noVNC登录。
- 若用户选择注入密钥,则通过自己注入的密钥进行远程SSH登录。
- 设置开放root密码远程登录并开启root用户的ssh权限。
- 在配置文件“/etc/cloud/cloud.cfg”中禁用Cloud-Init接管网络。
当Cloud-Init版本等于或高于0.7.9版本时,在配置文件“/etc/cloud/cloud.cfg”中增加如下内容,禁用Cloud-Init接管网络。
图1 禁用Cloud-Init接管网络增加的内容需严格按照yaml格式进行配置。
- 配置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 apply_network_config: false
- max_wait和timeout可由用户自定义是否需要配置,上述回显信息中max_wait和timeout的取值仅供参考。
- 当操作系统版本低于Debian8、CentOS 5时,不支持配置agent访问OpenStack数据源。
- CentOS、EulerOS操作系统云服务器必须要禁用默认的zeroconf路由,以便精确访问OpenStack数据源。
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
- apply_network_config: false为可选项,对于使用Cloud-Init 18.3及以上版本的用户,需添加此配置项。
- 在配置文件“/etc/cloud/cloud.cfg”中补充如下内容。
防止启动云服务器时,系统长时间卡在“Waiting for cloudResetPwdAgent”状态。
图2 新增manage_etc_hosts: localhost - 执行vi /etc/ssh/sshd_config命令,在vi编辑器中打开“/etc/ssh/sshd_config”。
将“sshd_config”中的“PasswordAuthentication”的值修改为“yes”。
如果是SUSE和openSUSE操作系统,需要同时配置“sshd_config”文件中的以下两个参数为“yes”。
- PasswordAuthentication
- ChallengeResponseAuthentication
- 修改cloud.cfg配置文件里面的cloud_init_modules配置。
- 将ssh从最后提前到第一位处理,提高云服务器ssh登录速度。
- 开启机器名更新机制,请勿注释或删除“ - update_hostname”语句。
cloud_init_modules: - ssh - migrator - bootcmd - write-files - growpart - resizefs - set_hostname - update_hostname - update_etc_hosts - rsyslog - users-groups
- 修改以下配置使得镜像创建的云服务器主机名不带“.novalocal”后缀且主机名称中可以带点号。
- 执行如下命令,修改“__init__.py”文件。
vi /usr/lib/python*.*/site-packages/cloudinit/sources/__init__.py
不同OS安装的python版本有差异,请选择对应的路径。
按“i”进入编辑模式,根据关键字toks查询,修改内容如下信息所示。
if toks: toks = str(toks).split('.') else: #toks = ["ip-%s" % lhost.replace(".", "-")] #屏蔽此行 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 hostname #屏蔽此行 return "%s.%s" % (hostname, domain) #增加此行 else: return hostname
修改完成后按“ESC”退出编辑模式,输入:wq!保存并退出。
- 执行如下命令进入“cloudinit/sources”文件夹。
cd /usr/lib/python*.*/site-packages/cloudinit/sources/
不同OS安装的python版本有差异,请选择对应的路径。
- 执行如下命令,删除“__init__.pyc”文件和优化编译后的“__init__.pyo”文件。
rm -rf __init__.pyo
- 执行如下命令,清理日志信息。
rm -rf /var/log/cloud-init*
- 执行如下命令,修改“__init__.py”文件。
- 执行以下命令编辑Cloud-Init日志输出路径配置文件,设置日志处理方式handlers,建议配置为cloudLogHandler。
vim /etc/cloud/cloud.cfg.d/05_logging.cfg
[logger_cloudinit] level=DEBUG qualname=cloudinit handlers=cloudLogHandler propagate=1
- 确保删除镜像模板中已经存在的linux账户和“/home/linux”目录。
rm -fr /home/linux
- 确保Cloud-Init启用。
若存在/etc/cloud/cloud-init.disabled文件,则执行cloud-init clean --machine-id,否则跳过。