如何为jenkins构建设置chroot?

时间:2015-08-08 03:21:13

标签: ubuntu jenkins chroot

我想在chroot中自动化构建:

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

从这个线程看来,我在Manage Jenkins中的配置 - >配置系统应该是:

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

我已将jenkins添加到/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.

1 个答案:

答案 0 :(得分:2)

如果适合提前准备chroot(比如所有作业使用相同的配置),那么通过对slave上的/ etc / ssh / sshd_config使用以下配置,可以在SSH从站上轻松实现所需的功能:

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

当Jenkins通过SSH登录到奴隶以执行构建时,他将自动被扔进chroot而无需在构建魔法发生之前将Jenkins添加到sudoers,创建chroot并安装依赖项。 / p>

如果Jenkins总是在机器上的同一个chroot中,这是一个更简单的,更不用说容易出错的路线了。