我在 Mac 上使用 Ansible 来配置 Azure 环境
背景和目的 hé
虽然作为基础设施的 IaC 代码,根据 Microsoft 的文档里许多地方的解释,有许多优点。在声明式 IaC 中,有 ARM 模板、Bicep、Terraform、Ansible 等。在命令式 IaC 中,有 Bash、PowerShell 等,可以使用 CLI 反复创建可靠的 Azure 资源。尽管如此,我个人觉得仍有许多人在按照 Azure 门户的截图和参数表构建,这让我感到有些奇怪。我个人通常使用 Azure CLI,并在需要时使用 Terraform,但是由于与 Python 和运行环境的关系,使用 Ansible 有些困难,所以我在 Mac 上创建了一个用 Ansible 操作 Azure 的环境作为一个示例。
Ansible运行环境的信息
# Mac のバージョン
$ sw_vers
ProductName: macOS
ProductVersion: 13.0.1
BuildVersion: 22A400
# Python のバージョン
$ python3 --version
Python 3.9.1
# PIP のバージョン
$ pip --version
pip 22.3.1 from /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip (python 3.9)
安装Ansible和Azure的Python软件包。
# Ansible をインストールします
pip install ansible
# Ansible のバージョンを確認します
ansible --version
ansible [core 2.13.6]
# azcollection をインストールします
ansible-galaxy collection install azure.azcollection
# Azure の Python パッケージをインストールします
pip install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt
尝试使用Ansible在Azure上创建资源。
# 環境変数をセットします
export AZURE_AD_USER=$(az account show --query user.name -o tsv)
export AZURE_PASSWORD="<your password here>"
export AZURE_SUBSCRIPTION_ID=$(az account show --query id -o tsv)
# リソースグループを作成します
ansible localhost \
-m azure.azcollection.azure_rm_resourcegroup \
-a "name=ansible-rg location=japaneast"
# リソースグループが作成されたか確認します
az group show -n ansible-rg -o table
Location Name
---------- ----------
japaneast ansible-rg
# リソースグループを削除します
az group delete -n ansible-rg --yes
请找一份参考资料。