Задача:

  • Настройка узла управления Ansible
    • Настройте узел управления на базе ANS:
      • Используйте стандартную пакетную версию ansible
    • Сформируйте инвентарь:
    • Создайте файл инвентаря с именем hosts
      • Настройте запуск данного инвентаря по умолчанию
    • Сформируйте 3 группы серверов (SRV-A, SRV-R, RTR)
    • Реализуйте доступ к серверам с учетом настроек SSH
      • Пользователь и ключ (пароль) для каждой группы должны быть размещены в папке group_vars в качестве переменных
    • Выполните тестовую команду “ping” средствами ansible.
      • Убедитесь, что все сервера отвечают “pong
      • Убедитесь, что команды ansible выполняются от пользователя user без использования sudo
    • Создайте необходимую для выполнения задания 2 дня структуру каталогов
      • Если требуется, используйте ansible-vault и пароль prof для шифрования конфигурационных файлов

Вариант реализации:

ANS:

  • Устанавливаем пакет ansible:
sudo dnf install -y ansible
  • Описываем инвентарный файл в /opt/ansible/hosts:
vim /opt/ansible/hosts
    • содержимое инвентарного файла в формате yaml:
      • в данном инвнтарном файле описаны 3 группы:
        • группа Astra с хостом srv-a;
        • группа Redos с хостом srv-r;
        • группа Router с хостом rtr.

    • аналогичный инвентарный файл, но в формат ini:

  • Редактируем конфигурационный файл /etc/ansible/ansible.cfg:
sudo vim /etc/ansible/ansible.cfg
    • вносим следующую информацию:
      1. указываем, что стоит по умолчанию использовать инвентарный файл из каталога /opt/ansible;
      2. игнорируем fingerprint для первого подключёния по ssh

  • Создаём директорию для переменных пренадлежащих группе хостов:
cd /opt/ansible
mkdir group_vars
  • Описываем файлы групповых переменных для каждой группы в директории group_vars:
    • файл должен иметь одноимённое имя с группой хостов, которой пременные пренадлежат:
      1. файл Astra.yml - содержит переменные для группы хостов Astra - описанных в инвентарном файле hosts;
      2. файл Redos.yml - содержит переменные для группы хостов Redos - описанных в инвентарном файле hosts;
      3. файл Router.yml - содержит переменные для группы хостов Router - описанных в инвентарном файле hosts;

  • Таким образом, имеем следующую структуру файлов и директорий в каталоге /opt/ansible:

  • Выполняем проверку доступности хостов средствами ansible:
ansible -m ping all
    • результат:

  • Создаём необзодимую структуру каталогов для следующего модуля:
mkdir project_{1..6}
    • результат:

  • В директории /opt/ansible/project_6 создаём файл docker-compose.yml:
touch project_6/docker-compose.yml
  • Выполняем шифрование файла docker-compose.yml средствами ansible-vault:
ansible-vault encrypt --ask-vault-pass project_6/docker-compose.yml
    • в качестве пароля для дешифрования указываем prof:
      • результат:

  • Проверяем:

Последнее изменение: понедельник, 1 июля 2024, 21:50