這是 OpenStack 實施經驗分享系列的第 5 篇。
對于 Linux 鏡像,cloud-init 負責 instance 的初始化工作。cloud-init 功能很強大,能做很多事情,而且我們可以通過修改配置檔案靈活定制 cloud-init。
cloud-init 的配置檔案為 /etc/cloud/cloud.cfg,這裡舉幾個應用場景:
1. 如果希望 root 能夠直接登入 instance(預設不允許 root 登入),設定:
<code>disable_root: 0</code>
2. 如果希望能以 ssh passwod 方式登入(預設隻能通過 private key 登入),設定:
<code>ssh_pwauth: 1</code>
3. 如果希望能夠修改 instance 的 hostname(預設 instance 每次重新開機後 cloud-init 都會重新将 hostname 恢複成初始值),将<code>cloud_init_modules</code> 清單中下面兩項删除或注釋掉:
<code>- set_hostname - update_hostname</code>
instance 每次啟動 cloud-init 都會執行初始化工作,如果希望改變所有 instance 的初始化行為,則修改鏡像的 /etc/cloud/cloud.cfg 檔案;如果隻想改變某個 instance 的初始化行為,直接修改 instance 的 /etc/cloud/cloud.cfg。
cloud-init 有很多選項,這裡隻列舉了幾種常見的定制化場景,作用是給到大家一個重要的思路:可通過 cloud-init 改變 instance 的初始化行為。更多資訊請參考官網 https://cloud-init.io/
下一節我們讨論配置 instance 虛拟網卡的相關技巧。
