Назад | Перейти на главную страницу

Как я могу программно изменить конфигурацию задания jenkins без перезапуска?

Задания Jenkins имеют файлы config.xml, в которых хранится конфигурация этого задания.

У меня есть задание «диспетчер заданий», которое изменяет конфигурацию других заданий, но я не могу заставить его подтвердить новую конфигурацию без перезапуска Jenkins.

Инструмент командной строки jenkins-cli.jar, как ни странно, не имеет опции для этого действия.

Это является можно редактировать конфигурацию через веб-интерфейс и сохранять / подтверждать это без перезапуска, поэтому не похоже, что это будет техническая невозможность.

Лучше всего я пытался публиковать сообщения по тому же адресу, что и веб-интерфейс.

wget --post-file=config.xml --user=joe.shmoe --password=secret01 \
     --no-check-certificate                                      \
     https://jenkins.company.com/job/myProject/config.xml

... но я получаю 403, несмотря на использование действительных учетных данных (копия вставлена, чтобы не было опечаток)

У кого-нибудь есть идеи или что-то простое, что мне не хватает?

Оказывается, критически важной информацией является опция wget "--auth-no-challenge", которая, по-видимому, предназначена для неясных конфигураций веб-серверов, таких как Jenkins, которые не соответствуют ожидаемому протоколу:

wget --auth-no-challenge --user=joe.shmoe --password=secret  \
     --post-file=config.xml --no-check-certificate           \
     https://jenkins.company.com/job/myProject/config.xml

Я предпочитаю локон ....

curl "http://localhost:18080/jenkins/job/npm-package-aaa/config.xml" -si --data-binary "$XML" -H "Content-Type: text/xml"