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

Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.

What is: SAML – обзор, структура и трассировка запросов на примере Jenkins и Okta SAML SSO

2 ноября 2019
 

 В процессе настройки SAML SSO для Jenkins столкнулся с проблемой, при которой не передаются часть атрибутов из Okta в Jenkins. Собственно, в этом посте попробуем разобраться с тем, что такое SAML вообще, достаточно кратко рассмотрим его архитектуру и компонены, а затем выполним трассировку запросов между Okta и Jenkins, что бы посмотреть какие данные передаются. Т.к.… Читать далее »

Jenkins: SAML, Okta, группы пользователей и Role-Based Security

15 октября 2019
 

 В продолжение поста Jenkins: SAML Authentication через Okta SSO и группы пользователей – настройка Role-Based Security авторизации в Jenkins, используя группы Okta. Настройка Role-Based Security плагина Устанавливаем плагин Role-based Authorization Strategy: Переходим в Configure Global Security, переключаем авторизацию на Role-Based Strategy: Переходим в Manage and Assign Roles: Создание ролей – Global roles Роли делятся на… Читать далее »

Jenkins: SAML Authentication через Okta SSO и группы пользователей

11 октября 2019
 

 SAML – Secure Assertion Markup Language. – используется для распределённой авторизации (federated authentication), когда сервис, к которому требуется получить доступ (Service Provider), обращается к другому сервису (Identity Provider) для того, что бы выполнить эту авторизацию. См. документацию тут>>>. Service Provider (SP): система, в которой требуется аутентифиция, в нашем случае это будет Jenkins Identity Provider (IdP): система,… Читать далее »

Jenkins: деплой Docker Compose из Ansible и ECR авторизация

26 сентября 2019
 

 В продолжение поста AWS: создание Elastic Container Registry и деплой из Jenkins, в котором создали джобу для билда Docker-образов и их пуша в AWS ECR – теперь надо создать джобу в Jenkins для деплоя и запуска одного Docker-контейнера. Запускать будем через Docker Compose, в котором Ansible будет задавать требуемую версию из параметров Jenkins-джобы. Для того, что… Читать далее »

AWS: создание Elastic Container Registry и деплой из Jenkins

23 сентября 2019
 

 Задача: создать AWS ECR репозиторий для образов проекта, и добавить джобу в Jenkins, которая будет собирать образы, и загружать их в этот репозиторий. Продолжение – в посте Jenkins: деплой Docker Compose из Ansible и ECR авторизация. AWS ECR Переходим в ECR, жмём Get Started, выбираем имя нового репозитория: Оставляем по умолчанию Mutable, т.е. можно будет… Читать далее »

NGINX: мульти-бранч деплой приложения с использованием NGINX map и HTTP Headers

26 июня 2019
 

 Имеется стандартный LEMP – NGINX, PHP-FPM. Приложение – Yii-фреймворк, который деплоится из Jenkins Ansible-ролью с помощью модуля synchronize на хосты в каталог /data/projects/prjectname/frontend/web, который является root в конфиге виртуалхоста NGINX. Задача: создать возможность деплоя из Jenkins приложения из разных бранчей – на хосте одновременно должны быть задеплоены разные версии приложения, доступ к которым будет определяться… Читать далее »

SonarQube: ошибка “SCM provider autodetection failed”

19 июня 2019
 

 Имеется свежая установка SonarQube, см пост SonarQube: запуск в Docker и вызов из Jenkins Pipeline. Проблема Но в дашборде проекта постоянно висит сообщение вида: SCM provider autodetection failed. Please use “sonar.scm.provider” to define SCM of your project, or disable the SCM Sensor in the project settings. И оно же выводится в логах билда в Jenkins.… Читать далее »

SonarQube: запуск в Docker и вызов из Jenkins Pipeline

18 июня 2019
 

 Задача – запустить SonarQube, что бы Jenkins выполнял проверку кода. Jenkins работает в Docker, билды запускаются тоже Docker. Основная проблема, которая возникла во время запуска SonarQube из Docker Compose, это то, что контейнер с SonarQube внутри себя запускает процесс с Elastisearch (что, вроде как, нарушает главный принцип использования конейнеров – 1 сервис на один контейнер).… Читать далее »

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

6 июня 2019
 

 Задача – запускать PHPUnit для тестов кода бекенда. Сам PHPUnit будет запускаться из Codeception. Задача в Jenkins должна триггериться из Github, при создании Pull Request – используем Github Pull-Request Builder плагин. Для просмотра отчётов о тестах – используем Allure. Jenkins запущен в Docker-контейнере, и все процессы будет запускать в контейнерах. Проверка тестов Что бы получить… Читать далее »

AWS: ротация ключей IAM пользователей, EC2 IAM Roles и Jenkins

30 мая 2019
 

 Сегодня просматривал IAM-пользователей в AWS, и вспомнил, что с точки зрения безопасности иногда полезно менять ключи доступа: Но тут встал вопрос: хорошо, задать ключам expire, и периодически их обновлять в AWS IAM – это одно… Но эти ключи используются в куче скриптов, которые запускаются в Jenkins-джобах. Например – провижен бекенда выполняется из Ansible и модуля… Читать далее »