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: