Никакая действительная крошка не была включена в запрос - PullRequest
1 голос
/ 14 октября 2019

Я использую док-станцию ​​Jenkins вместе с потоком воздуха на моей локальной машине. Задание воздушного потока, предназначенное для запуска уже созданного задания Jenkins с использованием JenkinsJobTriggerOperator, завершается с ошибкой No crumb Включенная ошибка. JenkinsJobTriggerOperator, кажется, пытается неявно получить крошку и не может.

Может вызвать указанное задание из локальной системы, предоставив крошку. Я проверил связь между рабочим контейнером воздушного потока и контейнером Дженкинса. Я также успешно запустил работу, врезавшись в работника воздушного потока. Изменена конфигурация соединения 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

Я пробовал несколько вариантов дляимя_хоста при настройке соединения, например:

Хост: local_ip Хост: localhost Хост: jenkins_container_name Хост: IP-адрес контейнера Jenkins

В моем развертывании Jenkins включена защита CSRF. Отключение тоже не сработало.

1 Ответ

0 голосов
/ 16 октября 2019

Я рекомендую использовать API-токен для запуска задания вместо имени пользователя / пароля. Это не потребует крошки при использовании Jenkins 2.96 + .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...