Начало работы. Настройка Ansible на виртуальной машине Azure
В этой статье показано, как установить Ansible на виртуальной машине Ubuntu в Azure.
Вы узнаете, как выполнять следующие задачи:
- Создание или изменение группы ресурсов
- Создание виртуальной машины Ubuntu
- Установка 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 Ubuntu2204 \ --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 с azure.azcollection
Выполните следующие команды, чтобы настроить Ansible в Ubuntu:
#!/bin/bash
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
# Install Ansible az collection for interacting with Azure. (optional)
ansible-galaxy collection install azure.azcollection --force
# Install Ansible modules for Azure (optional)
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.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 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 с 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
в сборнике схем результаты будут отображены после завершения команды.
- В связи с наличием переменной