Начало работы. Настройка Ansible на виртуальной машине Azure
Внимание
Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
В этой статье показано, как установить Ansible на виртуальной машине Centos в Azure.
Вы узнаете, как выполнять следующие задачи:
- Создание или изменение группы ресурсов
- Создание виртуальной машины CentOS.
- Установка Ansible на виртуальную машину.
- Подключение к виртуальной машине через SSH
- Установка Ansible на виртуальную машину.
Необходимые компоненты
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Субъект-служба Azure: создайте субъект-службу, записав следующие значения: appId, displayName, password и tenant.
Создание виртуальной машины
Создайте группу ресурсов Azure.
az group create --name QuickstartAnsible-rg --location eastus
Возможно, потребуется заменить заполнитель
--location
соответствующим значением для вашей среды.Создайте виртуальную машину Azure для Ansible.
az vm create \ --resource-group QuickstartAnsible-rg \ --name QuickstartAnsible-vm \ --image CentOS85Gen2 \ --admin-username azureuser \ --admin-password <password>
Вместо
<password>
укажите свой пароль.Получите общедоступный IP-адрес виртуальной машины Azure.
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 на виртуальную машину.
Ansible 2.9 с модулем azure_rm
Выполните следующие команды, чтобы настроить Ansible 2.9 на CentOS:
#!/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
Выполните следующие команды, чтобы настроить Ansible на CentOS:
#!/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 см. в разделе Providing Credentials to Azure Modules (Предоставление учетных данных для модулей 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
- Вариант 2: создание и выполнение сборника схем 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
.Ansible 2.9 с модулем azure_rm
--- - 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.
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 Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по