cloudbase-init 在OpenStack的镜像中有初始化镜像等作用,本文介绍安装使用与配置。
介绍
cloudbase-init 使 windows/linux 镜像部署的 instance 能够自动配置 IP 地址等个性化信息。其作用与 linux 的 cloud-init 一样,下面演示 cloudbase-init 的配置方法。
下载 cloudbase-init
https://cloudbase.it/cloudbase-init/#download
在虚拟机中安装 cloudbase-init
可通过远程桌面上传 cloudbase-init 安装程序并安装
系统会自动关机。
cloud-init配置
cloud-init 的配置文件为 /etc/cloud/cloud.cfg,这里举几个应用场景:
如果希望 root 能够直接登录 instance(默认不允许 root 登录),设置:
disable_root: 0
如果希望能以 ssh passwod 方式登录(默认只能通过 private key 登录),设置:
ssh_pwauth: 1
如果希望能够修改 instance 的 hostname(默认 instance 每次重启后 cloud-init 都会重新将 hostname 恢复成初始值),将cloud_init_modules 列表中下面两项删除或注释掉:
- set_hostname
- update_hostname
instance 每次启动 cloud-init 都会执行初始化工作,如果希望改变所有 instance 的初始化行为,则修改镜像的 /etc/cloud/cloud.cfg 文件;如果只想改变某个 instance 的初始化行为,直接修改 instance 的 /etc/cloud/cloud.cfg。
cloud-init 有很多选项,这里只列举了几种常见的定制化场景,作用是给到大家一个重要的思路:可通过 cloud-init 改变 instance 的初始化行为。更多信息请参考官网 https://cloud-init.io/
自动修改 hostname
cloud-init
从 nova metadata
等服务获取信息,更新主机名,配置 /etc/cloud/cloud.cfg
中 preserve_hostname: true
达到禁用调用 cloud-init set-update
更新 hostname
$ cat /etc/cloud/cloud.cfg
...
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true
- 从
cat /var/lib/cloud/data/previous-hostname
加载默认值为 user