前几天在hyper-v上搭一个centos虚拟机。不想一步步地安装,就用centos官方的 generic cloud-init enabled image搭建了。把网络配置为static ip地址,而后发生一个奇怪的现象,不论怎么改hostname,过一段时间都会自动在hostname后附加一个 .localdomainhtml
改/etc/hostname , 改/etc/network , 改/etc/hosts , 改/etc/resolv.cfg, hostnamectl 都无效。查看日志终于发现是cloud-init服务在修改hostname。只要阻止cloud-init服务改hostname就行了,可在 /etc/cloud/cloud.cfg.d 的目录下增长一个配置文件。执行:windows
sudo echo "preserve_hostname: 1" > /etc/cloud/cloud.cfg.d/00_preserve_hostname.cfg
或者另外一个办法,把 /etc/cloud/cloud.cfg 配置文件中把一下2行删掉:centos
- set_hostname - update_hostname
注:cloud-init的0.7.9版的changelog中提到一条:服务器
set_hostname: avoid erroneously appending domain to fqdn 。 可能做为bug修复掉了吧[centos 7目前(2017/7/18)使用的是0.7.5版]网络
对cloud-init一直都比较模糊,只知道和openstack之类的云服务平台有关。之前下载来的虚拟机云映像文件,不知道登入密码,搜索的时候总有高手神秘的说一句 #cloud-cofig 啥啥啥的,然而具体怎么搞,一头雾水。偶只想搭个服务器,不想搞云平台,偶的笨办法就是挂载映像文件,而后操做映像里的文件-_-!!!app
好吧,解决此次问题,仍是阅读了一下cloud-init的文档,同时记点笔记。dom
/user-data /meta-data
#cloud-config password: passw0rd chpasswd: { expire: False } ssh_pwauth: True
instance-id: iid-local01 local-hostname: cloudimg
mkisofs.exe -r -R -J -l -L -V cidata -o seed.iso meta-data user-data