Lxc
如何使用 saltstack 配置新的 LXC 容器?
我有一個執行 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