Архив за месяц: Август 2018

AWS: Application Load Balancer — HTTP => HTTPS и host-header редиректы

30 августа 2018
 

 Имеется Application Load Balancer, за которым находятся три хоста: два фронтенда, и один master. Задачи следующие: добавить редиректы HTTP => HTTPS добавить редиректы доменов dev.admin.dme.example.com на master-хост, а остальных — на frontend-хосты добавить редиректы www <=> non-www Редирект HTTP на HTTPS Тут столкнулся с очередным «подарком» от AWS CloudFormation: After checking our internal information, the newly… Читать далее »

Linux: weechat — консольный IRC клиент

28 августа 2018
 

 Понадобилась «помощь зала» по одной баге в AWS, решил поспрашивать в IRC на Freenode. IRC клиента на машине нет, ибо пользуюсь им крайне редко, нагуглил приятный консольный клиент — weechat. Устанавливаем: [simterm] $ sudo pacman -S weechat [/simterm] Запускаем: [simterm] $ weechat [/simterm] Добавляем сервер: [simterm] /server add freenode chat.freenode.net [/simterm] Получаем список настроенных в… Читать далее »

Linux: Spectacle — module «QtQuick.Controls» is not installed

27 августа 2018
 

 После последнего апдейта системы — spectacle начал вылетать при попытке сделать скришот выделенной области — опция «Reactangular Region» в Area: Для «дебага» — запускаем его из консоли, и смотрим сообщения: [simterm] 11:40:46 [setevoy@setevoy-arch-work ~] $ spectacle qt5ct: using qt5ct plugin qrc:/QuickEditor/EditorRoot.qml:23:1: module «QtQuick.Controls» is not installed QObject::connect: Cannot connect (null)::acceptImage(int, int, int, int) to QuickEditor::acceptImageHandler(int, int,… Читать далее »

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

25 августа 2018
 

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

Jenkins: wrapper script does not seem to be touching the log file

23 августа 2018
 

 При запуске задачи возникает ошибка: wrapper script does not seem to be touching the log file in /var/lib/jenkins/workspace/ETLFB@tmp/durable-893314e7 (JENKINS-48300: if on a laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=300) Есть созданная бага тут>>>. Собственно решеине указано в тексте самой ошибки — добавляем HEARTBEAT_CHECK_INTERVAL=300. Обновляем pipeline-скрипт, добавляем System.setProperty(«org.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL», «3800»);: #!/usr/bin/env groovy node { // checkout https://github.com/project/deployment to the «ci»… Читать далее »

Linux: kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0,0)

17 августа 2018
 

 Есть Ubuntu машинка, Jenkins билд-агент. Последнее время начала выпадать в Kernel panic и просто во время работы, и при перезагрузке, с ошибкой вида «kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0,0)«. Причина оказалась банальна — раздел /boot был забит чуть менее, чем полностью (с). Для решения — находим старые ядра: [simterm]… Читать далее »

Jenkins: Scripted Pipeline — подтверждение выполнения для Production окружения

16 августа 2018
 

 Есть несколько задач, которые выполняются в Scripted Pipeline. В задачах выполняется провижен CloudFormation и запуск Ansible плейбука на Dev и Production. Что бы исключить случайный запуск Production задачи — хочется добавить шаг подтверждения действия. Используем pipeline-input-step и класс BooleanParameterDefinition. Добавляем функцию verify(): def verify() { stage(‘Verify’) { def userInput = input( id: ‘userInput’, message: ‘This… Читать далее »

Prometheus: проверка отсутствия метрик — avg_over_time()

15 августа 2018
 

 Среди прочих алертов у нас есть алерты на падение сервиса — когда метрика *_up == 0. Проблема в том, что такой алерт сработает только в том случае, если екпортёр сервиса явно вернёт значение ноль, но если ЕС2 с сервисом и екпортёром был выключен/удалён — то Alertmanager ничего не сообщит. Например — алерт на RDS выглядит… Читать далее »

Linux: systemd сервис для Docker Compose

14 августа 2018
 

 Есть Docker Compose файл, который запускает Prometheus стек. Рабочий каталог Prometheus — /opt/prometheus, в котором находится Compose файл prometheus-compose.yml. Для управления им через systemd — создаём файл /etc/systemd/system/prometheus.service: [Unit] Description=Prometheus stack Requires=docker.service After=docker.service [Service] Restart=always WorkingDirectory=/opt/prometheus ExecStart=/usr/local/bin/docker-compose -f prometheus-compose.yml up ExecStop=/usr/local/bin/docker-compose -f prometheus-compose.yml down [Install] WantedBy=multi-user.target Проверяем. Запускаем: [simterm] # systemctl start prometheus.service [/simterm] Проверяем… Читать далее »

AWS: 502 ошибка на Application Load balancer

10 августа 2018
 

 Имеется ALB, на который постоянно срабатывает Alertmanager с ошибкой 502: В CloudWatch видно, что ошибка возникает спорадически, и только один раз: При этом в логах NGINX никаких ошибок нет Первым делом — включаем логи ALB: Не то что бы они чем-то реально помогли — но по крайне мере теперь можно увидеть ошибку «вживую» : 52.***.***.142… Читать далее »