- Попробуйте запустить 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
. Ниже представлены команды с помощью которых можно получить ответ.
ansible-doc -t connection -l
ansible-doc -t connection local
- В
prod.yml
добавьте новую группу хостов с именемlocal
, в ней разместите localhost с необходимым типом подключения. - Запустите playbook на окружении
prod.yml
. При запускеansible
должен запросить у вас пароль. Убедитесь что фактыsome_fact
для каждого из хостов определены из верныхgroup_vars
.
Ответ: Готово, демонстрация на скриншоте ниже.
- При помощи
ansible-vault
расшифруйте все зашифрованные файлы с переменными. - Зашифруйте отдельное значение
PaSSw0rd
для переменнойsome_fact
паролемnetology
. Добавьте полученное значение вgroup_vars/all/exmp.yml
. - Запустите
playbook
, убедитесь, что для нужных хостов применился новыйfact
.
Ответ: Готово, демонстрация на скриншоте ниже. - Добавьте новую группу хостов
fedora
, самостоятельно придумайте для неё переменную. В качестве образа можно использовать этот.
Ответ: Готово, демонстрация на скриншоте ниже. - Напишите скрипт на bash: автоматизируйте поднятие необходимых контейнеров, запуск ansible-playbook и остановку контейнеров.
Ответ: Готово, демонстрация на скриншотах ниже и файл автоматизации во вложении. В файле предусмотрено 2 варианта запуска ансибла. Через запрос пароля и через файл с паролем. СКРИПТ
Ситуация когда нет всех необходимых образов и надо скачать.