Monthly Archives: June 2018

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 »

Terraform: создание проекта с EC2, VPC и AWS cross-region VPC peering

28 June 2018
 

 Одной из неприятных неожиданностей в использовании CloudFormation оказался факт того, что он не умеет создавать VPC peering между VPC в разных регионах. Т.е., сама возможность создания cross-region peering была анонсирована>>> AWS в ноябре 2017, но по состоянию на июнь 2018 – AWS CloudFormation просто не имеет опции region. В результате он пытается выполнить пиринг между… Read More »

AWS: CloudFormation – UPDATE_ROLLBACK_FAILED

27 June 2018
 

 Ситуация: был стек, в котором создавался VPC peering (ресурс AWS::EC2::VPCPeeringConnection) с VPC в другом стеке. Потом первый стек был удалён, но во втором стеке осталась ссылка на этот пиринг. В результате во время апгрейда второго стека – он фейлится, и не может выполнить rollback-операцию: Решение нагугливается легко по запросу “UPDATE_ROLLBACK_FAILED fix“, см тут>>>, в первом… Read More »

Terraform: пример работы – основные команды, state-файлы, бекенды, модули

25 June 2018
 

 Пример использования Terraform, его основные команды, работа с бекенда и модулями. Достаточно кратко, но со ссылками на документацию. Устанавливаем на Arch Linux: Для авторизации используем созданный AWS профиль setevoy-root. main.tf Создаём файл main.tf, в котором указываем использование AWS provider, регион, и имя AWS профиля: provider “aws” { region = “${var.aws-region}” profile = “setevoy-root” } Тут… Read More »

AWS: CloudFormation – route table rtb-6ea6bd06 and network gateway pcx-48eaed21 belong to different networks

22 June 2018
 

 При создании нового стека с использованием VPC peering – CloudFormation сообщает об ошибке: route table rtb-6ea6bd06 and network gateway pcx-48eaed21 belong to different networks (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterValue; Request ID: d8c60294-5ea7-4407-9886-6459c16762b8) Причина не совсем очевидна, потому запишу её себе на будущее. Проверяем таблицу rtb-6ea6bd0: Обращаем внимание на сеть: subnet-8d0d41e5 | monitoring-production-public-net 10.0.1.0/28… Read More »

Prometheus: CloudWatch exporter – сбор метрик из AWS и графики в Grafana

21 June 2018
 

 Используем prometheus/cloudwatch_exporter. Клиент написан, внезапно, на Java, из минусов – не умеет экпортировать теги AWS в метки Prometheus (есть альтернативный клиент – technofy/cloudwatch_exporter, который вроде бы умеет). IAM пользователь Для IAM пользователя, доступы которого будет использовать експортёр требуются роли cloudwatch:ListMetrics и cloudwatch:GetMetricStatistics (надо проверить – сработает ли роль CloudWatchAgentServerPolicy, подключенная к EC2, что бы не использовать Access/Secret… Read More »

macOS: launchctl – запуск/остановка сервисов на примере Jenkins slave агента

20 June 2018
 

 Искал аналог systemctl для systemd или service для Upstart, но под macOS, что бы можно было запускать сервис из консоли, нагуглился такой сервис как launchctl, который является частью launchd. Для примера возьмём plist-файл из комментария к посту Jenkins: macOS slave агент через Java Web Start. Другие примеры plist-файлов есть тут>>>., описание ключей – на странице… 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 »

AWS: CloudFormation – VPC peering и Fn::ImportValue

13 June 2018
 

 В продолжение/дополнение постов Prometheus: AWS EC2 service discovery и AWS: настройка VPC peering – пример настройки VPC peering в шаблонах стеков CloudFormation. Идея следующая: создадим стек monitor – он будет имитировать стек мониторинга создадим стек application – он будет имитировать стек приложения application должен будет запросить пиринг с VPC из стека monitor, что бы Prometheus в стеке monitor смог… Read More »

AWS: настройка VPC peering

12 June 2018
 

 VPC peering – соединение между двумя VPC, позволяющее ресурсам в этих сетях обмениваться трафиком, используя приватные IP адреса из подсетей тих VPC, как если бы они были в пределах одной сети. VPC peering может быть установлен между вашими сетями, или между сетями из другого AWS аккаунта. Кроме того – можно создать подключение между VPC в… Read More »