Skip to content

Latest commit

 

History

History
78 lines (70 loc) · 4.13 KB

09-ci-03-jenkins.md

File metadata and controls

78 lines (70 loc) · 4.13 KB

Домашнее задание к занятию "09.03 Jenkins"

Подготовка к выполнению

  1. Установить jenkins по любой из инструкций
version: '3.8'
services:
  jenkins:
    image: jenkins/jenkins:latest-jdk11
    privileged: true
    user: root
    ports:
      - 8080:8080
      - 50000:50000
    container_name: jenkins
    volumes:
      - $HOME/jenkins_compose/jenkins_configuration:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
  1. Запустить и проверить работоспособность
$ docker-compose up -d
$ docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
jenkins             "/sbin/tini -- /usr/…"   jenkins             running             0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::8080->8080/tcp, :::50000->50000/tcp
$ docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
f27d88xxxxxxxxxxxxxxxxxxxx4e2e75
  1. Сделать первоначальную настройку
  2. Настроить под свои нужды
  3. Поднять отдельный cloud
  4. Для динамических агентов можно использовать образ
  5. Обязательный параметр: поставить label для динамических агентов: ansible_docker
  6. Сделать форк репозитория с playbook

Основная часть

  1. Сделать Freestyle Job, который будет запускать ansible-playbook из форка репозитория
PLAY RECAP *********************************************************************
localhost                  : ok=5    changed=4    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   

Finished: SUCCESS
  1. Сделать Declarative Pipeline, который будет выкачивать репозиторий с плейбукой и запускать её
PLAY RECAP *********************************************************************
localhost                  : ok=5    changed=4    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   

[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
  1. Перенести Declarative Pipeline в репозиторий в файл Jenkinsfile
  2. Перенастроить Job на использование Jenkinsfile из репозитория
  3. Создать Scripted Pipeline, наполнить его скриптом из pipeline
  4. Заменить credentialsId на свой собственный
  5. Проверить работоспособность, исправить ошибки, исправленный Pipeline вложить в репозитрий в файл ScriptedJenkinsfile
  6. Отправить ссылку на репозиторий в ответе

Необязательная часть

  1. Создать скрипт на groovy, который будет собирать все Job, которые завершились хотя бы раз неуспешно. Добавить скрипт в репозиторий с решеним с названием AllJobFailure.groovy
  2. Установить customtools plugin
  3. Поднять инстанс с локальным nexus, выложить туда в анонимный доступ .tar.gz с ansible версии 2.9.x
  4. Создать джобу, которая будет использовать ansible из customtool
  5. Джоба должна просто исполнять команду ansible --version, в ответ прислать лог исполнения джобы