Category Archives: Groovy

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 »

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

23 August 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”… Read More »

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

16 August 2018
 

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

Jenkins: получить пароль из Credentials Binding Plugin

25 April 2018
 

 Задача – добавить и запушить тег после билда, используя логин:пароль репозитория, которые добавлены в Credentials Binding Plugin. Само решение достаточно костыльное, но рабочее. Главная проблема в том, что Jenkins маскирует пароль ****. Т.е. при вызове: … withCredentials([usernamePassword(credentialsId: ‘git’, usernameVariable: ‘USERNAME’, passwordVariable: ‘PASSWORD’)]) { sh “echo pass $PASSWORD” sh “echo user $USERNAME” } … В результате получим… Read More »

Ansible: миграция RTFM 2.8 – logrotate, unattended-upgrades и Let’s Encrypt для Bastion хоста

29 January 2018
 

 Прыдущая часть – AWS: миграция RTFM 2.7 – CloudFormation и Ansible – наcтройка NAT (там же ссылки на предыдущие посты). В этой части продолжим настройку Bastion хоста. Задача – добавить: роль logrotate: ротация логов NGINX (в дальнейшем логи будут сбрасываться через CloudWatch Logs агента) роль unattended-upgrades: автоапдейты системы роль Let’s Encrypt: получение и обновление сертификатов для сайтов роль… Read More »

Jenkins: миграция RTFM 2.6 – Jenkins Pipeline для Ansible

18 October 2017
 

 В одном из предыдущих постов – Jenkins: миграция RTFM 2.4 – Jenkins Pipeline для CloudFormation RTFM стека – была добавлена задача в Jenkins для создания и апдейта AWS CloudFormation стека. Следующая задача – запускать Ansbile из Jenkins для настройки серверов в стеке. Далее создадим одну Ansbile роль с установкой NGINX, потом добавим задачу в Jenkins. PEM-ключи для… Read More »

Jenkins: миграция RTFM 2.4 – Jenkins Pipeline для CloudFormation RTFM стека

14 October 2017
 

 Продолжение сетапа инфрастуктуры для блога. Решил добавить в заголовки “версию” каждого поста, в данном случае – миграция RTFM 2.4. Тут мажорная версия “2” – потому что год тому уже что-то подобное начинал делать (AWS: миграция RTFM, часть #1: ручное создание инфраструктуры – VPC, подсети, IGW, NAT GW, маршруты и EC2), а минорная “4” – четвёртый пост… Read More »

Jenkins: Pipeline, Groovy, Ansible и VM provisioning

22 September 2017
 

 Продолжение постов Ansible: пример установки NGINX и Azure: provisioning с Resource Manager, Jenkins и Groovy. Задача  – запускать провижен VM из Jenkins. Пока выполняется только установка NGINX, позже будет добавлен Prometheus. Используем Jenkins Pipeline и groovy-скрипты. Описание Используется два репозитория: один для скриптов Jenkins (переменная $BUILD_REPO_URL в скриптах ниже), второй для файлов Ansbile ($INFRA_URL), в которых описаны хосты… Read More »

Azure: provisioning с Resource Manager, Jenkins и Groovy

19 September 2017
 

 Описание сетапа развёртывания группы ресурсов Azure с одной виртуальной машиной для будущего мониторинга проекта. В этой части – создание Azure Resource Manager шаблона, настройка Jenkins и примеры Groovy скриптов. Далее – провижен NGINX и Prometheus с Ansbile. Ещё позже – Grafana. Все файлы и скрипты хранятся в Github. Подготовка Используем готовый шаблон от Azure отсюда>>>.… Read More »