- 最新动态
- 功能总览
- 产品介绍
- 快速入门
-
用户指南
- 通过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操作类
- 云服务器创建类
- 驱动安装类
- 镜像标签类
- 计费类
- 视频帮助
- 产品术语
-
更多文档
-
用户指南 (阿布扎比区域)
- 产品介绍
- 通过IAM授予使用IMS的权限
- 创建私有镜像
- 管理私有镜像
- Windows操作系统相关操作
- Linux操作系统相关操作
- 标签管理
- 配额管理
- 使用CTS审计IMS操作事件
- 常见问题
- API参考 (阿布扎比区域)
-
用户指南(巴黎区域)
- 产品介绍
- 通过IAM授予使用IMS的权限
- 创建私有镜像
- 管理私有镜像
- Windows操作系统相关操作
- Linux操作系统相关操作
- 标签管理
- 配额管理
- 使用CTS审计IMS操作事件
- 常见问题
- API参考 (巴黎区域)
-
用户指南(吉隆坡区域)
- 产品介绍
- 通过IAM授予使用IMS的权限
- 创建私有镜像
- 管理私有镜像
- Windows操作系统相关操作
- Linux操作系统相关操作
- 标签管理
- 配额管理
- 使用CTS审计IMS操作事件
- 常见问题
- API参考(吉隆坡区域)
-
用户指南(安卡拉区域)
- 产品介绍
- 通过IAM授予使用IMS的权限
- 创建私有镜像
- 管理私有镜像
- Windows操作系统相关操作
- Linux操作系统相关操作
- 标签管理
- 配额管理
- 使用CTS审计IMS操作事件
- 常见问题
- API参考(安卡拉区域)
-
用户指南 (阿布扎比区域)
- 通用参考
链接复制成功!
配置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控制台提示的随机密码进行noVNC登录。
执行以下命令,使用vi编辑器打开“sshd_config”文件。
vi /etc/ssh/sshd_config
- 将“sshd_config”文件中的“PasswordAuthentication”的值修改为“no”。
说明:
如果是SUSE和openSUSE操作系统,需要同时配置“sshd_config”文件中的以下两个参数为“no”。
- PasswordAuthentication
- ChallengeResponseAuthentication
- 执行以下命令,使用vi编辑器打开“cloud.cfg”文件。
- (可选)在“/etc/cloud/cloud.cfg”中配置“apply_network_config”为“false”。
对于使用Cloud-Init 18.3及以上版本的用户,需执行本操作。
图1 配置示例 - 在“/etc/cloud/cloud.cfg”中禁用root用户的ssh权限,并增加普通用户(后续弹性云服务器通过VNC登录使用的用户)、且为该用户设置密码和赋予sudo权限。
说明:
针对Ubuntu、Debian操作系统,需将“/etc/cloud/cloud.cfg中的manage_etc_hosts”参数设置为“localhost”,否则会出现非root用户切换root超时问题。
以下以Ubuntu操作系统为例。
- 新建一个可产生随机密码的可执行权限的脚本“/etc/cloud/set_linux_random_password.sh”。
cat /etc/cloud/set_linux_random_password.sh
文件内容参考如下:#!/bin/bash password=$(cat /dev/urandom | tr -dc 'A-Za-z0-9!@#$%&+=' | head -c 9) echo "linux:$password" | chpasswd sed -i -e '/^Login/d' /etc/issue sed -i -e '/^Initial/d' /etc/issue sed -i -c -e '/^$/d' /etc/issue echo -e "\nInitial login with linux:$password\n" >> /etc/issue
说明:
“set_linux_random_password.sh”是拥有可执行权限的,可以通过chmod +x /etc/cloud/set_linux_random_password.sh命令添加权限。
- 用户登录弹性云服务器后,请执行以下命令,添加页面显示友好提示:首次登录要及时修改非root账户密码。
echo -e '\e[1;31m#################################\\e[0m' > /etc/motd
echo -e '\e[1;31m# Important !!! #\e[0m' >> /etc/motd
echo -e '\e[1;31m# Please change password for user linux after first login. #\e[0m' >> /etc/motd
echo -e '\e[1;31m#################################\e[0m' >> /etc/motd
echo -e '' >> /etc/motd
- 新建一个可产生随机密码的可执行权限的脚本“/etc/cloud/set_linux_random_password.sh”。
- 参照以下加粗部分增加普通登录用户,并为该用户设置密码和赋予sudo的权限,并通过bootcmd每次新创建弹性云服务器时调用产生随机密码的脚本。
注意:
修改配置文件时,请注意配置文件的格式(对齐,空格)要与示例保持一致。
system_info: # This will affect which distro class gets used distro: rhel # Default user name + that default users groups (if added/used) default_user: name: linux #登录使用的用户名。 lock_passwd: False #False,表示当前不禁用密码登录的方式,注意部分操作系统此处配置为0表示不禁用。 gecos: Cloud User groups: users #可选项,将用户添加到另外的组里,groups必须是系统里/etc/group已存在的组。 passwd: $6$I63DBVKK$Zh4lchiJR7NuZvtJHsYBQJIg5RoQCRLS1X2Hsgj2s5JwXI7KUO1we8WYcwbzeaS2VNpRmNo28vmxxCyU6LwoD0 sudo: ["ALL=(ALL) NOPASSWD:ALL"] #表示设置用户具有root用户的所有权限。 shell: /bin/bash #shell执行采用bash方式。 # Other config here will be given to the distro class and/or path classes paths: cloud_dir: /var/lib/cloud/ templates_dir: /etc/cloud/templates/ ssh_svcname: sshd bootcmd: - [cloud-init-per, instance, password, bash, /etc/cloud/set_linux_random_password.sh]
说明:
其中passwd不是密码本身,而是通过SHA512加密过的,此处的SHA512加密方法仅为举例使用。关于更多参数的详情,请参考:https://cloudinit.readthedocs.io/en/latest/topics/examples.html
可以参考以下步骤生成SHA512加密密码。此处以生成cloud.1234的加密密码为例。
[root@** ~]# python -c "import crypt, getpass, pwd; print crypt.mksalt()" $6$I63DBVKK [root@** ~]# python -c "import crypt, getpass, pwd; print crypt.crypt('cloud.1234', '\$6\$I63DBVKK')" $6$I63DBVKK$Zh4lchiJR7NuZvtJHsYBQJIg5RoQCRLS1X2Hsgj2s5JwXI7KUO1we8WYcwbzeaS2VNpRmNo28vmxxCyU6LwoD0
- 配置agent访问OpenStack数据源。
- 在配置文件“/etc/cloud/cloud.cfg”中禁用Cloud-Init接管网络。
当Cloud-Init版本等于或高于0.7.9版本时,在配置文件“/etc/cloud/cloud.cfg”中增加如下内容,禁用Cloud-Init接管网络。
network: config: disabled
说明:
增加的内容需严格按照yaml格式进行配置。
图2 禁用Cloud-Init接管网络 - 修改cloud.cfg配置文件里面的cloud_init_modules配置。
在“cloud_init_modules”中将ssh从最后提前到第一位处理,提高云服务器ssh登录速度。
图3 提高云服务器ssh登录速度 - 修改以下配置,使得镜像创建的云服务器主机名不带“.novalocal”后缀,且主机名称中可以带点号。
- 执行如下命令,修改“__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(".", "-")] #屏蔽此行 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!保存并退出。
图4 修改__init__.py文件 - 执行如下命令进入“cloudinit/sources”文件夹。
- 执行如下命令,删除“__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
图5 配置为cloudLogHandler