Вызов Ansible playbook в Дженкинс
У меня есть сборка jenkins, и я пытаюсь вызвать ANSIB файл Playbook для загрузки s3. Когда я выполняю post-build-скрипт для вызова ANSIBLE файла Playbook, я заканчиваю с ошибкой ниже.Невозможно запустить программу "ansible-playbook" (в каталоге "/var/jenkins_home/workspace/mybuild"): error=2, такого файла или каталога нет
Ниже приведен скриншот конфигурации скрипта пост-сборки.
К вашему сведению: в моей сборочной папке есть файл (ansibledemo.yml). Я попытался указать абсолютный путь (/var/jenkins_home/workspace/mybuild/ansibledemo.yml). Все еще не идти.
Когда я пытаюсь запустить ansible-playbook myplaybook.yml непосредственно в образе jenkins (терминал), я получаю команду bash: ansible-playbook: команда не найдена
Когда я попытался установить ansible на своем сервере jenkins, я не смог выполнить никаких команд установки. Пожалуйста, смотрите скриншот ниже.
3 ответа
Вы можете попытаться установить, используя версию pip в качестве альтернативы, и попробовать, Пожалуйста, см. Ниже шаги,
$ virtualenv venv
$ source venv/bin/activate
$ pip install ansible-container[docker,openshift]
Вы можете увидеть больше вариантов для установки в документации: https://docs.ansible.com/ansible-container/installation.html
Но всегда полезно сохранить отдельный vm / docker, такой как "ansible-controller", и использовать его как раб для jenkins, так что вам не нужны плагины ansible в ansible. И Дженкинс всегда будет стабильным без большой нагрузки
Загрузите информацию о пакете из настроенных источников.
# apt update
Установите ansible
# apt install ansible
Вот и все.
Если вы запускаете официальный контейнер jenkins (на основе debian), тогда сделайте репозиторий с встроенной системой ansible и вам не нужен "apt-add-repository". Но вы можете установить apt-add-repository, установив software-properties-common для дальнейшего использования.
dpkg -S apt-add-repository
говорит, что этот пакет относится к программным свойствам-общим.
Появляется ошибка, потому что автор контейнера всегда старается сделать его максимально легким и удалить информацию о пакете.
Вам не нужен sudo, потому что по умолчанию вы становитесь пользователем root в контейнере. Вы становитесь другим пользователем, только если упомянули об этом намеренно.
Пожалуйста, добавьте информацию о том, что вы работаете в контейнере на ваш вопрос.
Ansible не устанавливается на вашем компьютере Jenkins, сначала вам нужно установить ansible на компьютере jenkins:
В Ubuntu/Debian:
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
На CentOS/RedHat:
sudo yum install epel-release
sudo yum install ansible
После этого вы сможете запустить ansible-playbook.