Блог Олега Сердюкова

Parallels Desktop Pro и Jenkins

Перед коротким отпуском попробовал ещё одну интересную функцию, которую поддерживает Parallels Desktop Pro - Jenkins.

Update 2015-11-02. Обновил информацию по Debian.

Сначала попробовал запустить Jenkins в docker’е (запущенном из PD) из официального образа и туда подключить Parallels. Тыкался-мыкался, сетевая доступность есть, но нода не видна. Упростил конфигурацию и поставил Jenkins под OS X:

$ brew update
$ brew install jenkins
$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

Зашёл на свежеустановленный Jenkins по адресу http://localhost:8080. Дальше — по инструкции c Github Parallels/jenkins-parallels.

  • поставил в PD виртуальную машину Ubuntu Server 15.10
  • убедился, что в ней работает openssh-server, а потом поставил openjdk-8-jdk
  • поставил вручную плагин
  • включил ssh на OS X, проверил доступ по ssh, создал каталог /Users/ctrld/jenkins
  • создал credential с доступом по имени и паролю (исключительно для проверки, в реальных конфигурациях делаю авторизацию по публичным ключам)
  • в хосте указал localhost (при выходе и заходе в конфигурацию запись исчезает, но она продолжает работать)
  • добавил виртуальную машину, указав имя, полученное из “prlctl list -a” (с пробелами, Ubuntu Linux 15.10)
  • Label - cloud, дальше буду для проекта использовать

После этого в списке нод дополнительно к master (хостовый OS X) появился PDConnectorSlave

Обратите внимание, что нода в оффлайне и Ubuntu нет. Когда появится задача, то всё будет в порядке.

Создал проект с Label “cloud” и выполнением одной команды “hostname”:

Запустил задачу, PDConnectorSlave перешёл в Online, появился PD Slave:

Задача выполнилась, результат hostname: ubuntu-linux-15, т.е. задача выполнилась на виртуальной машине:

И вот что важно — виртуальная машина перешла в suspend, она запускается только когда в ней появляется необходимость и не отъедает ресурсы хостовой машины. И второй плюс — используются преимущества headless, Parallels Desktop не нужно явно запускать, он подымается сам (не появляясь в Dock) и подымает нужную виртуальную машину. Мне очень нравится.

Попробовал добавить вторую машину под Debian 8 (с openssh-server и openjdk-7-jdk), она не была видна в Jenkins. Спасибо Роману Куликову, разработчику модуля, он подсказал решение. Debian я ставил вручную в отличие от kickstart-установки Ubuntu. И Parallels Tools не были установлены. Из-за этого Parallels Desktop не видел виртуальную машину. Поставил prl-tools (“Actions”, “Install Paralells Tools”, потом в виртуальной машине под root’ом “mount -o exec /media/cdrom; /media/cdrom/install”), запустил джобу с меткой, назначенной Debian и она сразу же отработала. Отлично.

По крайней мере поддержка Jenkins в Parallels Desktop Pro работает. А уж как её использовать — зависит от задач.

Comments