Skip to content

Latest commit

 

History

History

09-ci-04-jenkins

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Домашнее задание к занятию 10 «Jenkins»

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

  1. Создать два VM: для jenkins-master и jenkins-agent.
  2. Установить Jenkins при помощи playbook.
  3. Запустить и проверить работоспособность.
  4. Сделать первоначальную настройку.

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

  1. Сделать Freestyle Job, который будет запускать molecule test из любого вашего репозитория с ролью.
  2. Сделать Declarative Pipeline Job, который будет запускать molecule test из любого вашего репозитория с ролью.
  3. Перенести Declarative Pipeline в репозиторий в файл Jenkinsfile.
  4. Создать Multibranch Pipeline на запуск Jenkinsfile из репозитория.
  5. Создать Scripted Pipeline, наполнить его скриптом из pipeline.
  6. Внести необходимые изменения, чтобы Pipeline запускал ansible-playbook без флагов --check --diff, если не установлен параметр при запуске джобы (prod_run = True). По умолчанию параметр имеет значение False и запускает прогон с флагами --check --diff.
  7. Проверить работоспособность, исправить ошибки, исправленный Pipeline вложить в репозиторий в файл ScriptedJenkinsfile.
  8. Отправить ссылку на репозиторий с ролью и Declarative Pipeline и Scripted Pipeline.

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

  1. Создать скрипт на groovy, который будет собирать все Job, завершившиеся хотя бы раз неуспешно. Добавить скрипт в репозиторий с решением и названием AllJobFailure.groovy.
  2. Создать Scripted Pipeline так, чтобы он мог сначала запустить через Yandex Cloud CLI необходимое количество инстансов, прописать их в инвентори плейбука и после этого запускать плейбук. Мы должны при нажатии кнопки получить готовую к использованию систему.

Решение

Переписал часть playbook, т.к. чтобы отработала команда molecule test необходимо установить

pip install molecule ansible-lint yamllint podman molecule-podman molecule-docker

Но моя роль работает с последними версиями python, ansible, ansible-lint...а не с теми, которые устанавливаются в playbook домашки, поэтому, если будете тестировать ручками, команды все запустятся, но завершатся неуспешно из-за непрохождения линтеров и т.п. Не стал доводить и это до ума, т.к. смысл задачи в другом, и так борьба со многими проблемами отняла много времени. Но проблем не составит установить нужные версии, если потребуется.

Ссылки: