默认的cloud.cfg配置文件/etc/cloud/cloud.cfg修改如下(不同操作系统会有不同,根据实际情况来定需要设置的值):
- 确定参数值如下:true/True/1, false/False/0 均可。
disable_root: false
ssh_pwauth: true
ssh_deletekeys: false
preserve_hostname: false
- 若 cloud-init 版本 >= 21.1(参考 cloud-init -v)
在配置文件中,preserve_hostname: false 另起一行(或保证缩进同级即可),加上
Prefer_fqdn_over_hostname: true
- 若 cloud-init 版本 < 21.1
修改 cloudinit python 包源码 cloudinit/distros/init.py,将:
def_select_hostname (self,hostname,fqdn) :
# Prefer the short hostname over the long
# fully qualified domain nameif not hostname:
return fqdn
return hostname
替换为:
def_select_hostname (self, hostname, fgdn) :
if fqdn:
return fqdn
return hostname
说明修改配置或代码都是为了优先使用 fqdn 从而避免像 AAA.bbb 这样的 hostname“截断”成 AAA 的问题。确保输入 hostname 命令显示的是 AAA.bbb 非“截断”主机名即可,因系统限制在终端显示的 root@AAA 可忽略。
- 模块包括如下内容(建议参考修改)。
cloud_init_modules:
- migrator
- seed random
- bootcmd
- write-files
- growpart
- resizefs
- disk setup
- mounts
- set hostname
- update hostname
- update etc hosts
- ca-certs
- rsyslog
- users-groups
- ssh
- 修改system_info部分,distro内容不做修改。
distro内容不做修改。
default_user:默认用户名改为root,lock_passwd 改为False。
其余部分涉及系统 yum/apt 源的更改,建议遵循“系统其他配置修改”,保留系统默认,去除 cloud-init 配置。
system_info下其余内容不做修改。
system_info:
# This will affect which distro class gets used
distro: openEuler
# Default user name + that default users groups (if added/used)
default user:
name: root
lock_passwd: False
- 添加 datasource_list 和 datasource 部分,禁用网络托管。
datasource_list: [ ConfigDrive,OpenStack ]
datasource:
ConfigDrive:
dsmode: local
OpenStack:
metadata_urls:["http://169.254.169.254"]
max_wait: 120
timeout: 10
retries: 5
network:
config: disabled