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

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

Git: сканирование репозиториев с Gitleaks и запуск из Jenkins

12 августа 2021
 

 Утечка конфиденциальных данных, таких как пароли или RSA-ключи в репозиторий Github, даже в приватный – очень неприятное событие, и хотелось бы иметь представление о том, кто и что пушит в репозитории нашей Github-организации. Утилиты сканирования Для проверки репозиториев имеется достаточно много утилит: Gittyleaks – выглядит неплохо, но последнее обновление репозитория 2 года тому Repo Supervisor… Читать далее »

Jenkins: деплой Redis и Helm subchart values

29 октября 2020
 

 Задача – содать Jenkins джобу, которая будет деплоить Redis на Dev/Stage/Prod кластера. В посте Redis: Master-Slave репликация и запуск в Kubernetes сделали это вручную, посмотрели что и как вообще запускается и работает – теперь надо автоматизировать. Главный вопрос – как вообще деплоить и передавать параметры? Хочется использовать уже готовый чарт, но в тоже время –… Читать далее »

Helm: пошаговое создание чарта и деплоймента из Jenkins

14 мая 2020
 

 Продолжаем трогать Kubernetes и Helm. Сам Хельм в общих чертах рассмотрели в посте Helm: Kubernetes package manager — обзор, начало работы – теперь надо прикрутить его в Jenkins. И не просто прикрутить его вызов – а создать чарт, потому что сейчас приложение деплоится через “голые” манифест-файлы Kubernetes, в котором sed проставляет теги Докер-образа и значения переменных… Читать далее »

Jenkins: запуск PHPUnit из Codeception по Pull Reguest в Github и Allure-репорты

6 июня 2019
 

 Задача – запускать PHPUnit для тестов кода бекенда. Сам PHPUnit будет запускаться из Codeception. Задача в Jenkins должна триггериться из Github, при создании Pull Request – используем Github Pull-Request Builder плагин. Для просмотра отчётов о тестах – используем Allure. Jenkins запущен в 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’)… Читать далее »

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: получение и обновление сертификатов для сайтов роль… Читать далее »