Monthly Archives: September 2018

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

27 September 2018
 

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

Jenkins: Allure reports plugin в Scripted pipeline

26 September 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’)… Read More »

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

25 September 2018
 

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

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

21 September 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: ‘Test’,… Read More »

NGINX: gzip и ETag weak validation

20 September 2018
 

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

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

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

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

13 September 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… Read More »

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

12 September 2018
 

 В Chrome/Chromium версии 69 появился новый дизайн интерфейса: Новый дизайн на мой вкус – ужасен. Что бы вернуть старый – переходим в chrome://flags/#top-chrome-md, и в UI Layout for the browser’s top chrome выбираем Normal (ага – “нормальный”, а не вот это всё “Material Design”): Перезапускаем браузер: А что бы после смены интерфейса убрать белую окантовку табов –… Read More »

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

11 September 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’\”)”} И в самом деле –… Read More »

Ansible: with_fileglob – копирование нескольких шаблонов из директории

10 September 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 }}, а с… Read More »