Архив рубрики: Configuration/Orchestration

Вопросы, касающиеся установки, настройки и работы CMS (Configuration Manament System — система управления конфигурациями) Puppet, Ansible и Chef

Ansible: проверка наличия пакета в системе

10 марта 2019
 

 Имеется «самописная» Ansible роль letsencrypt. (см. Prometheus: мониторинг для RTFM — Grafana, Loki и promtail). Перед запуском Let’s Encrypt клиента для получения сертификатов — надо проверить, установлен ли в системе NGINX. Используем модуль package_facts: … — name: «Check if NGINX is installed» package_facts: manager: «auto» … И затем условную проверку по массиву ansible_facts.packages: … -… Читать далее »

Prometheus: мониторинг для RTFM — Grafana, Loki и promtail

9 марта 2019
 

 После внедрения Loki на рабочем проекте — решил добавить его и себе. А заодно — добавить node_exporter и alertmanager, что бы получать уведомления, когда на разделах будет заканчиваться место. Обычно «Ссылки по теме» размещаю в конце поста, но тут стоит их добавить в начале. Для общего знакомства с Prometheus: Prometheus: мониторинг — введение, установка, запуск,… Читать далее »

AWS: RDS логи, сбор в CloudWatch Logs и CloudFormation

7 марта 2019
 

 Имеется пачка AWS RDS инстансов с MariaDB. Бекенд-разработчики просят включить им slow-логи, что бы они могли дебажить свои запросы. Задача — включить логи, и добавить их передачу в CloudWatch Logs для дальнейшего анализа. RDS, как и всё остальное, у нас создаётся из CloudFormation шаблона — поэтому будут примеры и с ним. Кроме стандартных general/error/slow логов… Читать далее »

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: CloudFormation Drift — обнаружение изменений

14 ноября 2018
 

 Вчера в блоге AWS появилась преинтереснейшая новость: AWS CloudFormation обзавёлся поддержкой изменений в стеке, выполеннных вручную. Очень частовстречающая проблема при использовании 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: CloudFormation — ‘templateBody’ failed to satisfy constraint: Member must have length less than or equal to 51200

6 сентября 2018
 

 Имеется CloudFormation стек. Сначала создавался Dev-стек, к которому понемногу добавлялись новые ресурсы, всё это тестилось, и в конце-концов заработало. После этого — пришла пора выкатывать Production-стек, и вдруг… ‘templateBody’ failed to satisfy constraint: Member must have length less than or equal to 51200. Щито? 🙁 Проверяем лимиты CloudFormation: Template body size in a request Maximum… Читать далее »

AWS: CloudFormation — создание S3 Website hosting и CloudFront distribution

5 сентября 2018
 

 Пример создания хостинга статического сайта в AWS S3 и подключении к нему AWS CloudFront CDN, к которому подключается SSL сертификат из AWS ACM. Для сайта используем домен site.azinchenko.com. Получившийся шаблон доступен в репозитории тут>>>. AWS::S3::Bucket Начнём с создания корзины, используем ресурс AWS::S3::Bucket: { «AWSTemplateFormatVersion»: «2010-09-09», «Description»: «AWS CloudFormation S3 website hosting with CloudFront CND stack»,… Читать далее »