Архив рубрики: Groovy

Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform.

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’)… Читать далее »

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

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

Jenkins: Credentials Binding Plugin и использование нескольких Secret file в Jenkins pipeline

3 июля 2018
 

 Задача — запустить ansible-playbook, которому необходимо передать RSA ключ для EC2 и файл с паролем для ansible-vault, т.к. в задачах плейбука используются зашифрованные переменные. Для этого используем Jenkins credentials, где сохраним два файла, а потом через Credentials Binding Plugin — передадим их в контейнер с задачей. Secret file в Credentials Сначала добавляем файлы в Jenkins. Переходим… Читать далее »

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

25 апреля 2018
 

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

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

29 января 2018
 

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

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

18 октября 2017
 

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

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

14 октября 2017
 

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

Jenkins: Pipeline, Groovy, Ansible и VM provisioning

22 сентября 2017
 

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

Azure: provisioning с Resource Manager, Jenkins и Groovy

19 сентября 2017
 

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