Category Archives: CMS – Puppet, Ansible, Chef

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

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

18 July 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… Read More »

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

13 July 2018
 

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

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

12 July 2018
 

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

Ansible: использование with_dict на примере модуля rabbitmq_user

11 July 2018
 

 Требуется создать пользователей и пароли для RabbitMQ, используя плагин rabbitmq_user. При этом хочется не создавать несколько переменных и несколько задач, а всё выполнить в одном цикле, но у каждой переменной должно быть несколько полей и значений. Используем with_dict и словарь в переменных. В файле roles/roles/rabbitmq/vars/main.yml добавляем: rabbitmq_users: user1: password: “pass1” vhost: “/” configure_priv: .* read_priv:… Read More »

Jenkins: Credentials Binding Plugin и использование нескольких Secret file в Jenkins pipeline

3 July 2018
 

 Задача – запустить ansible-playbook, которому необходимо передать RSA ключ для EC2 и файл с паролем для ansible-vault, т.к. в задачах плейбука используются зашифрованные переменные. Для этого используем Jenkins credentials, где сохраним два файла, а потом через Credentials Binding Plugin – передадим их в контейнер с задачей. Secret file в Credentials Сначала добавляем файлы в Jenkins. Переходим… Read More »

Ansible: jenkins_plugin Connection refused и Cannot get CSRF

30 June 2018
 

 Для Ansible имеется плагин, позволяющий выполнить установку плагинов для Jenkins jenkins_plugin_module. Достаточно интересный модуль, ниже пример его использования и решение ошибки “Connection refused“. При попытке установить плагин с его помощью: … – name: Start Jenkins service   service:     name=jenkins     state=restarted     enabled=yes – name: Install Jenkins plugins jenkins_plugin: name: “{{ item }}” url_username: “{{ jenkins_ui_admin_user }}” url_password: “{{ jenkins_ui_admin_pass }}” state: present… Read More »

Grafana: добавление datasource из Ansible

18 June 2018
 

 В Grafana 5.0 появилась возможность настраивать её без API, а просто добавляя файлы настроек. Документация тут>>>. Удобно для использования с Ansible etc. Ниже быстрый пример применения. Путь к каталогу задаётся через переменную GF_PATHS_PROVISIONING: t=2018-06-18T13:11:26+0000 lvl=info msg=”Config overridden from Environment variable” logger=settings var=”GF_PATHS_PROVISIONING=/etc/grafana/provisioning” Ручное добавление Протестируем – попробуем добавить datasource вручную. Grafana запущена в контейнере, данные… Read More »

Prometheus: мониторинг PHP-FPM + Ansible роль

8 June 2018
 

 Задача – собирать метрики с PHP-FPM /status. Используем lusotycoon/phpfpm-exporter. Кроме этого экспортёра есть bakins/php-fpm-exporter – но контейнер из его Docker образа постоянно возвращает “Empty reply from server“. Есть peakgames/php-fpm-prometheus – но для него нет Docker образа, а собирать свой не хочется. Имеется также hipages/php-fpm_exporter – но с ним возникли ошибки вида “Error scraping PHP-FPM: invalid character ‘A’ looking for beginning… Read More »

AWS: CloudWatch unified agent – сбор метрик и логов с EC2 и Ansible роль для него

7 June 2018
 

 В дополнение к посту AWS: CloudWatch logs – сбор и мониторинг логов, где сбор логов выполнялся старым агентом – пример использования нового агента, который собирать и метрики инстанса, и логи. Для работы агента – ЕС2 требуется подключенная роль CloudWatchAgentServerPolicy, создание описано тут>>>. Пост кратенький, просто пример установки и запуска. Установка CloudWatch unified агента Устанавливаем unzip: Загружаем архив… Read More »

CircleCI: обзор Continuous Integration сервиса

31 May 2018
 

 CircleCI – система для сборки и деплоя, аналогичная Travis CI (Github), и работающая по тем же принципам – к CircleCI-аккаунту подключаются репозитории (в отличи от Travis – к CircleCI можно добавить любой репозиторий, в т.ч. Bitbucket), билды выполняются в контейнерах или вирутальных машинах, уведомления о результатах билда можно получить на почту или через интеграцию со Slack/HipChat etc, а… Read More »