Skip to content

Latest commit

 

History

History
96 lines (80 loc) · 4.19 KB

08-ansible-01-base.md

File metadata and controls

96 lines (80 loc) · 4.19 KB

Основная часть

  1. Попробуйте запустить playbook на окружении из test.yml, зафиксируйте какое значение имеет факт some_fact для указанного хоста при выполнении playbook'a.
ok: [localhost] => {
    "msg": 12
}
  1. Найдите файл с переменными (group_vars), в котором задаётся найденное в первом пункте значение, и поменяйте его на 'all default fact'.
  2. Воспользуйтесь подготовленным (используется docker) или создайте собственное окружение для проведения дальнейших испытаний.
docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED              STATUS              PORTS     NAMES
82e9ee19e6d7   fb52e22af1b0   "bash"        About a minute ago   Up About a minute             ubuntu
c23813736941   eeb6ee3f44bd   "/bin/bash"   2 minutes ago        Up 2 minutes                  centos7
  1. Проведите запуск playbook на окружении из prod.yml. Зафиксируйте полученные значения some_fact для каждого из managed host.
TASK [Print fact] 
ok: [centos7] => {
    "msg": "el"
}
ok: [ubuntu] => {
    "msg": "deb"
}
  1. Добавьте факты в group_vars каждой из групп хостов так, чтобы для some_fact получились следующие значения: для deb - 'deb default fact', для el - 'el default fact'.
  2. Повторите запуск playbook на окружении prod.yml. Убедитесь, что выдаются корректные значения для всех хостов.
TASK [Print fact] 
ok: [centos7] => {
    "msg": "el default fact"
}
ok: [ubuntu] => {
    "msg": "deb default fact"
}

  1. При помощи ansible-vault зашифруйте факты в group_vars/deb и group_vars/el с паролем netology.
ansible-vault encrypt group_vars/el/examp.yml
ansible-vault encrypt group_vars/deb/examp.yml
  1. Запустите playbook на окружении prod.yml. При запуске ansible должен запросить у вас пароль. Убедитесь в работоспособности.
  • работает.
  1. Посмотрите при помощи ansible-doc список плагинов для подключения. Выберите подходящий для работы на control node.
 ansible-doc --playbook-dir . -l -t connection
 ...
 local                          execute on controller
  1. В prod.yml добавьте новую группу хостов с именем local, в ней разместите localhost с необходимым типом подключения.
---
  el:
    hosts:
      centos7:
        ansible_connection: docker
  deb:
    hosts:
      ubuntu:
        ansible_connection: docker

  local:
    hosts:
      localhost:
        ansible_connection: local
  1. Запустите playbook на окружении prod.yml. При запуске ansible должен запросить у вас пароль. Убедитесь что факты some_fact для каждого из хостов определены из верных group_vars.
TASK [Print fact] ***************************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "all default fact"
}
ok: [centos7] => {
    "msg": "el default fact"
}
ok: [ubuntu] => {
    "msg": "deb default fact"
}
  1. Заполните README.md ответами на вопросы. Сделайте git push в ветку master. В ответе отправьте ссылку на ваш открытый репозиторий с изменённым playbook и заполненным README.md.

https://github.com/GrigoriyAzatyan/devops-netology/tree/main/08-ansible-01-base