Архив метки: Jenkins

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: уведомление в Slack из Jenkins Scripted Pipeline

25 июля 2018
 

 Имеется Jenkins-job, из которой необходимо отправлять уведомления по завершению билда. В Jenkins для этого имеется Slack Notification, который и применим. Хороший пост по теме – тут>>>. Устанавливаем его: Настраиваем Slack – переходим на https://setevoy.slack.com/apps/new/A0F7VRFKN-jenkins-ci (меняем setevoy на ваш URL, само собой), и добавляем Jenkins: И следуем инструкции: Настройка Slack Notification Переходим в Jenkins > Global configuration, внизу настраиваем Slack… Читать далее »

Jenkins: Simple Theme Plugin – настройка внешнего вида UI

5 июля 2018
 

 Jenkins – прекрасная система, но вот внешний вид – просто “привет из 90-х”. К счастью – Jenkins поддерживает самую различную кастомизацию, в т.ч. – возможность настройки своего интерфейса. Для этого можно установить плагин Simple Theme Plugin: Далее – в Configure System > Theme либо настроить вид самому, либо использовать готовый набор, например – jenkins-material-theme. Выбираем цветовую схему, например… Читать далее »

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. Переходим… Читать далее »

Ansible: jenkins_plugin Connection refused и Cannot get CSRF

30 июня 2018
 

 Для Ansible имеется плагин, позволяющий выполнить установку плагинов для Jenkins jenkins_plugin_module. Достаточно интересный модуль, ниже пример его использования и решение ошибки “Connection refused“. При попытке установить плагин с его помощью: … – name: Start Jenkins service   service:     name=jenkins     state=restarted     enabled=yes – name: Install Jenkins plugins jenkins_plugin: name: “{{ item }}” url_username: “{{ jenkins_ui_admin_user }}” url_password: “{{ jenkins_ui_admin_pass }}” state: present… Читать далее »

macOS: launchctl – запуск/остановка сервисов на примере Jenkins slave агента

20 июня 2018
 

 Искал аналог systemctl для systemd или service для Upstart, но под macOS, что бы можно было запускать сервис из консоли, нагуглился такой сервис как launchctl, который является частью launchd. Для примера возьмём plist-файл из комментария к посту Jenkins: macOS slave агент через Java Web Start. Другие примеры plist-файлов есть тут>>>., описание ключей – на странице… Читать далее »

Jenkins: macOS slave агент через Java Web Start

15 мая 2018
 

 В дополнение к посту Jenkins: запуск Jenkins в Docker и подключение SSH Slave – пример добавления агента на macOS, используя Java Web Start. Добавляем пользователя: Проверяем наличие Java: [simterm] MacMini:~ user$ java -version java version “1.8.0_101” Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode) [/simterm] Переходим в Jenkins > Manage… Читать далее »

Jenkins: запуск Jenkins в Docker и подключение SSH Slave

8 мая 2018
 

 Имеется две EC2, на одной будет запущен Jenkins, который будет мастером, второй EC2 надо настроить и подключить как slave для Jenkins. Для этого – на второй машине потребуется Java, настроенная SSH авторизация по ключам, и отдельный пользователь. На Jenkins потребуется SSH Slaves Plugin. Начинаем со слейва. Настройка Jenkins Unix slave Установка Java Подключаемся на слейв, устанавливаем… Читать далее »

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” } … В результате получим… Читать далее »

Docker: save и load – скопировать образ между хостами

22 ноября 2017
 

 Имеется Docker контейнер с Jenkins на EC2 в Китае, необходимо обновить версию Jenkins. Что бы не тянуть весь образ напрямую в Китай (скорость иногда падала до 3-4 кб/с) – можно скачать его на рабочую машину в Киеве, а потом скопировать архив в Китай с помощью scp. Используем docker save для создания архива с образом и docker… Читать далее »