我正在使用Jenkins来实现一些基础设施项目的持续交付。ATM主从Jenkins模型通常是由一些奴隶而不是主人建立的,我的意图是使用LXC构建和运行测试-厨房和莱布尼茨测试。所有的要求都是匹配的- lxc、lxc盒、leibniz和测试-厨房配置,在我的PC或我的任何其他团队成员上一切正常,但是当涉及到通过Jenkins的主从运行工作时,环境似乎存在一些问题,细节如下:
1-当我作为构建步骤"which lxc-create"的一部分运行时,它可以正常工作,并向/usr/bin/lxc-create展示它应该做的事情,但是
2-当它运行时,kitchen test失败,显示:
+ 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似乎有一些环境变量丢失或连线,重要的是说,向奴隶和人工构建它工作良好,所以不是一个设置问题,而是主从环境传输问题,或者我遗漏了一些关键的配置。有人能提供帮助吗?
lxc版本: 1.0.0
流浪者-lxc: 0.8.0
jenkins: 1.5.49
更新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:
....发布于 2014-03-06 21:40:46
解决了这个问题!Jenkins提出的错误消息是错误的,我将Jenkins用户添加到使用NOPASSWORD的sudoers中,它工作得很好。我之所以知道,是因为在我的个人电脑上,创建一个容器总是要求输入sudo密码。
https://stackoverflow.com/questions/22175648
复制相似问题