本節說明如何使用 cloud-init 套件來處理執行個體的早期初始化。

關於 cloud-init

cloud-init 是一項 Linux 套件,負責處理執行個體的早期初始化。如果在發行版中可用,它可讓您在安裝後直接設定執行個體的許多一般參數。這會建立根據一系列輸入進行設定的完整功能執行個體。

cloud-init 的行為可透過 user-data 進行設定。user-data 可在執行個體啟動時由使用者指定。這通常是透過連結 cloud-init 將在第一次開機時所尋找 ISO 格式的次要磁碟來完成。此磁碟包含將在當時套用的所有早期組態資料。

SD-WAN Orchestrator 支援 cloud-init,且可將所有的基本組態封裝在 ISO 映像中。

建立 cloud-init 中繼資料檔案

最終安裝組態選項是使用一對 cloud-init 設定檔進行設定。第一個安裝組態檔案包含中繼資料。請使用文字編輯器建立此檔案,並將其標示為 meta-data。此檔案提供可識別所安裝 SD-WAN Orchestrator 執行個體的資訊。instance-id 可以是任何識別名稱,而 local-hostname 應為符合您的站台標準的主機名稱,例如:

instance-id: vco01
local-hostname: vco-01

此外,您也可以指定網路介面資訊 (例如,網路並非透過 DHCP 設定):

instance-id: vco01
local-hostname: vco-01
network-interfaces: |
  auto eth0
  iface eth0 inet static
  address 10.0.1.2
  network 10.0.1.0
  netmask 255.255.255.0
  broadcast 10.0.1.255
  gateway 10.0.1.1

建立 cloud-init user-data 檔案

第二個安裝組態選項檔案為使用者資料檔案。此檔案提供系統上使用者的相關資訊。使用文字編輯器建立此檔案,並將它命名為 user-data。此檔案將用於啟用 SD-WAN Orchestrator 安裝的存取權。  以下是 user-data 檔案外觀的範例:

#cloud-config 
            password: Velocloud123 
            chpasswd: {expire: False} 
            ssh_pwauth: True 
            ssh_authorized_keys:
              - ssh-rsa AAA...SDvz user1@yourdomain.com
              - ssh-rsa AAB...QTuo user2@yourdomain.com
            vco:
              super_users:
                list: |
                  user1@yourdomain.com:password1
                remove_default_users: True
              system_properties:
                 list: |
                    mail.smtp.port:34
                    mail.smtp.host:smtp.yourdomain.com
                    service.maxmind.enable:True
                    service.maxmind.license:todo_license
                    service.maxmind.userid:todo_user
                    service.twilio.phoneNumber:222123123
                    network.public.address:222123123
            write_files:
               - path: /etc/nginx/velocloud/ssl/server.crt
                 permissions: '0644'
                 content: "-----BEGIN CERTIFICATE-----\nMI….ow==\n-----END CERTIFICATE-----\n"
               - path: /etc/nginx/velocloud/ssl/server.key
                 permissions: '0600'
                 content: "-----BEGIN RSA PRIVATE KEY-----\nMII...D/JQ==\n-----END RSA PRIVATE KEY-----\n" 
               - path: /etc/nginx/velocloud/ssl/velocloudCA.crt
user-data 檔案可讓預設使用者 vcadmin 使用密碼或使用 SSH 金鑰登入。這兩個方法皆可使用,但並非必要。密碼登入由 passwordchpasswd 行啟用。
  • password 包含 vcadmin 使用者的純文字密碼。
  • chpasswd 行會關閉密碼到期,以避免第一次登入時立即提示使用者進行密碼變更。此為選用操作。
備註: 如果您設定密碼,則建議您在第一次登入時變更密碼,因為密碼已儲存在純文字檔中。

ssh_pwauth 行會啟用 SSH 登入。ssh_authorized_keys 行的開頭會是一或多個授權金鑰的區塊。ssh-rsa 行上列出的每個公用 SSH 金鑰將新增至 vcadmin ~/.ssh/authorized_keys 檔案。

在此範例中會列出兩個金鑰。針對此範例已截斷金鑰。在實際檔案中,必須列出整個公開金鑰。請注意,ssh-rsa 的行前端必須加上兩個空格,後面接著一個連字號,再接著另一個空格。

vco 區段會指定已設定的 SD-WAN Orchestrator 服務。

super_users 包含 VMware 超級操作員帳戶和對應密碼的清單。

system_properties 區段會允許自訂 Orchestrator 系統內容。如需有關系統內容組態的詳細資料,請參閱系統內容

write_files 區段會允許取代系統上的檔案。依預設,系統會使用自我簽署的 SSL 憑證來設定 SD-WAN Orchestrator Web 服務。如果您想要提供不同的 SSL 憑證,上述範例會以使用者提供的檔案取代 /etc/nginx/velocloud/ssl/ 資料夾中的 server.crtserver.key 檔案。
備註: server.key 檔案不得加密。否則,在沒有金鑰密碼的情況下,服務將無法啟動。

建立 ISO 檔案

完成檔案後,您必須將其封裝為 ISO 映像。此 ISO 映像用作虛擬機器的虛擬組態 CD。此 ISO 映像 (稱為 vco01-cidata.iso) 是在 Linux 系統上使用下列命令所建立:

genisoimage -output vco01-cidata.iso -volid cidata -joliet -rock user-data meta-data

將新建立的 ISO 映像傳輸到執行 VMware 之主機上的資料存放區。