Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ansible 2 #8

Merged
merged 10 commits into from
Nov 20, 2018
Merged

Ansible 2 #8

merged 10 commits into from
Nov 20, 2018

Conversation

Kirill-Garbar
Copy link
Collaborator

Выполнено ДЗ № 9

  • Основное ДЗ
  • Задание со *

В процессе сделано.

  • Добавили в gitignore маску для временных файлов Ansible.
  • Написали playbook с одним task внутри. Запускали, фильтруя этапы таска по тэгам, а хосты ключом --limit.
  • Переписали playbook на несколько тасков. В каждый добавили ограничение по тэгам. Фильтр по --limit больше не нужен.
  • Разбили три таска на три playbook: app.yml, db.yml, deploy.yml и директивой import_playbbok добавили их в корневой playbook.
  • Изменили provisioners в packer с баш-скриптов на Ansible и пересобрали образы.
  • Про выбор dynamic inventory написал в следующем пункте.
  • Чтобы dynamic inventory заработал, я изменил hosts в наших playbook на те, которые описаны в GCP (reddit-app, reddit-db).
  • Чтобы вручную не конфигурить внутренний адрес монги, научился работать с хостовыми перменными "{{ hostvars['reddit-db']['gce_private_ip'] }}".

Подбор метода получения инвентори из GCP.

  • В качестве dynamic inventory я выбрал gce.py. Кроме этого популярного решения на python были варианты получать инвентори через TF. Завязываться на TF я посчитал излишним. Все эти решения одинаковы с точки зрения функционала для наших нужд. Директорию с настройками div_env я целиком добавил в gitignore.

Как проверить работоспособность.

  • Забрать ветку ansible-2.
  • Перейти в корневую директорию и выполнить
packer build packer/app.json
packer build packer/db.json
  • Перейти в директорию terraform/stage.
  • Выполнить terraform init && terraform apply (ключи пользователя appuser должны быть в домашней директории ~/.ssh). Запомнить app_external_ip.
  • Настроить gce dynamic inventory и положить его в директорию dyn_inv.
  • Перейти в директорию ansible и выполнить ansible-playbook site.yml.
  • Перейти в браузере по ссылке http://app_external_ip:9292.

PR checklist

  • Выставил label с номером домашнего задания
  • Выставил label с темой домашнего задания

Copy link

@dmitriy-kharchenko dmitriy-kharchenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Принято

@Kirill-Garbar Kirill-Garbar merged commit 710fb4c into master Nov 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants