Моя заявка
Я пытаюсь создать задание Jenkins для реализации моего конвейера CI / CD. Я использую SVN-репозиторий для контроля версий. Когда я фиксирую этот репозиторий, конфигурация задания в Jenkins должна инициироваться и вызывать один файл Ansible Playbook YML. Я настраиваю каждый этап моего конвейера, используя Ansible playbook.
Мой текущий подход
Я создал один svn-репозиторий и настроил хук post-commit в каталоге hooks. И я создал Ansible playbook. Я строю всю свою стадию конвейера, используя этот сборник пьес Ansible.
Когда я запускаю Ansible playbook вручную, он успешно работает. Но когда я создавал одно задание Дженкинса и вызывал эту пьесу с помощью задания, в разделе Ansible показывался «Красный крестик».
Шаги, которые я сделал на Дженкинс
- Создан новый проект Дженкинса в свободном стиле
- Отредактировано описание для проекта
- Выбрал «Subversion» в управлении исходным кодом и добавил URL репо SVN и учетные данные
- Проверен раздел "Опрос SCM" в триггерах сборки "
- Выбрал "Invoke Ansible Playbook" в разделе Build и добавил Url для Playbook.
На следующем рисунке показана секция invoke,
Обновление
Примечание: С установленным флажком sudo
Ошибка
Когда я пытаюсь подать заявку, ничего не отображается. Если я сохраню и снова возьму с приборной панели, он показывает "Failed". Как на следующем скриншоте,
Обновлена ошибка вывода на консоль
TASK [Gathering Facts] *********************************************************
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
to retry, use: --limit @/home/spacestudy/pipelinesite.retry
PLAY RECAP *********************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1
Обновлена попытка снятия флажка sudo
TASK [pipelinerole : login into dockerhub] *************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', error(13, 'Permission denied'))"}
to retry, use: --limit @/home/spacestudy/pipelinesite.retry
Подход прямого теста по команде Shell на EC2
Примечание:
Когда я непосредственно запускаю команду оболочки " $ ansible-playbook " на моем EC2, возникает та же ошибка. Но когда я запускаю команду оболочки " $ sudo ansible-playbook ", ошибка не появляется. Из-за этого здесь также я установил флажок "sudo". Но я становлюсь совсем другим.
Как я могу устранить неполадки, связанные с невыполнением задания, и почему я не могу подать заявку?