1 在我的生产环境中有 500 台服务器,我必须在这些服务器上部署 5 个应用程序。
所以 app1 将在 1-100 台服务器上运行,app2 将在 101-200 台服务器上运行,依此类推。
我有以下问题-
最佳答案
简单的方法是一些 for
bash 中的循环加上 knife bootstrap
.可能需要一段时间才能运行,但由于您只需执行一次,它可能没问题。
for name in $(cat servers.txt | head -n 100); do knife bootstrap -N $name -r 'role[app1]' $name; done
for name in $(cat servers.txt | tail -n +101 | head -n 100); do knife bootstrap -N $name -r 'role[app2]' $name; done
for name in $(cat servers.txt | tail -n +201 | head -n 100); do knife bootstrap -N $name -r 'role[app3]' $name; done
for name in $(cat servers.txt | tail -n +301 | head -n 100); do knife bootstrap -N $name -r 'role[app4]' $name; done
for name in $(cat servers.txt | tail -n +401 | head -n 100); do knife bootstrap -N $name -r 'role[app5]' $name; done
或类似的东西。
关于chef-infra - 使用 Chef 引导多个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41917916/