Skip to content

Latest commit

 

History

History
55 lines (48 loc) · 3.99 KB

File metadata and controls

55 lines (48 loc) · 3.99 KB

Домашнее задание 2

  • В репозитории devops-hometasks создайте директорию 02-ansible

  • В поддиректории 1 создайте Vagrantfile, основанный на Debian, который конфигурирует виртуальную машину (одну) c помощью ansible

  • Настройте виртуальную машину таким образом, чтобы на хост-машине при обращении на адрес http://localhost:8080 открывался статический HTML файл index.html, а при обращении на адрес http://localhost:8081 - динамический сайт index.php

  • В поддиректории 2 создайте Vagrantfile, который конфигурирует три виртуальныe машины c помощью ansible (можно использовать отдельный плейбук для каждой машины):

    • машина со статическим сайтом index.html
    • машина с динмамическим сайтом index.php
    • машина с nginx настроенным в качестве reverse proxy для первых двух машин

Вопросы к экзамену

  • Что такое ansible?
  • Что такое инвентарь в терминах ansible?
  • Как называется ansible скрипт?
  • Как должен называться файл с переменными для определенного хоста и где он должен находиться?
  • Для чего нужна строка register: file_output в следущей задаче:
      name: create a directory
      file:
          path: /etc/some_directory
          state: directory
      register: file_output
  • Как выполнить плейбук на всех серверах баз данных не зависимо от их количества (сервера могут добавляться и удаляться, плейбук должен отрабатывать без каких-либо изменений в коде)?

Полезные ссылки

Команды ansible

  • ansible-playbook -i inventory playbook.yaml
  • ansible-galaxy collection install community.general
  • ansible -i inventory all -m ping
  • ansible -i inventory all -m apt -a "name=curl state=present" -b
  • ansible -i inventory/hosts 192.168.50.5 -m setup
  • ansible-vault encrypt inventory
  • ansible-vault view inventory
  • ansible-vault decrypt inventory
  • ansible-vault edit inventory
  • ansible-vault encrypt_string
  • ansible-playbook -i inventory playbook.yaml --ask-vault-pass
  • ansible-playbook -i inventory playbook.yaml --vault-password-file password.txt
  • ansible-inventory --list -i ansible.hosts -y
  • ansible-inventory --graph -i ansible.hosts
  • ansible-playbook -i inventory playbook.yaml --tags "install_packages"