Начало работы. Настройка Ansible на виртуальной машине Azure

В этой статье показано, как установить Ansible на виртуальной машине Ubuntu в Azure.

В этой статье вы узнаете, как:

  • Создайте группу ресурсов
  • Создание виртуальной машины Ubuntu
  • Установка Ansible на виртуальной машине
  • Подключение к виртуальной машине через SSH
  • Настройка Ansible на виртуальной машине

Предпосылки

Создание виртуальной машины

  1. Создайте группу ресурсов Azure.

    az group create --name QuickstartAnsible-rg --location eastus
    

    Возможно, потребуется заменить --location параметр соответствующим значением для вашей среды.

  2. Создайте виртуальную машину Azure для Ansible.

    az vm create \
    --resource-group QuickstartAnsible-rg \
    --name QuickstartAnsible-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --admin-password <password>
    

    Замените <password> пароль.

  3. Получите общедоступный 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 см. в статье "Предоставление учетных данных модулям Azure".

  1. После успешного подключения к виртуальной машине узла создайте и откройте файл с именем credentials:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Вставьте в файл следующие строки. Замените заполнители значениями служебного принципала.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Сохраните и закройте файл.

Вариант 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: Использование ad-hoc команды 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

  1. Сохраните следующий код как 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> собственными значениями.

  2. Запустите сборник схем с помощью сборника схем ansible-playbook.

    ansible-playbook create_rg.yml
    

Дополнительные сведения об azure.azcollection.

Очистите ресурсы

  1. Сохраните следующий код как delete_rg.yml.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Запустите сборник схем с помощью команды ansible-playbook. Замените заполнитель именем группы ресурсов для удаления. Все ресурсы в группе ресурсов будут удалены.

    ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
    

    Ключевые моменты:

    • Из-за переменной register и раздела debug плейбука результаты отображаются, когда команда завершится.

Дальнейшие шаги