Я запускаю докер Jenkins вместе с воздушным потоком на моем локальном компьютере. Задача воздушного потока, предназначенная для запуска уже созданного задания Jenkins с помощью JenkinsJobTriggerOperator, завершается ошибкой без включения крошки. JenkinsJobTriggerOperator, похоже, пытается неявно получить крошку и терпит неудачу.
Возможность вызвать указанную работу от местных, поставив крошку. Я проверил связь между контейнером воздушного потока и контейнером Jenkins. Мне также удалось запустить задание, ударив по работнику воздушного потока. Изменена конфигурация подключения Jenkins через API воздушного потока. Не повезло.
job_trigger_task = JenkinsJobTriggerOperator(
start_date=days_ago(1),
task_id="job_trigger_task",
job_name="my_jenkins_job",
parameters={'token':'xxxxxxxx',
'param_a':145754,
'param_b':'abc',
'param_c':'a12423'},
# Preconfigered connection
jenkins_connection_id="local_jenkins"
)
Журналы воздушного потока ниже:
{jenkins_job_trigger_operator.py:210} INFO - Triggering the job my_jenkins_job on the jenkins : local_jenkins with the parameters : {'param_a':145754, 'param_b':'abc','param_c':'a12423'}
{logging_mixin.py:95} INFO - {base_hook.py:83} INFO - Using connection to: id: local_jenkins. Host: jenkins_webserver, Port: 8080, Schema: None, Login: "myjenkinsuser", Password: XXXXXXXX, extra: {}
{jenkins_hook.py:44} INFO - Trying to connect to http://jenkins_webserver:8080
{models.py:1788} ERROR - Error in request. Possibly authentication failed [403]: No valid crumb was included in the request
Примечание. jenkins_webserver - это имя контейнера Jenkins.
Я пробовал несколько вариантов host_name при настройке соединения, например:
Хост: local_ip Хост: localhost Хост: jenkins_container_name Хост: IP-адрес контейнера Jenkins
В моем развертывании Jenkins включена защита CSRF. Отключение тоже не помогло.