Поиск по сайту:

Руководство по Ansible AWX: основное использование и настройка


На этой странице

  1. Шаг 1. Настройка и настройка среды
  2. Шаг 2. Настройка учетных данных
  3. Шаг 3. Настройка запасов
  4. Шаг 4. Настройка проектов
  5. Шаг 5. Создание новых шаблонов вакансий
  6. Шаг 6. Запустите шаблон задания
  7. Шаг 7. Тестирование целевой машины
  8. Справочник

AWX — это веб-приложение с открытым исходным кодом, которое предоставляет пользовательский интерфейс, REST API и механизм задач для Ansible. Это версия Ansible Tower с открытым исходным кодом. AWX позволяет вам управлять плейбуками Ansible, инвентаризацией и планировать выполнение заданий с помощью веб-интерфейса.

В этом руководстве мы покажем вам основы использования Ansible AWX. Итак, вам нужен сервер, на котором уже установлен Ansible AWX. Мы рассмотрим некоторые базовые конфигурации Ansible AWX, которые вы должны знать, такие как учетные данные для настройки, инвентаризация, настройка и запуск шаблонов заданий и т. д. Если у вас еще не установлен Ansible, см. это руководство: https://linux-console.net /how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/.

Предпосылки

  • 2 или 3 сервера
    • 10.5.5.20   ansible-awx
    • 10.5.5.21   лемп

    Что мы будем делать:

    1. Настройка и конфигурация среды
    2. Настройка учетных данных
    3. Настройка инвентаризации
    4. Настройка проектов
    5. Настройка шаблонов заданий
    6. Запуск заданий

    Шаг 1. Установка и конфигурация среды

    В этом руководстве мы собирались развернуть и запустить Ansible playbook для базовой установки LEMP с помощью панели инструментов Ansible AWX.

    У нас есть два сервера для самого awx и целевой машины.

    10.5.5.20   ansible-awx
    10.5.5.21   lemp

    Теперь мы собирались развернуть playbook от имени пользователя hakase и использовать аутентификацию SSH на основе ключа. Итак, убедитесь, что вы уже настроили аутентификацию на основе пользователя и ключа на целевой машине lemp.

    Протестируйте с помощью следующей команды с сервера ansible-awx.

    su - hakase
    ssh

    Убедитесь, что вы вошли в систему без пароля.

    Теперь пользователь hakase должен иметь root без пароля для запуска задач.

    На целевой машине lemp запустите команду sudo, как показано ниже.

    su - hakase
    sudo su

    Убедитесь, что вы ввели привилегии root без пароля.

    Теперь вы должны установить пакеты Python на все целевые машины, управляемые Ansible.

    sudo apt install python -y

    Шаг 2. Настройка учетных данных

    Прежде всего, нам нужно настроить учетные данные Ansible AWX. Он используется для аутентификации при запуске и выполнении заданий на управляемых серверах, синхронизации с источниками инвентаризации и импорте проектов.

    По умолчанию Ansible AWX поддерживает множество учетных данных, включая виртуальную машину через аутентификацию SSH, Amazon Web Services, Google Compute Engine, OpenStack, пароль хранилища, систему управления версиями и т. д.

    Чтобы настроить учетные данные, щелкните меню «Учетные данные» слева и нажмите кнопку «+» справа от него.

    Теперь введите учетные данные NAME и DESCRIPTION, затем укажите CREDENTIAL TYPE для Machine.

    Проще говоря, учетные данные машины позволят вам использовать аутентификацию SSH для управления серверами. Его поддержка аутентификации на основе пароля и ключа.

    В этом руководстве мы будем использовать аутентификацию на основе ключей. Итак, введите имя пользователя и вставьте закрытые ключи для этого пользователя.

    Затем нажмите кнопку СОХРАНИТЬ.

    В результате был создан новый тип учетных данных Ansible AWX Machine.

    Шаг 3 - Настройка запасов

    Инвентаризация — это группы хост-серверов, управляемых Ansible AWX. Реестры позволяют создать группу с несколькими хост-серверами. И это упрощает управление разными серверами с разными средами.

    Чтобы управлять серверами и предоставлять их, мы должны создать новую группу инвентаризации, а затем добавить хосты серверов в эту группу инвентаризации.

    Чтобы добавить новый инвентарь, нажмите меню «Инвентарь» слева, затем нажмите кнопку «+» и выберите «Инвентарь».

    Введите НАЗВАНИЕ и ОПИСАНИЕ инвентаря, затем нажмите кнопку СОХРАНИТЬ.

    Теперь перейдите на вкладку HOSTS и нажмите кнопку +, чтобы добавить новые хосты.

    Введите ИМЯ ХОСТА, ОПИСАНИЕ и ПЕРЕМЕННЫЕ с дополнительной настройкой для IP-адреса целевой машины ansible_host: 10.5.5.21.

    Теперь нажмите кнопку СОХРАНИТЬ.

    Далее нам нужно обеспечить конфигурацию хостов, проверив хосты с помощью команды ping.

    Вернитесь на вкладку HOSTS, отметьте сервер имен хостов и нажмите кнопку RUN COMMANDS.

    Теперь выберите МОДУЛЬ под названием ping, нажмите кнопку поиска внутри УЧЕТНЫХ ДАННЫХ МАШИНЫ и ВЫБЕРИТЕ свои собственные, затем нажмите кнопку ЗАПУСК.

    И вы будете перенаправлены на новую страницу, а ниже результат.

    Была создана новая инвентаризация, и в нее был добавлен сервер целевой машины.

    Шаг 4 - Настройка проектов

    Проекты представлены в виде Ansible Playbook на AWX. Это коллекции Ansible Playbook, которыми мы можем управлять через локальный каталог проекта или с помощью системы SCM, такой как Git, Subversion, Mercurial и RedHat Insights.

    Чтобы создать новые проекты, откройте меню «Проекты» слева и нажмите кнопку «+».

    Введите НАЗВАНИЕ своего проекта и ОПИСАНИЕ, затем выберите ТИП SCM для Git и вставьте свой репозиторий playbook.

    Теперь нажмите кнопку СОХРАНИТЬ, и в результате будет создан новый проект для playbook.

    Кроме того:

    Если вы хотите создать новый проект с типом SCM Manual, вы можете создать новый каталог playbooks, расположенный в каталоге /var/lib/awx/projects.

    Каталог /var/lib/awx/projects является каталогом проекта по умолчанию для ваших плейбуков Ansible, если вы используете версию докера AWX с включенным параметром project_data_dir.

    Шаг 5. Создайте новые шаблоны заданий

    Шаблон задания — это определение запуска самих плейбуков Ansible. Итак, чтобы создать новый шаблон задания или запустить шаблон задания, нам нужно добавить Ansible playbook из нашего проекта, учетные данные для аутентификации и целевые машины, хранящиеся в Inventories.

    Для этого руководства мы уже создали новый проект, учетные данные и инвентарь. Итак, просто щелкните меню «Шаблоны» слева, затем нажмите кнопку «+» и выберите параметр «Шаблон задания».

    Теперь вам нужно ввести НАЗВАНИЕ и ОПИСАНИЕ задания. Затем выберите ИНВЕНТАРЬ, ПОЛНОМОЧИЯ и ПРОЕКТ. И после этого укажите PLAYBOOK, который вы хотите запустить и развернуть.

    В результате был создан новый шаблон задания Ansible AWX.

    Шаг 6. Запустите шаблон задания

    После создания нового шаблона задания мы запустим шаблон задания и развернем проекты Playbooks на целевых хостах в инвентаре.

    Щелкните меню «Шаблоны» слева, и вы получите списки доступных шаблонов заданий.

    Как только задание будет завершено, вы увидите зеленый знак внутри имени шаблона задания.

    Нажмите на зеленый знак внутри имени шаблона задания, и вам будет показан фактический результат этого задания.

    Задание было успешно завершено, и на целевой машине был установлен стек LEMP через Ansible AWX.

    Шаг 7 — Тестирование целевой машины

    Проверка доменного имени целевой машины. Конфигурация доменного имени хранится в конфигурации roles/web/vars/main.yml.

    Проверка сервисов Nginx и PHP-FPM с помощью команд systemctl.

    systemctl status nginx
    systemctl status php7.2-fpm

    Тестирование базы данных MySQL на целевой машине. Подробная конфигурация базы данных MySQL хранится в файле конфигурации roles/db/vars/main.yml.

    В результате стек LEMP был установлен на целевой машине через Ansible AWX.

    Ссылка

    • https://docs.ansible.com/ansible-tower/latest/html/userguide/