Ansible — Хранить N последних директорий и артефактов

Цель: Есть директория «/opt/application«, в которую скачивается архив с приложением и распаковывается в директорию, где в качестве имени используется короткая производная от HASH коммита (8 символов). И создается символическая ссылка на данную директорию. Необходимо хранить только 3 последних версии приложения, как директорий, так и архивов, а так же не удалять директории которые называются: logs media … Продолжить читать "Ansible — Хранить N последних директорий и артефактов"

Ansible — Запуск Playbook’а с определенной версией Python

К примеру есть инстанс, на котором установлен Python 2-ой и 3-ей версий, но по умолчанию используется 2-ая, и чтобы не менять версию по умолчанию и запустить Playbook используя Python3, можно воспользоваться следующей командой:   Так же можно указать интерпретатор в инвентори файле:   Убедитесь, что для нужной версии Python установлен Ansible модуль

Ansible — Template: to_nice_json

Для того, чтобы создать из шаблона файл и сразу его сохранить как «Pretty JSON» можно воспользоваться модулем «copy» с ключем «content«. К примеру сохраним шаблон «config.j2» как файл «/app/config.json» Playbook:

FIX ERROR — Ansible AWS SSM: AnsibleError: An unhandled exception occurred while templating

При попытке получить значение с AWS SSM Ansible Playbook используя в качестве интерпретатора Python3 выдает следующую ошибку: fatal: [localhost-py3]: FAILED! => {«changed»: false, «msg»: «AnsibleError: An unhandled exception occurred while templating ‘{{ lookup(‘aws_ssm’, ‘server_listeners’, decrypt=false, region=’eu-west-1′) }}’. Error was a <class ‘ansible.errors.AnsibleError’>, original message: An unhandled exception occurred while running the lookup plugin ‘aws_ssm’. Error … Продолжить читать "FIX ERROR — Ansible AWS SSM: AnsibleError: An unhandled exception occurred while templating"

Ansible — Получить IP адрес другого хоста с hosts файла

Пример, как получить IP адрес другого хоста с «hosts» файла, выполняя задачу на другом хосте.   server1 — на нем будет выполнятся наш Playbook server2 — его IP адрес нам нужен в Playbook‘е   hosts:   Для того, чтобы получить IP адрес, мы будем использовать «hostvars«, где укажем имя нужного нам сервера, в нашем случае … Продолжить читать "Ansible — Получить IP адрес другого хоста с hosts файла"

Ansible — Использовать значения в цикле с hosts файла на другом хосте

  Есть «hosts» файл, в котором есть группа «db«. Это инстансы с базами данных, которые выполняют разную роль. Цель добавить тип роли в «hosts» файл, чтобы потом это значение мы могли использовать в цикле, который будет выполнятся совершенно на другом хосте, к примеру «management»   Исходный «hosts» файл:   Добавим ключ «role» с нужным значением … Продолжить читать "Ansible — Использовать значения в цикле с hosts файла на другом хосте"

Ansible — Количество хостов группе

Есть «hosts» файл, в котором в группе «db» есть N количество хостов, нужно в плейбуке автоматически задавать переменную, равную количеству хостов в определенной группе hosts   example.yaml

Ansible — Отключить Swap

Данный Playbook отключает Swap и удаляет его из файла «/etc/fstab»   swap_disable.yaml   Применяем Playbook:

Ansible Playbook — Установка Docker в CentOS 7

За основу был взят следующий Playbook. Данный Playbook запускается на группе хостов «docker«, устанавливает необходимые пакеты для Docker‘а, добавляет Docker репозиторий, устанавливает Docker, запускает его и добавляет в автозапуск. Так же добавляет пользователя «artem» в группу «docker»   docker.yaml   Применяем Playbook: