2014-03-04 74 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密碼。