Основные команды Jenkins CLI для управления задачами
Управляйте задачами Jenkins из командной строки с примерами create-job, copy-job, delete-job, build, get-job и update-job.
Основные команды Jenkins CLI для управления задачами
Jenkins CLI помогает управлять задачами, когда веб-интерфейс слишком медленный для повторяющейся работы. Если вам нужно создавать задачи из шаблонов, запускать сборки или обновлять XML-конфигурацию в скриптах, CLI предоставляет прямой путь.
Это руководство сосредоточено на командах управления задачами: list-jobs, get-job, create-job, copy-job, update-job, delete-job и build.
Настройка Jenkins CLI
Перед выполнением любых команд необходимо установить безопасное соединение с вашим мастером Jenkins. Это включает загрузку клиента CLI и обеспечение правильной аутентификации.
1. Загрузка jenkins-cli.jar
Клиент CLI обычно находится непосредственно на вашем сервере Jenkins по определенному адресу. Вы можете загрузить его с помощью wget или curl:
wget http://your-jenkins-url:8080/jnlpJars/jenkins-cli.jar
# ИЛИ с помощью curl
curl -O http://your-jenkins-url:8080/jnlpJars/jenkins-cli.jar
2. Методы аутентификации
Подключения Jenkins CLI требуют аутентификации. Наиболее безопасный и рекомендуемый метод — использование API-токена вместо обычного пароля пользователя.
Чтобы сгенерировать API-токен, перейдите в Настройки пользователя > Настройки > API-токен в веб-интерфейсе Jenkins.
Все последующие команды будут требовать флаги аутентификации, обычно с использованием флагов -s (URL сервера) и -auth (учетные данные аутентификации):
java -jar jenkins-cli.jar -s http://your-jenkins-url:8080 -auth USERNAME:API_TOKEN <команда>
Совет: Для безопасности храните ваш API-токен в защищенной переменной окружения или используйте метод аутентификации с SSH-ключом, если он настроен, вместо того чтобы вводить его напрямую в скрипты.
Основные команды для поиска задач
Перед изменением задач часто необходимо перечислить существующие задачи и получить их конфигурации.
Перечисление всех задач: list-jobs
Эта команда отображает имена всех задач, настроенных на мастере Jenkins.
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH list-jobs
Получение конфигурации задачи: get-job
Задачи Jenkins определяются XML-файлами конфигурации. Команда get-job позволяет получить это XML-определение, что необходимо для создания новых задач на основе шаблонов.
# Получить конфигурацию для 'my-template-job' и сохранить в файл
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH get-job my-template-job > template-config.xml
Основные команды управления задачами
Эти команды обрабатывают основные операции жизненного цикла задач Jenkins.
1. Создание новой задачи: create-job
Команда create-job требует имя новой задачи и XML-файл конфигурации, определяющий ее параметры, шаги сборки и триггеры.
Предварительные требования: Сначала у вас должен быть действительный XML-файл конфигурации (например, new-config.xml), обычно полученный путем изменения шаблона, извлеченного с помощью get-job.
# Пример: Создать новую задачу с именем 'project-feature-branch' с использованием локального XML-файла
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH create-job project-feature-branch < new-config.xml
2. Копирование существующей задачи: copy-job
Это часто самый быстрый способ создать новую задачу, используя существующую задачу в качестве шаблона и применяя новое имя. Эта команда эффективно дублирует конфигурацию исходной задачи.
# Синтаксис: copy-job SOURCE_JOB_NAME DESTINATION_JOB_NAME
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH copy-job original-pipeline new-dev-pipeline
3. Включение и отключение задач: enable-job и disable-job
Эти команды важны для обслуживания, временных остановок или административного контроля, предотвращая или разрешая запуск сборок.
# Команда для остановки дальнейших запланированных или запущенных сборок для обслуживания
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH disable-job legacy-project-build
# Команда для повторной активации задачи
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH enable-job legacy-project-build
4. Удаление задачи: delete-job
Эта команда навсегда удаляет задачу из экземпляра Jenkins, включая ее историю сборок и конфигурацию. Используйте эту команду с осторожностью.
# Окончательное удаление задачи
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH delete-job obsolete-test-job
Предупреждение: Команда
delete-jobвыполняется немедленно без дополнительного подтверждения в среде CLI. Убедитесь, что ваши скрипты включают правильные шаги проверки перед выполнением этой команды.
Запуск и мониторинг сборок
Помимо управления конфигурацией, CLI часто используется для запуска сборок, особенно тех, которые требуют определенных параметров.
Запуск сборки: build
Команда build запускает новую сборку для указанной задачи. Если задача параметризована, вы можете передать аргументы напрямую с помощью флага -p.
# Запустить простую, непараметризованную сборку
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build nightly-deploy
# Запустить параметризованную задачу, передавая параметры
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build integration-test -p TARGET_ENV=staging -p BRANCH_NAME=hotfix-123
Примечание: Если вы используете флаг
-sсbuild, CLI будет ждать завершения сборки и сообщит код выхода. В противном случае команда возвращается сразу после постановки сборки в очередь.
Просмотр статуса сборки: get-job и console
Хотя CLI не предлагает потоковую передачу в реальном времени, сравнимую с веб-интерфейсом, вы можете проверить статус задачи и получить вывод консоли.
Чтобы просмотреть вывод консоли для определенного номера сборки:
# Получить вывод консоли для сборки #55 задачи 'my-job'
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH console my-job 55
Лучшие практики для написания скриптов CLI
Эффективное использование Jenkins CLI требует принятия определенных лучших практик для стабильности и безопасности:
1. Скриптинг и автоматизация
CLI наиболее полезен в shell-скриптах. Используйте get-job, тщательно изменяйте полученный XML, а затем передавайте измененную конфигурацию обратно с помощью create-job или update-job.
Пример рабочего процесса (Копирование, изменение и создание):
- Получить шаблон:
get-job template-job > tmp.xml - Используйте
sedдля замены заполнителей (например, имя проекта, URL репозитория) вtmp.xml. - Создать новую задачу:
create-job new-job < tmp.xml
2. Обработка обновлений конфигурации
Чтобы обновить конфигурацию существующей задачи с помощью XML из стандартного ввода, используйте update-job. Это безопаснее, чем удаление и повторное создание задачи, так как сохраняет историю сборок.
# Обновить 'project-a' с использованием локально измененного файла конфигурации
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH update-job project-a < updated-config.xml
3. Обработка ошибок
Всегда проверяйте код выхода ($?) после выполнения команды CLI в ваших скриптах. Код возврата 0 указывает на успех; любой ненулевой код сигнализирует об ошибке. Это важно для надежной автоматизации и отладки.
Ключевой вывод
Jenkins CLI — это практичный инструмент для повторяющегося администрирования задач. Начните с экспорта XML задачи с помощью get-job, вносите контролируемые изменения, обновляйте задачи с помощью update-job и запускайте сборки с помощью build. Храните API-токены вне скриптов и проверяйте разрушительные команды, такие как delete-job, перед их выполнением.