今天制作了一个带cloud init 的镜像,准备用metadata server 加 cloud init 的方式做注入key和密码
安装完cloud init后对里面参数有了大概的了解,也算是学习了。
在用新的镜像启动虚拟机后,发现hostname变成了主机的名字。 突然把我诧异住了,dhcp agent会改hostname,这个cloud init 也会改hostname。
这可不行啊,hostname总得固定住
于是查看cloud init 文档和cloud init的配置文件 /etc/cloud/cloud.cfg 相关配置,找到如下几项:
cloud_init_modules:
- migrator
- bootcmd
- write-files
- growpart
- resizefs
- set_hostname # 设置hostname
- update_hostname # 更新hostname
- update_etc_hosts
- rsyslog
- users-groups
- ssh
把hostname相关的项删除掉就可以了
cloud init 是根据instance 的 hostname 属性来设置的
这里给你们看一下数据库就明白了:
mysql> select hostname,host,display_name from instances where hostname="Test7"\G *************************** 1. row *************************** hostname: test7 host: compute10 display_name: test-test
在nova库中的instances 表中,我们会发现这么两个字段 一个是hostname 一个是display_name ,及hostname