Архив за месяц: Сентябрь 2018

Nexus: установка, запуск, деплой в репозиторий + NGINX и SSL

27 сентября 2018
 

  У Android-команды поломался «деплой» через отправку письма с вложением на Gmail (было сделано ещё до меня), и появилась необходимость быстренько «накостылить» репозиторий. Планировался он давно, но сейчас будет без всякой автоматизации — просто руками поднять, запустить, что бы они могли деплоить. Использовать будем free-версию Sonatype Nexus, запускать будем на AWS EC2, из Docker-образа, бекенд… Читать далее »

Jenkins: Allure reports plugin в Scripted pipeline

26 сентября 2018
 

 Allure — фреймворк для создания репортов о результатах выполнения тестов. Для Jenkins имеется плагин allure-jenkins-plugin, который сегодня и будем подключать в Scripted Pipeline Jenkins-а. Документация тут>>> и тут>>>. Устанавливаем плагин: Переходим в http://jenkinsurl/configureTools/, настраиваем Allure Commandline: Переходим в http://jenkinsurl/pipeline-syntax/, и генерируем скрипт: В результате весь скрипт наших автотестов выглядит сейчас так: #!/usr/bin/env groovy node { stage(‘Run tests’) { dir (‘ciscripts’)… Читать далее »

Python: скрипт добавления комментария в Jira из Jenkins

25 сентября 2018
 

 В продолжение поста Jenkins: добавление комментария в Jira-тикет после билда — напишем свой костыль, который будет добавлять комментарии в Jira-тикеты. Скрипт будет парсить заголовок коммита, в котором будет указан Jira-тикет, а потом через Jira API добавлять комментарий. Писать будем на Python — полгода не писал на нём, наконец-то появился повод. Парсинг git-коммита Для того, что бы… Читать далее »

Jenkins: добавление комментария в Jira-тикет после билда

21 сентября 2018
 

  Задача — добавлять комментарий в Jira-тикет после выполнения Jenkins-билда в scripted pipeline job. Используем JIRA Pipeline Steps. Докмументация и примеры — тут>>>. Устанавливаем его — Manage Jenkins > Manage Plugins: Настраиваем доступ к Jira — переходим в Manage Jenkins > Configure system, в JIRA Steps добавляем сайт: Добавляем тестовую задачу: node { echo «Run job» jiraAddComment idOrKey: ‘BMEDIOS-198’, comment:… Читать далее »

NGINX: gzip и ETag weak validation

20 сентября 2018
 

  ETag Собственно сам ETag является идентификатором ресурса, запрошенного клиентом (браузером): если изменений нет, то etag не меняется, если изменения были — изменится и его etag. См. тут>>>, тут>>> и тут>>>. Пример его работы — проверяем URL: Теперь добавляем —header If-None-Match, в котором передаём значение из полученного ETag — и NGINX вернёт нам код 304 Not Modified: В… Читать далее »

Linux: не срабатывает crontab

18 сентября 2018
 

  Добавлены задачи для cron, но они не выполняются, и в логах ничего нет. Файлы добавлены в файле /var/spool/cron/crontabs/admin: # Puppet Name: proj1/trending/daily 0 21 * * * cd /data/dme && php yii proj1/trending/daily # Puppet Name: proj1/cron/go * * * * * cd /data/dme && php yii proj2/cron/go >> /var/log/dme-cron/proj1-cron.log 2>&1 # Puppet Name: proj1/sitemap/last-posts */5… Читать далее »

Linux: The file or folder udi=/org/kde/solid/udev/sys/devices/***/usb1/1-2 does not exist.

13 сентября 2018
 

 Проблема, судя по гуглу, не специфична для Arch Linux, решение должно подойти для любой системы. Подключаем телефон: Sep 12 11:44:57 setevoy-arch-work kernel: usb 1-2: new high-speed USB device number 12 using xhci_hcd Sep 12 11:44:57 setevoy-arch-work kernel: usb 1-2: New USB device found, idVendor=0bb4, idProduct=0c93, bcdDevice= 2.28 Sep 12 11:44:57 setevoy-arch-work kernel: usb 1-2: New… Читать далее »

Chrome: вернуть нормальный вид — отключить Material design

12 сентября 2018
 

  UPD 14.12.2018 Всё — этот метод больше не работает: в версии 71 флаги были удалены. Обсуждение на Reddit. Порадовал комментарий: I hate Material design on desktop, why you mongoloids forcing me to use it? What is wrong with you? В Chrome/Chromium версии 69 появился новый дизайн интерфейса: Новый дизайн на мой вкус — ужасен.… Читать далее »

MySQL: Exception message: (1049, \»Unknown database ‘mysql’\»)

11 сентября 2018
 

 Баловался с MySQL, и перед переустановкой сервера удалил директорию /var/lib/mysql (намеренно). После этого переустановил MySQL: Но при попытке выполнить действие — Ansible сообщает: FAILED! => {«changed»: false, «msg»: «unable to connect to database, check login_user and login_password are correct or /root/.my.cnf has the credentials. Exception message: (1049, \»Unknown database ‘mysql’\»)»} И в самом деле —… Читать далее »

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 }}, а с… Читать далее »