開始使用:在 Azure VM 上設定 Ansible
警告
本文參考 CentOS,亦即接近生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引。
本文說明如何在 Azure 中的 Centos VM 上安裝 Ansible 。
在本文中,您將學會如何:
- 建立資源群組
- 建立 CentOS 虛擬機
- 在虛擬機上安裝 Ansible
- 透過 SSH 連線 至虛擬機
- 在虛擬機上設定 Ansible
必要條件
- Azure 訂用帳戶:如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
- Azure 服務主體:建立服務主體,並記下下列值:appId、displayName、密碼和租使用者。
建立虛擬機器
建立 Azure 資源群組。
az group create --name QuickstartAnsible-rg --location eastus
您可能需要將 參數取代
--location
為您環境的適當值。建立 Ansible 的 Azure 虛擬機。
az vm create \ --resource-group QuickstartAnsible-rg \ --name QuickstartAnsible-vm \ --image CentOS85Gen2 \ --admin-username azureuser \ --admin-password <password>
<password>
取代您的密碼。取得 Azure 虛擬機的公用 IP 位址。
az vm show -d -g QuickstartAnsible-rg -n QuickstartAnsible-vm --query publicIps -o tsv
透過 SSH 連線 至虛擬機
使用 SSH 命令,連線到虛擬機的公用 IP 位址。
ssh azureuser@<vm_ip_address>
<vm_ip_address>
將取代為先前命令中傳回的適當值。
在虛擬機上安裝 Ansible
具有 azure_rm 模組的 Ansible 2.9
執行下列命令,在 Centos 上設定 Ansible 2.9:
#!/bin/bash
# Update all packages that have available updates.
sudo yum update -y
# Install Python 3 and pip.
sudo yum install -y python3-pip
# Upgrade pip3.
sudo pip3 install --upgrade pip
# Install Ansible.
pip3 install "ansible==2.9.17"
# Install Ansible azure_rm module for interacting with Azure.
pip3 install ansible[azure]
Ansible 2.10 搭配 azure.azcollection
執行下列命令以在 Centos 上設定 Ansible:
#!/bin/bash
# Update all packages that have available updates.
sudo yum update -y
# Install Python 3 and pip.
sudo yum install -y python3-pip
# Upgrade pip3.
sudo pip3 install --upgrade pip
# Install Ansible az collection for interacting with Azure.
ansible-galaxy collection install azure.azcollection
# Install Ansible modules for Azure
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt
重點︰
- Ansible 控制節點需要安裝 Python 2(2.7 版)或 Python 3(3.5 版和更新版本)。 Ansible 4.0.0 和 ansible-core 2.11 與 Python 3.8 具有軟相依性,但具有較低版本的函式。 不過,Ansible 5.0.0 和 ansible-core 2.12 將需要 3.8 和更新的版本。
建立 Azure 認證
若要設定 Ansible 認證,您需要下列資訊:
- 您的 Azure 訂用帳戶標識碼和租用戶識別碼
- 服務主體應用程式識別碼和秘密
使用下列其中一種技術設定 Ansible 認證:
選項 1:建立 Ansible 認證檔案
在本節中,您會建立本機認證檔案,以提供 Ansible 的認證。 基於安全性考慮,認證檔案應該只用於開發環境中。
如需定義 Ansible 認證的詳細資訊,請參閱 提供認證給 Azure 模組。
成功連線到主機虛擬機之後,請建立並開啟名為 的
credentials
檔案:mkdir ~/.azure vi ~/.azure/credentials
將下列幾行插入檔案中。 將佔位元取代為服務主體值。
[default] subscription_id=<subscription_id> client_id=<service_principal_app_id> secret=<service_principal_password> tenant=<service_principal_tenant_id>
儲存並關閉檔案。
選項 2:定義 Ansible 環境變數
在主機虛擬機上,導出服務主體值以設定 Ansible 認證。
export AZURE_SUBSCRIPTION_ID=<subscription_id>
export AZURE_CLIENT_ID=<service_principal_app_id>
export AZURE_SECRET=<service_principal_password>
export AZURE_TENANT=<service_principal_tenant_id>
測試 Ansible 安裝
您現在已安裝並設定 Ansible 的虛擬機!
本節說明如何在新的 Ansible 設定內建立測試資源群組。 如果您不需要這麼做,您可以略過本節。
選項 1:使用臨機操作 ansible 命令
執行下列臨機操作 Ansible 命令來建立資源群組:
#Ansible 2.9 with azure_rm module
ansible localhost -m azure_rm_resourcegroup -a "name=ansible-test location=eastus"
#Ansible 2.10 with azure.azcollection
ansible localhost -m azure.azcollection.azure_rm_resourcegroup -a "name=<resource_group_name> location=<location>"
將 <resource_group_name>
和 <location>
取代為您自己的值。
選項 2:撰寫和執行 Ansible 劇本
將下列程式代碼儲存為
create_rg.yml
。具有 azure_rm 模組的 Ansible 2.9
--- - hosts: localhost connection: local tasks: - name: Creating resource group azure_rm_resourcegroup: name: "<resource_group_name" location: "<location>"
Ansible 2.10 搭配 azure.azcollection
- hosts: localhost connection: local collections: - azure.azcollection tasks: - name: Creating resource group azure_rm_resourcegroup: name: "<resource_group_name" location: "<location>"
將
<resource_group_name>
和<location>
取代為您自己的值。-
ansible-playbook create_rg.yml
深入瞭解 azure.azcollection。
清除資源
將下列程式代碼儲存為
delete_rg.yml
。--- - hosts: localhost tasks: - name: Deleting resource group - "{{ name }}" azure_rm_resourcegroup: name: "{{ name }}" state: absent register: rg - debug: var: rg
使用 ansible-playbook 命令執行劇本 。 將佔位元取代為要刪除的資源群組名稱。 將會刪除資源群組中的所有資源。
ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
重點︰
register
由於劇本的變數和debug
區段,因此命令完成時會顯示結果。
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應