Архив метки: Ansible

Ansible: шифрование и копирование PEM-ключа

5 февраля 2019
 

 Задача — во время выполнения роли скопировать на удалённый хост PEM-ключ. Для этого используем ansible-vault. Идея состоит в том, что мы зашифруем содержимое ключа в переменную, а затем используем модуль copy — и создадим на удалённой системе новый файл. Создание сертификата Сначала создадим сам сертификат и приватный ключ с помощью openssl: Проверяем содержимое: Шифрование данных… Читать далее »

AWS: CloudFormation — S3 корзина для логов Application Load Balancer

27 ноября 2018
 

 Имеется уже созданный стек с Application Load Balancer, для которого требуется включить сбор логов в S3 корзину. Общая документация — тут>>>. CloudFormation стек и ресурсы уже созданы, поэтому тут просто пример добавления необходимых параметров и новых ресурсов для включения логгирования запросов балансировщика. Запуск CloudFormation выполняется из Ansible с помощью модуля cloudformation, и значения параметров будут заданы… Читать далее »

AWS: EC2 — ошибка «cannot open access to console», инстансы T2 vs R5 и Ansible

19 октября 2018
 

 Имеется EC2 типа t2.large, которому через CloudFormation был изменён тип на r5.xlarge. К инстансу подключен дополнительный EBS-раздел, который монтируется в /data. Ирония ситуации ещё и в том, что «упал» сервер мониторинга, который должен сообщать о падениях всех остальных серверов 🙂 Проблема После смены типа — он запускается, но зависает на старте. Проверяем скриншот — правой… Читать далее »

Ansible: with_fileglob — копирование нескольких шаблонов из директории

10 сентября 2018
 

 Необходимо скопировать пачку файлов — задач для supervisord. В Ansible используем with_fileblob: … — name: «Copy supervisor tasks» template: src: «{{ item }}» dest: «/etc/supervisor/conf.d/{{ item | basename | regex_replace(‘.j2’,») }}» owner: «root» group: «root» mode: 0644 with_fileglob: — templates/*.j2 … С помощью фильтра basename — получаем имя файла из {{ item }}, а с… Читать далее »

AWS: миграция RTFM 3.0 (final) — CloudFormation и Ansible роли

25 августа 2018
 

 Прошёл почти год, как я начал миграцию v2, закончил на посте Ansible: миграция RTFM 2.11 – хост Services – установка PHP, PHP-FPM. Основной её идеей на тот момент было максимально использовать возможности AWS и Ansible — чисто из интереса и для практики, т.к. на предыдущем месте работы её было совсем мало (там в основном был Azure… Читать далее »

RabbitMQ: Ansible и Hostname mismatch: node believes its host is different.

8 августа 2018
 

 Имеется Ansible плейбук, где среди прочего выполняется установка и настройка RabbitMQ. При запуске задачи с использованием плагина rabbitmq_vhost возникает ошибка: Решение — добавить в вызов rabbitmq_vhost имя ноды с указанием имени хоста, в примере ниже это будет node: «rabbit@{{ set_hostname }}»: … — name: Add RabbitMQ vhosts rabbitmq_vhost: node: «rabbit@{{ set_hostname }}» name: «{{ item.value.vhost… Читать далее »

AWS: CloudFormation — создание EFS + Ansible роль

1 августа 2018
 

 Задача — добавить ресурсы AWS Elastic File System в существующий CloudFormation стек. В CloudFormation для этого имеется ресурс AWS::EFS::FileSystem, который и используем. Шаблон для CloudFormation уже создан, и в примерах ниже будут отсылки к его ресурсам. Опции EFS Перед тем, как создавать EFS — немного рассмотрим доступные опции. EFS имеет два основных доступных параметра — Performance… Читать далее »

Grafana: добавление CloudWatch data-sorce

18 июля 2018
 

 Для получения метрик из AWS CloudWatch для связки Grafana/Prometheus можно использовать два подхода: собирать метрики в Prometheus с помощью cloudwatch_exporter добавить новый data-source в Grafana, и рисовать графики используя его Ниже описывается процесс добавления data-source в Grafana и графиков AWS Load Balancer. IAM пользователь Добавляем IAM пользователя с Programmatic access: В Permissions выбираем Attach existing policies… Читать далее »

Ansible: проверить конфигурацию NGINX перед рестартом

13 июля 2018
 

 Имеется роль nginx, в которой выполняется его настройка и копирование файлов. Последней задачей роли выполняется nginx restart. Проблема заключается в том, что попытка перезапуска NGINX выполняется в любом случае, и если в файле шаблона виртуалхоста есть ошибка — то NGINX не запустится. Что бы выполнить проверку — nginx -t — добавляем задачу с вызовом модуля… Читать далее »

Ansible: использование ansible_date_time для получения даты/времени

12 июля 2018
 

 Имеется задача по созданию архива, в имени которого хочется добавлять дату и время его создания. Для получения даты-времени можно использовать ansible_date_time. Проверяем. Добавлем задачу, которая выведет всё содержимое: — name: Test date debug: msg: «{{ ansible_date_time }}» Запускаем: Теперь — попробуем получить отдельные значения, например date: — name: Test date debug: msg: «{{ ansible_date_time.date }}»… Читать далее »