Lxc

如何使用 saltstack 配置新的 LXC 容器?

  • January 26, 2016

我有一個執行 Jenkins 的主機伺服器。我希望 Jenkins 自動創建新容器並使用 SALT 準備這些容器。最終目的是使用這些容器來測試程式碼。

創建新容器,安裝 salt-minion,然後為伺服器配置 salt 的最佳方法是什麼?

我已經嘗試過類似的東西,lxc-attach -n myContainer -- salt-call --local state.highstate但我在這樣做時遇到了問題。如果我執行 lxc-attach -n

$$ name $$–$$ command $$在命令行上手動它可以工作。但是,從腳本中執行此操作會給我帶來錯誤。

lxc-start -n "$1" -d
lxc-attach -n "$1" -- apt-get update

…結果是…

Starting the container 'test2'...
Err http://archive.ubuntu.com trusty InRelease
Err http://archive.ubuntu.com trusty-updates InRelease
Err http://archive.ubuntu.com trusty Release.gpg
 Could not resolve 'archive.ubuntu.com'
Err http://security.ubuntu.com trusty-security InRelease
Err http://security.ubuntu.com trusty-security Release.gpg
 Could not resolve 'security.ubuntu.com'
Err http://archive.ubuntu.com trusty-updates Release.gpg
 Could not resolve 'archive.ubuntu.com'
Reading package lists... Done
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/InRelease  

…以及更多錯誤。我以同一使用者身份在命令行上手動執行腳本和命令。

我在這裡做錯了什麼?

在我啟動容器後(在後台) ,我似乎試圖執行apt-get update得太快。網路顯然還沒有準備好,並且所有命令(依賴於網路)都失敗了。

我在配置腳本中添加了 sleep 5s,它執行良好。

lxc-start -n "$1" -d
sleet 5
lxc-attach -n "$1" -- apt-get update

引用自:https://serverfault.com/questions/750583