- Установите ansible версии 2.10 или выше.
- Создайте свой собственный публичный репозиторий на github с произвольным именем.
- Скачайте playbook из репозитория с домашним заданием и перенесите его в свой репозиторий.
- Попробуйте запустить playbook на окружении из
test.yml, зафиксируйте какое значение имеет фактsome_factдля указанного хоста при выполнении playbook'a. - Найдите файл с переменными (group_vars) в котором задаётся найденное в первом пункте значение и поменяйте его на 'all default fact'.
- Воспользуйтесь подготовленным (используется
docker) или создайте собственное окружение для проведения дальнейших испытаний. - Проведите запуск playbook на окружении из
prod.yml. Зафиксируйте полученные значенияsome_factдля каждого изmanaged host. - Добавьте факты в
group_varsкаждой из групп хостов так, чтобы дляsome_factполучились следующие значения: дляdeb- 'deb default fact', дляel- 'el default fact'. - Повторите запуск playbook на окружении
prod.yml. Убедитесь, что выдаются корректные значения для всех хостов. - При помощи
ansible-vaultзашифруйте факты вgroup_vars/debиgroup_vars/elс паролемnetology. - Запустите playbook на окружении
prod.yml. При запускеansibleдолжен запросить у вас пароль. Убедитесь в работоспособности. - Посмотрите при помощи
ansible-docсписок плагинов для подключения. Выберите подходящий для работы наcontrol node. - В
prod.ymlдобавьте новую группу хостов с именемlocal, в ней разместите localhost с необходимым типом подключения. - Запустите playbook на окружении
prod.yml. При запускеansibleдолжен запросить у вас пароль. Убедитесь что фактыsome_factдля каждого из хостов определены из верныхgroup_vars. - Заполните
README.mdответами на вопросы. Сделайтеgit pushв веткуmaster. В ответе отправьте ссылку на ваш открытый репозиторий с изменённымplaybookи заполненнымREADME.md.
- При помощи
ansible-vaultрасшифруйте все зашифрованные файлы с переменными. - Зашифруйте отдельное значение
PaSSw0rdдля переменнойsome_factпаролемnetology. Добавьте полученное значение вgroup_vars/all/exmp.yml. - Запустите
playbook, убедитесь, что для нужных хостов применился новыйfact. - Добавьте новую группу хостов
fedora, самостоятельно придумайте для неё переменную. В качестве образа можно использовать этот. - Напишите скрипт на bash: автоматизируйте поднятие необходимых контейнеров, запуск ansible-playbook и остановку контейнеров.
- Все изменения должны быть зафиксированы и отправлены в вашей личный репозиторий.
Выполненное домашнее задание пришлите ссылкой на .md-файл в вашем репозитории.