2014-03-04 38 views
0

我正在使用Jenkins在某些基础设施项目上实现持续交付。 ATM Master-Slave Jenkins模型用于工作总是由一些奴隶而不是由主人建立的地方,我的意图是使用LXC建立和运行测试厨房和莱布尼茨测试。所有的要求都与vagrant-lxc,lxc盒,莱布尼茨和测试厨房配置相匹配,我的个人电脑或任何其他团队成员都可以正常工作,但是当涉及到通过詹金斯的主从运行工作时,似乎存在一些问题的环境,具体为:基础设施项目的持续交付

1 - 当我运行的生成步骤"which lxc-create"它的作品和表演的一部分/usr/bin/lxc-create当它运行kitchen test是失败,则会显示,因为它应该,但

2-

+ kitchen test 
-----> Starting Kitchen (v1.1.1) 
-----> Cleaning up any prior instances of <default-ubuntu-1204> 
-----> Destroying <default-ubuntu-1204>... 
     Finished destroying <default-ubuntu-1204> (0m0.00s). 
-----> Testing <default-ubuntu-1204> 
-----> Creating <default-ubuntu-1204>... 
>>>>>> ------Exception------- 
>>>>>> Class: Kitchen::ActionFailed 
>>>>>> Message: Failed to complete #create action: [Expected process to exit with [0], but received '1' 
---- Begin output of vagrant up --no-provision --provider=lxc ---- 
STDOUT: 
STDERR: The `lxc` package does not seem to be installed or is not accessible on the PATH. 
---- End output of vagrant up --no-provision --provider=lxc ---- 
Ran vagrant up --no-provision --provider=lxc returned 1] 
>>>>>> ---------------------- 
>>>>>> Please see .kitchen/logs/kitchen.log for more details 

看起来有些环境变量缺失或某些w ired,重要的是说,手动调入slave和building可以很好地工作,所以不是一个安装问题,而是一个Master-Slave环境传输问题,或者我错过了对配置至关重要的事情。任何人都可以提供帮助吗?

LXC版本:1.0.0

无业游民,LXC:0.8.0

詹金斯:49年5月1日

更新1: 这里是我的厨房配置:

--- 
driver: 
    name: vagrant 
    require_chef_omnibus: false 
    require_chef_berkshelf: true 
    customize: 
     memory: 1024 

provisioner: 
    name: chef_solo 

platforms: 
    - name: ubuntu-12.04 
    driver: 
     box: "ubuntu-12.04" 
     box_url: "http://dl.company.com/ubuntu1204-lxc-amd64.box" 
     provider: lxc 

suites: 
    .... 
+0

用户正在运行'kitchen' vs'lxc-create'。你有厨房lxc司机吗?为什么流浪者参与其中,这对我来说还不清楚。 – sethvargo

+0

@sethvargo Jenkins正在为流浪汉和流浪汉司机和LXC提供商进行“厨房测试”。为了澄清,我已经添加了一个步骤,运行“哪个lxc-create”来检查Jenkins从属环境是否可以运行lxc-create,并且确实如此。 –

回答

1

解决了这个问题!詹金斯提出的错误信息是错误的,我用詹姆斯将詹金斯用户添加到sudoers,它工作得很好。我想通了,因为在我的个人电脑上创建一个容器总是要求sudo密码。