IBM Cloud Docs
安裝和設定Ansible

安裝和設定Ansible

在上一步中已配置自動化伺服器並完成初始作業系統配置。 本步驟主要完成以下任務:

  1. 安裝Ansible
  2. 新增Ansible集合
  3. 建立Ansible庫存檔案
  4. 使用Ansible加密檔案
  5. 測試連接

其中包括 安裝Ansible NSX-T 集合的 可選步驟。 僅當使用Ansible®建立沙箱時才需要此可選步驟。

安裝Ansible

在自動化伺服器上的命令列中,執行以下命令。

sudo apt update
sudo apt install ansible -y
sudo apt install python3-pip -y
ansible --version

這些命令用於以下項目:

  • 刷新系統的包索引。
  • 安裝Ansible®軟體。
  • 安裝WinRM與Ansible一起使用所需的 pip 套件。
  • 驗證Ansible是否已安裝。

新增Ansible集合

Ansible集合是額外的模組。 在此部署中,使用下列命令新增所需的集合:

ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.general
ansible-galaxy collection install ansible.windows
ansible-galaxy collection install community.windows
ansible-galaxy collection install juniper.device
ansible-galaxy collection install junipernetworks.junos

僅當您建立隔離復原環境時才需要 juniper.devicejunipernetworks.junos 集合。

建立Ansible庫存文件

  1. 為Ansible檔案建立目錄結構並建立初始清單檔案以測試Ansible與Ansible主機的連線。 以 ansible 使用者身分連線時,請使用下列命令:

    sudo mkdir /swlib
    sudo mkdir /swlib/ansible
    
  2. 建立一個名為 hosts 的清單文件,該文件有兩個群組:[LHBR]和[VBR],以及Linux®強化儲存庫和 Veeam® 備份伺服器的 IP 位址或 FQDN:

    touch /swlib/ansible/hosts
    vi /swlib/ansible/hosts
    

範例

用於不可變備份的 hosts 檔案。

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

用於隔離復原環境的 hosts 檔案。

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

[vsrx]
gateway01 ansible_host=10.5.37.138 ansible_user=sa-ansible

使用Ansible加密文件

Ansible允許對值和資料結構進行加密,以保護成功運行Ansible遊戲所需的敏感數據,但這些數據不公開可見,例如密碼或私鑰。 當提供金鑰時,Ansible在執行時期自動解密保管庫加密的內容。

Vault 以檔案級粒度實現,這表示檔案要么完全加密,要么未加密。 它使用AES256演算法提供以使用者提供的密碼為金鑰的對稱加密。 使用相同的密碼來加密和解密內容。 ansible-vault 命令最初用於加密文件,然後用於查看、編輯或解密資料。

  • 建立一個Ansible設定文件,其中詳細說明 hosts 文件和保管庫密碼文件的位置。
  • 建立並加密一個名為 group_vars/vbr.yml 文件,其中包含 sa-ansible 使用者存取 Veeam 備份伺服器的密碼。 將 Veeam 備份伺服器的密碼放在這裡的原因是為了讓 ansible vbr -m win_ping 命令起作用。
  • 建立並加密一個名為 vault 的文件,該文件保存強化備份儲存庫和(可選) vSRX設備的密碼。

使用 vault_pass 檔案是一項可選任務,它建立並保護保存保管庫密碼的檔案。 如果您選擇不執行此任務,則在執行Ansible命令時需要在提示字元處輸入密碼。

  1. 為了讓我們不被提示輸入保管庫密碼,請輸入以下命令:

    touch ~/.vault_pass
    vi ~/.vault_pass
    
  2. 輸入要用於保管庫的密碼,然後儲存文件。

  3. 更改權限,以便只有 ansible 使用者可以讀取或寫入 chmod 600 ~/.vault_pass

  4. 建立Ansible設定檔:

    cd /swlib/ansible
    touch ansible.cfg
    vi ansible.cfg
    
  5. 然後,在文件中使用以下文字:

    [defaults]
    inventory = /swlib/ansible/hosts
    vault_password_file = ~/.vault_pass
    
  6. 我們需要將 Windows® 伺服器密碼放入加密檔案中。 Ansible會自動從目錄中讀取包含變數的檔案(稱為 group_vars 和 host_vars),並透過檔案名稱將它們與群組和主機關聯。 以下命令建立一個名為 vbr.yml 加密文件,該文件與清單檔案中的 vbr 組[vbr]相符。

    mkdir group_vars
    ansible-vault create group_vars/vbr.yml
    
  7. 在編輯器中輸入密碼:

    ansible_password: <password>
    
  8. Esc:wq 退出。

  9. 需要時可以使用以下命令修改該檔案:

    • ansible-vault edit group_vars/vbr.yml- 該指令編輯文件。
    • ansible-vault decrypt group_vars/vbr.yml- 該命令解密文件,以便可以使用其他編輯器(例如 nano 查看或更改它。
    • ansible-vault encrypt group_vars/vbr.yml- 該命令在查看或更改文件後對其進行加密。
  10. 以下命令會建立一個名為 vault : ansible-vault create vault 的加密檔案。

  11. 在編輯器中,輸入以下命令,其中 <lhbr_password><sa_ansible_password> 是在規劃階段定義的密碼。

vault_lhbr_password: <lhbr_password>
vault_sa_ansible_password: <sa_ansible_password>
  1. Esc:wq 退出。

測試連接

使用以下命令來測試連線:

ansible lhbr -m ping
ansible vbr -m win_ping

如果成功,每個命令的輸出都會顯示 SUCCESS

安裝Ansible NSX-T 集合

此步驟是可選的,僅當使用Ansible配置沙箱時才需要。

  1. 以 ansible 使用者身分連接到Ansible控制節點。

  2. 安裝Python:sudo pip3 install --upgrade pyvmomi pyvim requests.

  3. 執行以下命令完成以下任務:

    • 建立一個用於下載的資料夾。
    • 複製 Git 儲存庫。
    • 建構Ansible集合。
    • 安裝本地建置的集合。
    cd /swlib
    mkdir downloads
    cd downloads
    git clone https://github.com/vmware/ansible-for-nsxt.git
    cd ansible-for-nsxt
    ansible-galaxy collection build
    ansible-galaxy collection install vmware-ansible_for_nsxt-1.0.0.tar.gz