2015-08-08 1 views
3

Я хочу, чтобы автоматизировать все строит в изолированном окружении:Как настроить chroot для сборки jenkins?

sudo chroot mychroot 
apt-get install git build-essential make -y 
git clone myrepo 
cd myrepo/src 
make 

Из этой нити кажется моей конфигурация в Manage Дженкинс -> Настройка система должна быть:

Name: trusty 
Tool: pbuilder 
Advanced configuration: checked 
Additional arguments: --distribution trusty --debootstrapopts --variant=buildd 

Shell command: 
Repositories: 
Name: universe 
Repository URL: deb http://us.archive.ubuntu.com/ubuntu/ trusty universe 
Keyfile URL: http://archive.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg 

Я также добавил Дженкинс в файл /etc/sudoers, как обсуждалось в этом issue.

Может ли кто-нибудь поделиться своей конфигурацией? wiki является большим, но я чувствую себя немного не хватает:

Что described here это именно то, что я хочу:

Creates a new debootstrap-based chroot. 
Installs build-essential, mercurial, etc. 
Fetches the shource. 
Runs make. 
Copies the files produced in ./binary-out/ to a safe location. 
Cleans up. 

ответ

2

Если он подходит для подготовки CHROOT заранее (скажем, все задания используют ту же самую конфигурацию) , то, что вы хотите, может быть легко достигнуто на SSH рабу с помощью следующей конфигурации в/и т.д./SSH/sshd_config на подчиненном:

Match User jenkins 
     ChrootDirectory /var/chroot/ 
     X11Forwarding no 
     AllowTcpForwarding no 

Когда Дженкинс войти ведомому через SSH, чтобы выполнить сборку, он будет автоматически брошен в chroot без необходимости добавлять Jenkins в sudoers, создавать chroot и устанавливать зависимости до того, как магия сборки может произойти.

В тех случаях, когда Дженкинс всегда будет находиться на одном и том же ферме на машине, это намного проще, не говоря уже о менее подверженном ошибкам маршруте.

+0

Хорошая идея. Мой встроенный chroot еще не стабилен, и он предпочел бы начинать с нуля каждый раз, когда он развивается (и я хочу быть уверенным, что не переношу неизвестные артефакты. Возможно, у меня могла быть отдельная работа по инициализации chroot, затем когда тот заканчивается, используйте другое задание, чтобы перейти прямо к нему. – tarabyte

 Смежные вопросы

  • Нет связанных вопросов^_^