У меня проблема с модулем jenkins_plugins.
В книге игр, которая извлекает образ докера jenkins (jenkins / jenkins: lts-alpine) и запускает его для установки экземпляра и его настройки, у меня есть задача, которая устанавливает список плагинов для экземпляра, а именно:
- name: Install plugins
jenkins_plugin:
owner: "{{ jenkins_process_user }}"
group: "{{ jenkins_process_group }}"
name: "{{ item }}"
state: latest
timeout: 120
url: "http://{{ jenkins_hostname }}:{{ jenkins_http_port }}{{ jenkins_url_prefix }}"
url_username: "{{ jenkins_admin_name }}"
url_password: "{{ jenkins_admin_password }}"
with_dependencies: yes
loop: "{{ jenkinsPlugins }}"
register: pluginResult
until: not pluginResult.failed
retries: 5
notify: restart_image
become: True
become_user: "{{ jenkins_process_user }}"
Работает корректно при первом запуске playbook.
Все плагины установлены и, возможно, повторены в случае проблем.
Но, когда я перезапускаю одну и ту же книгу воспроизведения, каждая установка плагина повторяется до максимального количества попыток и завершается с ошибкой (например):
failed: [devEnv] (item=blueocean) => {"ansible_loop_var": "item", "attempts": 5, "changed": false, "item": "blueocean", "msg": "Jenkins home directory doesn't exist."}
Конечно, я проверил, что домашний каталог jenkins действительно существует и имеет ожидаемый "{{jenkins_process_user}}" и
Владелец и группа "{{jenkins_process_group}}", которая является jenkins: jenkins.
Обратите внимание, что док-контейнер связан с локальным каталогом, который принадлежит jenkins: jenkins. Чтобы убедиться, что uid и gid одинаковы на локальном компьютере (виртуальная машина, созданная с помощью vagrant) и на контейнере, при запуске контейнера для uid: gid устанавливается значение 1001: 1001.
Я также проверил, что это действительно так.
Я действительно не могу объяснить, почему я получаю эту ошибку, что явно делает этот сборник идей не идемпотентным!
Я знаю, что есть способ установить плагины с помощью сценария оболочки, предоставляемого Jenkins, но я бы хотел придерживаться максимально доступного списка воспроизведения.
Конечно, я могу дать всю книгу, если вам нужна дополнительная информация.
Спасибо за вашу помощь.
J-L