安裝和設定Ansible
在上一步中已配置自動化伺服器並完成初始作業系統配置。 本步驟主要完成以下任務:
其中包括 安裝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.device
和 junipernetworks.junos
集合。
建立Ansible庫存文件
-
為Ansible檔案建立目錄結構並建立初始清單檔案以測試Ansible與Ansible主機的連線。 以 ansible 使用者身分連線時,請使用下列命令:
sudo mkdir /swlib sudo mkdir /swlib/ansible
-
建立一個名為
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命令時需要在提示字元處輸入密碼。
-
為了讓我們不被提示輸入保管庫密碼,請輸入以下命令:
touch ~/.vault_pass vi ~/.vault_pass
-
輸入要用於保管庫的密碼,然後儲存文件。
-
更改權限,以便只有 ansible 使用者可以讀取或寫入
chmod 600 ~/.vault_pass
。 -
建立Ansible設定檔:
cd /swlib/ansible touch ansible.cfg vi ansible.cfg
-
然後,在文件中使用以下文字:
[defaults] inventory = /swlib/ansible/hosts vault_password_file = ~/.vault_pass
-
我們需要將 Windows® 伺服器密碼放入加密檔案中。 Ansible會自動從目錄中讀取包含變數的檔案(稱為 group_vars 和 host_vars),並透過檔案名稱將它們與群組和主機關聯。 以下命令建立一個名為
vbr.yml
加密文件,該文件與清單檔案中的 vbr 組[vbr]相符。mkdir group_vars ansible-vault create group_vars/vbr.yml
-
在編輯器中輸入密碼:
ansible_password: <password>
-
按
Esc
和:wq
退出。 -
需要時可以使用以下命令修改該檔案:
ansible-vault edit group_vars/vbr.yml
- 該指令編輯文件。ansible-vault decrypt group_vars/vbr.yml
- 該命令解密文件,以便可以使用其他編輯器(例如nano
查看或更改它。ansible-vault encrypt group_vars/vbr.yml
- 該命令在查看或更改文件後對其進行加密。
-
以下命令會建立一個名為
vault
:ansible-vault create vault
的加密檔案。 -
在編輯器中,輸入以下命令,其中
<lhbr_password>
和<sa_ansible_password>
是在規劃階段定義的密碼。
vault_lhbr_password: <lhbr_password>
vault_sa_ansible_password: <sa_ansible_password>
- 按
Esc
和:wq
退出。
測試連接
使用以下命令來測試連線:
ansible lhbr -m ping
ansible vbr -m win_ping
如果成功,每個命令的輸出都會顯示 SUCCESS
。
安裝Ansible NSX-T 集合
此步驟是可選的,僅當使用Ansible配置沙箱時才需要。
-
以 ansible 使用者身分連接到Ansible控制節點。
-
安裝Python:
sudo pip3 install --upgrade pyvmomi pyvim requests
. -
執行以下命令完成以下任務:
- 建立一個用於下載的資料夾。
- 複製 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