這是 OpenStack 實施經驗分享系列的第 5 篇。
對于 Linux 鏡像,cloud-init 負責 instance 的初始化工作。cloud-init 功能很強大,能做很多事情,而且我們可以通過修改配置檔案靈活定制 cloud-init。
cloud-init 的配置檔案為 /etc/cloud/cloud.cfg,這裡舉幾個應用場景:
1. 如果希望 root 能夠直接登入 instance(預設不允許 root 登入),設定:
disable_root: 0
2. 如果希望能以 ssh passwod 方式登入(預設隻能通過 private key 登入),設定:
ssh_pwauth: 1
3. 如果希望能夠修改 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。