Jenkins как GUI для ansible

    Для расширения кругозора решил попробовать  jenkins  как  GUI для ансибла. ПО Jenkins - это все больше для девопсов и программистов, но почему его не попробовать офисному админу, периодически использующего ансибл?

    Считаем, что ансибл стоит уже где-то на какой-либо машине и на ней  есть постоянно используемые playbook. Что хотелось бы получить: оставить текущую машину ансибл как есть, чтобы было возможно использовать playbook в консоли как и ранее; запуск этих playbook с дженкинса через веб-интерфейс.

    Как будет работать:  Ansible машина будет slave в терминологии jenkins. При запуске задачи на слейве, дженкинс коннектится по ssh от рута на ансибл хост и запускает playbook как будто вы находитесь за консолью сервера ансибл. Весь вывод можно тут же увидеть на самом дженкинсе.

    Предположим, что jenkins поставили (у меня это Debian GNU/Linux 8.8 (jessie), openjdk-7-jre-headless:amd64,  jenkins  2.46.3). Ставим плагин ансибла - Manage Jenkins - Manage Plugins - раздел Available - вбиваем в поиск ansible - ставим плагин.

   План: 1) настраиваем беспарольный вход на ансибл машину от root, 2) поднимаем слейв, ставим на него джаву, 3) конфигурируем playbook на дженкинсе.

1) генерируем ключ ssh на jenkins машине,  например для user jenkins , по умолчанию открытый ключ запишется в /var/lib/jenkins/.ssh/id_rsa.pub

Данный открытый ключ помещаем в /root/.ssh/authorized_keys на ансибл машине. Настраиваем вход от рута по ключу.

2) Настраиваем slave

Текущая машина ансибл - это дебиан 8, ставим пакет туда пакет openjdk-7-jre-headless:amd64. Дальше на jenkins:

  Manage Jenkins - Managed Nodes - New Node

параметры слэйва:

Remote root directory - /var/lib/jenkins

Launch method - launch slave agent  via SSH

Host - указываем адрес хоста ансибл

Credential - Add , выбираем в Kind - SSH username with private key - Username root. Private key указываем как файловый путь в /var/lib/jenkins/.ssh/id_rsa или вводим напрямую.

Жмем Save. После этого должен появиться в списке slave

 

2) Создание проекта

New Item - указываем название проекта, например Ansible - Freestyle Project

В самом проекте указываем

Add build step - Invoke Ansible playbook - далее указываем путь к playbook на слейве, путь к hosts list.

 

 

Если нажать Advanced, то, например, позволяет задать переменные, которые передаются в комадной строке в консоли для запуска playbook (через параметр -e)

 Жмем Save. Потом слева нажимаем Build Now, внизу в Build History появится идентификатор нашей задачи, нажимаем на нее, далее Console Output - можно посмотреть что именно запускал jenkins на слейве

 

 

Все, теперь ничего не мешает создать нужные задачи в jenkins для запуска playbook,  настроить периодический запуск заданий, если требуется, и все это наблюдать в уютном веб-браузере.

 

 

Please publish modules in offcanvas position.