我正在使用 Jenkins 在一些基础设施项目上实现持续交付。ATM Master-Slave Jenkins 模型用于工作总是由一些从属而不是由主构建的情况下,我的意图是使用 LXC 构建和运行测试厨房和莱布尼茨测试。所有要求都匹配 vagrant-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
似乎缺少某些环境变量或某些东西已连接,重要的是要说 ssh 进入从属设备并手动构建它工作正常,因此不是设置问题,而是主从环境传输问题,或者我错过了一些重要的配置. 谁能提供一些帮助?
lxc 版本:1.0.0
流浪者LXC:0.8.0
詹金斯: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:
....