快速入门:在 Azure 中的 Linux 虚拟机上安装 Ansible
使用 Ansible 可以在环境中自动部署和配置资源。 本文介绍如何为某些最常用的 Linux 分发版配置 Ansible。 若要在其他分发版中安装 Ansible,请调整适用于特定平台的安装包。
先决条件
- Azure 订阅:如果没有 Azure 订阅,请在开始前创建一个试用订阅。
- Azure 服务主体:创建服务主体,记下以下值:appId、displayName、密码和租户 。
- 访问 Linux 或 Linux 虚拟机 - 如果没有 Linux 计算机,请创建 Linux 虚拟机。
在 Azure Linux 虚拟机上安装 Ansible
登录到 Linux 计算机,然后选择下述发行版之一,了解安装 Ansible 的步骤:
CentOS 7.4
在本部分,我们将 CentOS 配置为使用 Ansible。
打开终端窗口。
输入以下命令,为 Azure Python SDK 模块安装所需的包:
sudo yum check-update; sudo yum install -y gcc libffi-devel python-devel openssl-devel epel-release sudo yum install -y python-pip python-wheel
输入以下命令安装所需的 Ansible 包:
sudo pip install ansible[azure]
Ubuntu 16.04 LTS
在本部分,我们将 Ubuntu 配置为使用 Ansible。
打开终端窗口。
输入以下命令,为 Azure Python SDK 模块安装所需的包:
sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip
输入以下命令安装所需的 Ansible 包:
sudo pip install ansible[azure]
SLES 12 SP2
在本部分,我们将 SLES 配置为使用 Ansible。
打开终端窗口。
输入以下命令,为 Azure Python SDK 模块安装所需的包:
sudo zypper refresh && sudo zypper --non-interactive install gcc libffi-devel-gcc5 make \ python-devel libopenssl-devel libtool python-pip python-setuptools
输入以下命令安装所需的 Ansible 包:
sudo pip install ansible[azure]
输入以下命令以删除有冲突的 Python 加密包:
sudo pip uninstall -y cryptography
创建 Azure 凭据
需要以下信息才能配置 Ansible 凭据:
- Azure 订阅 ID
- 服务主体值
如果使用 Ansible Tower 或 Jenkins,请将服务主体值声明为环境变量。
使用以下方法之一配置 Ansible 凭据:
创建 Ansible 凭据文件
在本部分,我们将创建一个本地凭据文件,以便向 Ansible 提供凭据。
有关定义 Ansible 凭据的详细信息,请参阅为 Azure 模块提供凭据。
对于开发环境,请主机虚拟机上创建名为
credentials
的文件:mkdir ~/.azure vi ~/.azure/credentials
将以下代码行插入到该文件中。 请将占位符替换为服务主体值。
[default] subscription_id=<your-subscription_id> client_id=<security-principal-appid> secret=<security-principal-password> tenant=<security-principal-tenant> cloud_environment=AzureChinaCloud
保存并关闭该文件。
使用 Ansible 环境变量
在本部分,我们将导出服务主体值以配置 Ansible 凭据。
打开终端窗口。
导出服务主体值:
export AZURE_SUBSCRIPTION_ID=<your-subscription_id> export AZURE_CLIENT_ID=<security-principal-appid> export AZURE_SECRET=<security-principal-password> export AZURE_TENANT=<security-principal-tenant> export AZURE_CLOUD_ENVIRONMENT=AzureChinaCloud
验证配置
若要验证配置是否成功,请使用 Ansible 创建一个 Azure 资源组。
在 Azure 本地 Shell 中,创建名为
rg.yml
的文件。code rg.yml
在编辑器中粘贴以下代码:
--- - hosts: localhost connection: local tasks: - name: Create resource group azure_rm_resourcegroup: name: ansible-rg location: chinaeast register: rg - debug: var: rg
保存文件并退出编辑器。
使用
ansible-playbook
命令运行 playbook:ansible-playbook rg.yml
运行 playbook 后,可看到类似于以下结果的输出:
PLAY [localhost] *********************************************************************************
TASK [Gathering Facts] ***************************************************************************
ok: [localhost]
TASK [Create resource group] *********************************************************************
changed: [localhost]
TASK [debug] *************************************************************************************
ok: [localhost] => {
"rg": {
"changed": true,
"contains_resources": false,
"failed": false,
"state": {
"id": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/ansible-rg",
"location": "chinaeast",
"name": "ansible-rg",
"provisioning_state": "Succeeded",
"tags": null
}
}
}
PLAY RECAP ***************************************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=0