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 3 #9

Merged
merged 7 commits into from
Nov 20, 2018
Merged

Ansible 3 #9

merged 7 commits into from
Nov 20, 2018

Conversation

Kirill-Garbar
Copy link
Collaborator

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

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

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

  • Создали роли для db и app.
  • Прикрутил dynamic inventory. Скрипт и ini файл лежит в директориях prod и stage. Не увере, что это правильно, но по-другому не читаются переменные group_var и host_vars.
  • Создали структуру environments. В директориях stage и prod свои inventory, свои переменные (group_vars, host_vars). gce.py группирует хосты, создавая тэги tag_hostname.
  • Распределили таски, хэндлеры, переменные и т.д. по структуре директорий роли. defaults - переменные по-умолчанию; files; handlers; meta - метаинформация, зависимости; tasks - таски; templates - шаблоны; tests; vars; Переменные задаются в директории environments для каждого окружения.
  • Добавили переменную env, чтобы при выполнении playbook всегда видеть, на каком окружении он выполняется.
  • Переместили playbooks в отдельную директорию.
  • Переместили устаревшие данные в директорию old.
  • Добавили вывод diff.
  • Добавили роль nginx из ansible-galaxy и настроили на проксирование с 80 порта. Открыли 80 порт в TF. Не стали закрывать порт 9292.
  • Создали пользователей на виртуалках, зашифровав credentials.yml с помощью ansible-vault.
  • Добавили инфраструктурные тесты: packer validate, terraform validate, tflint, ansible-lint
  • Badge со статусом билда добавил только для ветки master. Ветка хардкодится в ссылке в README. Варианты решения: 1. добавлять ссылку на свой сервис, который по хэдеру запроса сформирует ссылку на бэйдж и добавить в README; 2. Сделать precommit hook, который будет заменять ссылку на бэйдж в тревисе при каждом коммите. Вариант 1 не подходит из-за своей костыльности. Вариант 2 подходит. В жизни долгоживущие ветки создаются редко и для них так и так README пишутся вручную, поэтому можно забить динамически формировать ссылку на бэйдж :)

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

  • Забрать ветку ansible-3.
  • Перейти в директорию terraform/stage.
  • Выполнить terraform init && terraform apply (ключи пользователя appuser должны быть в домашней директории ~/.ssh). Запомнить app_external_ip.
  • Настроить gce dynamic inventory и положить его в директорию stage и prod.
  • Перейти в директорию ansible и выполнить ansible-playbook site.yml.
  • Перейти в браузере по ссылке http://app_external_ip:80.
  • Залогиниться на виртуалки под пользователем appuser, выполнить su user_name. Ввести password. Явки-пароли взять из ДЗ.

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 d204018 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
Development

Successfully merging this pull request may close these issues.

2 participants