Package: pyjej
README.mdЭтот репозиторий содержит код для взаимодействия с Jenkins с использованием библиотекиinvoke. Он предоставляет функциональность для экспорта всех заданий из Jenkins и создания/обновления конкретных заданий.Предварительные требованияPython 3.8 или вышеБиблиотекаinvokeБиблиотекаpyyamlНачало работыКлонируйте этот репозиторий на свой локальный компьютер.Установите необходимые зависимости, выполнив следующую команду:poetry installНастройте информацию о сервере Jenkins в файлеinventory.yml. Добавьте необходимую информацию о серверах Jenkins, с которыми вы хотите взаимодействовать.ПримерВот пример использования задач:Экспорта указанной задачи с сервера Jenkins в XML файл:python -m pyjej job.export -s мой_сервер_jenkins -j моё_заданиеЭкспорт всех заданий с сервера Jenkins в XML файлы:python -m pyjej job.export-all -s мой_сервер_jenkinsСоздание задания на сервере Jenkins из XML файла:python -m pyjej job.create -s мой_сервер_jenkins -j моё_задание -f входная_папкаОбновление задания на сервере Jenkins из XML файла:python -m pyjej job.update -s мой_сервер_jenkins -j моё_задание -f входная_папкаЭкспорт всех плагинов в файлplugins.txt:python -m pyjej plugins.export-all -s мой_сервер_jenkinsУстановка указного плагина в Jenkins:python -m pyjej plugins.install -s мой_сервер_jenkins -p имя_плагинаУстановить все плагины Jenkins из указного файлаplugins.txtна указанный сервер:python -m pyjej plugins.all-install -s my_server -f ./data/komtek/plugins.txtСкачать настройки из плагина Jenkins Configuration as Code:python -m pyjej jcasc.export -s мой_сервер_jenkinsУбедитесь, что заменяетемой_сервер_jenkinsна фактическое имя сервера, определенное в файлеinventory.yml,моё_заданиена желаемое имя задания ивходная_папкана папку, содержащую файл XML для задания.Использованиеtasks.pyВ этом файле содержатся основные задачи для взаимодействия с Jenkins.Задачаjob.exportЭта задача экспортирует указанную задачу с указанного сервера Jenkins и сохраняет её в виде файла XML.Использование:python-mpyjejjob.export--server<имя_сервера>--jobname<имя_задания><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.yml.<имя_задания>: Имя задания для экспорта.Задачаjob.export-allЭта задача экспортирует все задания с указанного сервера Jenkins и сохраняет их в виде файлов XML.Использование:python-mpyjejjob.export-all--server<имя_сервера><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.yml.Задачаjob.createЭта задача создает конкретное задание на сервере Jenkins с использованием файла XML.Использование:python-mpyjejjob.create--server<имя_сервера>--jobname<имя_задания>--from_server<входная_папка><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.yml.<имя_задания>: Имя задания для создания.<входная_папка>: Папка, содержащая файл XML для задания.Задачаjob.updateЭта задача обновляет конкретное задание на сервере Jenkins с использованием файла XML.Использование:python-mpyjejjob.update--server<имя_сервера>--jobname<имя_задания>--from_server<входная_папка><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.yml.<имя_задания>: Имя задания для обновления.<входная_папка>: Папка, содержащая файл XML для задания.Задачаplugins.export-allЭта задача позволяет получить список всех установленных плагинов на указанном сервере Jenkins.Использование:python-mpyjejplugins.export-all--server<имя_сервера><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.yml.Результат выполнения команды будет выведен на экран. Если у команды не было ошибок, список плагинов будет сохранен в файлеdata/<имя_сервера>/plains.txt.Задачаplugins.installЭта задача позволяет установить указанный плагин на сервере Jenkins.Использование:python-mpyjejplugins.install--server<имя_сервера>--plugin<имя_плагина><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.yml.<имя_плагина>: Имя плагина, который нужно установить.Результат выполнения команды будет выведен на экран.Задачаplugins.all-installЭта задача позволяет установить все плагин на сервере Jenkins из файлаplugins.txt.Использование:python-mpyjejplugins.all-install--server<имя_сервера>--from_file<путь_к_файлу><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.ymlна который установить плагины.<имя_плагина>: Путь к файлуplugins.txtРезультат выполнения команды будет выведен на экран.Задачаjcasc.exportЭта задача позволяет скачать конфигурации Jenkins которые формируются через плагинJenkins Configuration as Code (a.k.a. JCasC) Plugin.https://github.com/jenkinsci/configuration-as-code-pluginИспользование:python-mpyjejjcasc.export--server<имя_сервера><имя_сервера>: Имя сервера Jenkins, определенное в файлеinventory.yml.Результат выполнения команды будет выведен на экран и записан в файлdata/<имя_сервера>/jenkins.yaml.Пример создания файла inventory.ymlФайлinventory.ymlиспользуется для настройки подключения к серверам Jenkins в коде. В этой главе мы предоставим пример создания файлаinventory.ymlс фиктивными значениями.Пример содержимого файлаinventory.yml:my_server:JENKINS_USER_ID:"user"JENKINS_API_TOKEN:"111111111111111111111111111"PATH_JENKINS_CLI_JAR:"jenkins-cli.jar"JENKINS_URL:"111.111.111.111:8080"BASE_COMMAND_CLI:"java-jar{PATH_JENKINS_CLI_JAR}-shttp://{JENKINS_USER_ID}:{JENKINS_API_TOKEN}@{JENKINS_URL}"Для каждого сервера указаны следующие параметры:JENKINS_USER_ID: Идентификатор пользователя Jenkins для аутентификации.JENKINS_API_TOKEN: API-токен пользователя Jenkins для аутентификации.PATH_JENKINS_CLI_JAR: Путь к файлуjenkins-cli.jarна вашей системе.JENKINS_URL: URL-адрес сервера Jenkins.BASE_COMMAND_CLI: Базовая команда для выполнения операций через командную строку Jenkins CLI.Убедитесь, что заменяете фиктивные значения реальными данными серверов Jenkins, к которым вы хотите подключиться.Создайте файлinventory.ymlв корневой папке проекта и добавьте соответствующую информацию для ваших серверов Jenkins. Этот файл будет использоваться кодом для установления связи с серверами Jenkins.В следующей главе мы рассмотрим пример использования задач изtasks.pyдля взаимодействия с серверами Jenkins, настроенными в файлеinventory.yml.Восстановление конфигураций Jenkins через плагинConfiguration as CodeПереместить файлjenkins.yamlв Jenkins по пути/var/jenkins_home/Перейти на URL:https://ci.pkzdrav.ru/configuration-as-code/НажатьApply new configuration