我有一个运行 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,它运行良好。