создание рабочих мест Дженкинс с ansible
7172 просмотра
3 ответа
Я работаю над проектом по развертыванию CI-сервера jenkins на centos7 с использованием ansible. У меня возникают проблемы при создании заданий jenkins из шаблона xml с использованием ansible.
Пока все работает нормально, но теперь я хочу иметь возможность создавать задания и дать им некоторую базовую конфигурацию из файла XML с использованием ansible. Моим решением была следующая команда от jenkins-cli:
sudo java -jar jenkins-cli.jar -s http://localhost:8080 create-job Job_test1 < Job_test1.xml
это прекрасно работает, когда вводится вручную в поле centos7, но когда я помещаю его в ansible и запускаю его:
- name: create jenkins jobs with xml files
sudo: yes
command: "java -jar {{ jenkins.cli_dest }} -s http://localhost:8080 create-job {{ item.name }} < {{ jenkins_dest }}/{{ item.xml_name }}"
with_items: jenkins_jobs
выдает следующее сообщение об ошибке:
stderr: Too many arguments: <
java -jar jenkins-cli.jar create-job NAME
Creates a new job by reading stdin as a configuration XML file.
Кто-нибудь знает решение этой проблемы? Насколько я вижу, я делаю это правильно (так как команда работает, когда не введено ansible)
Автор: Muffin Источник Размещён: 13.11.2019 11:47Ответы (3)
4 плюса
Командный модуль не поддерживает перенаправление ввода и вывода , так как он не проходит командную строку для оболочки. Вот что говорит его документация:
Он не будет обрабатываться через оболочку, поэтому такие переменные, как $ HOME, и такие операции, как "<", ">", "|" и "&" не будут работать (используйте модуль оболочки, если вам нужны эти функции).
Так:
- name: create jenkins jobs with xml files
sudo: yes
shell: "java -jar {{ jenkins.cli_dest }} -s http://localhost:8080 create-job {{ item.name }} < {{ jenkins_dest }}/{{ item.xml_name }}"
with_items: jenkins_jobs
Автор: Magnus Bäck
Размещён: 19.11.2014 10:51
8 плюса
Я управляю своими конвейерами CI / CD jenkins и настройкой с ansible, и я в значительной степени полагаюсь на доступные библиотеки (groovy DSL, python jenkins-job-builder) и шаблонирую кишки XML-конфигурации jenkins, используя jinja2. Меня попросили продемонстрировать, что можно сделать с ansible на местном собрании, и я работал над кодом, который я буду распространять и делиться на этом собрании в новом году. Я серьезно думаю, что эти вещи могут вам сильно помочь, в настоящее время я использую эту настройку в своем текущем проекте и не могу себе представить, как управлять Дженкинсом каким-либо другим способом.
https://github.com/Azulinho/ansible-jenkins-showcase
Автор: azul Размещён: 23.11.2014 08:470 плюса
Вы можете использовать перенаправление оболочки, выполнив ее. Например, команда 'sh "echo test> hello.txt"' будет работать так, как задумано. Просто оберните всю команду чем-то вроде '/ bin / sh "java ...> ..."'.
Автор: Benjamin Striner Размещён: 02.08.2016 06:30Вопросы из категории :
- git Как я могу отменить git reset --hard HEAD ~ 1?
- git Как настроить Git голый доступный по HTTP репозиторий на IIS
- git Как мне отменить неустановленные изменения в Git?
- git Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git?
- jenkins Заставить Дженкинса (Хадсона) работать на другой работе
- jenkins Как очистить историю сборки Дженкинс / Хадсон?
- jenkins Не удалось загрузить english.pickle с помощью nltk.data.load
- jenkins Как запустить сборку, только если изменения происходят в определенном наборе файлов
- vagrant Как вы настроили свою среду разработки Django?
- vagrant Как отладить сообщение «Vagrant не может переадресовать указанные порты на этой виртуальной машине»
- vagrant Переопределить параметры конфигурации Vagrant локально (per-dev)
- vagrant Бродяга в производстве
- ansible Ansible идемпотентная установка MySQL Playbook
- ansible Как запустить Ansible, не указывая инвентарь, а непосредственно хост?
- ansible Безопасное ограничение Ansible playbooks на один компьютер?
- ansible Как я могу получить журналы / подробности выполнения модуля ansible-playbook?
- jenkins-cli Одинаковое рабочее пространство для нескольких заданий
- jenkins-cli создание рабочих мест Дженкинс с ansible
- jenkins-cli Выполнить сценарий оболочки из рабочей области на удаленном компьютере после успешной сборки (Jenkins)
- jenkins-cli Проверьте статус задания Jenkins после удаленного запуска сборки