Cloud Assembly 支援與 Puppet Enterprise、Ansible 開放原始碼和 Ansible Tower 整合,以便您可以針對組態和偏差管理部署。

Puppet 整合

若要整合以 Puppet 為基礎的組態管理,您必須安裝在具有 vSphere 工作負載的公有或私有雲上安裝有效的 Puppet Enterprise 執行個體。您必須在此外部系統和 Cloud Assembly 執行個體之間建立連線。然後,您可以透過將 Puppet 組態管理新增至適當的藍圖,使其可供 Cloud Assembly 使用。

Cloud Assembly 藍圖服務 Puppet 提供者會在已部署的計算資源上安裝、設定和執行 Puppet 代理程式。Puppet 提供者同時支援 SSH 和 WinRM 連線,並具備下列必要條件:

  • SSH 連線:
    • 若要執行具有 NOPASSWD 的命令,使用者名稱必須是超級使用者或具有 sudo 權限的使用者。
    • 對指定的使用者停用 requiretty
    • cURL 必須在部署計算資源上可用。
  • WinRM 連線:
    • PowerShell 2.0 必須在部署計算資源上可用。
    • 設定 Windows 範本,如 vRealize Orchestrator 說明文件中所述。

DevOps 管理員負責管理 Puppet Master 連線,以及將 Puppet 角色或組態規則套用至特定的部署。執行下列部署後,設定為支援組態管理的虛擬機器將登錄到指定的 Puppet Master。

部署虛擬機器時,使用者可以新增或刪除做為外部系統的 Puppet Master 或更新指派給 Puppet Master 的專案。最後,當機器解除委任時,適當的使用者可以從 Puppet Master 解除登錄已部署的虛擬機器。

Ansible 開放原始碼整合

設定 Ansible 整合時,請按照 Ansible 安裝指示安裝 Ansible 開放原始碼。如需有關安裝的詳細資訊,請參閱 Ansible 說明文件。

依預設,Ansible 啟用主機金鑰檢查。如果使用 known_hosts 檔案中的其他金鑰重新安裝了主機,則會出現錯誤訊息。如果主機未列在 known_hosts 檔案中,您必須在啟動時提供金鑰。您可以透過 /etc/ansible/ansible.cfg~/.ansible.cfg 檔案中的下列設定停用主機金鑰檢查:
[defaults]
host_key_checking = False
localhost_warning = False
 
[paramiko_connection]
record_host_keys = False
 
[ssh_connection]
#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
ssh_args = -o UserKnownHostsFile=/dev/null

若要避免主機金鑰檢查錯誤,請將 host_key_checkingrecord_host_keys 設定為 False,並新增在 ssh_args 中設定的額外選項 UserKnownHostsFile=/dev/null。此外,如果詳細目錄一開始為空白,則 Ansible 會發出主機清單為空白的警告。這會導致 playbook 語法檢查失敗。

透過 Ansible 保存庫,您可以在加密的檔案中而非純文字格式儲存敏感資訊 (例如密碼或金鑰)。保存庫使用密碼進行加密。在 Cloud Assembly 中,Ansible 使用保存庫對主機的 ssh 密碼等資料進行加密。它會假設已設定保存庫密碼的路徑。

您可以修改 ansible.cfg 檔案,以使用下列格式指定密碼檔案的位置。

vault_password_file = /path to/file.txt

也可以設定 ANSIBLE_VAULT_PASSWORD_FILE 環境變數,以便 Ansible 自動搜尋密碼。例如,ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

Cloud Assembly 管理 Ansible 詳細目錄檔案,因此您必須確保 Cloud Assembly 使用者對詳細目錄檔案具有 rwx 存取權。

cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
如果您想要使用具有 Cloud Assembly 開放原始碼整合的非 root 使用者,使用者需要一組權限來執行 Cloud Assembly 開放原始碼提供者所使用的命令。必須在使用者的 sudoers 檔案中設定下列命令。
Defaults:myuser !requiretty
如果使用者不屬於未指定 askpass 應用程式的管理員群組,則在使用者的 sudoers 檔案中設定下列命令:
myuser ALL=(ALL) NOPASSWD: ALL

如果在設定 Ansible 整合時遇到錯誤或其他問題,請參閱位於 Ansible 控制機器上的 ‘cat~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/’ 中的 log.txt 檔案。

Ansible Tower 整合

支援的作業系統類型
  • Red Hat Enterprise Linux 8.0 或更新版本 64 位元 (x86),僅支援 Ansible Tower 3.5 及更高版本。
  • Red Hat Enterprise Linux 7.4 或更新版本 64 位元 (x86)。
  • CentOS 7.4 或更新版本 64 位元 (x86)。

下列是在 Ansible Tower 安裝期間產生的範例詳細目錄檔案。您可能需要對其進行修改以用於 Cloud Assembly 整合。

[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# pwd
 
/root/ansible-tower-install/ansible-tower-setup-bundle-3.5.2-1.el8
 
[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# cat inventory
 
[tower]
 
localhost ansible_connection=local
 
 
 
 
[database]
 
 
 
 
[all:vars]
 
admin_password='VMware1!'
 
 
 
 
pg_host=''
 
pg_port=''
 
 
 
 
pg_database='awx'
 
pg_username='awx'
 
pg_password='VMware1!'
 
 
 
 
rabbitmq_port=5672
 
rabbitmq_vhost=tower
 
rabbitmq_username=tower
 
rabbitmq_password='VMware1!'
 
rabbitmq_cookie=cookiemonster
 
 
 
 
# Needs to be true for fqdns and ip addresses
 
rabbitmq_use_long_name=false
 
 
 
 
# Isolated Tower nodes automatically generate an RSA key for authentication;
 
# To disable this behavior, set this value to false
 
# isolated_key_generation=true