2017-01-29 92 views
3

1在我的生产环境中有500个服务器,我必须在这些服务器上部署5个应用程序。 因此,app1将继续使用1-100台服务器,app2将继续使用101-200,等等。 我有以下问题─与厨师引导多个节点

  1. 我怎么能同时引导多个节点?
  2. 如何将我的第一个100台服务器绑定到第一run_list和接下来的100至第二run_list等
+0

那些服务器已经在运行操作系统,或者您将通过PXE等从头开始配置它们? – StephenKing

回答

1

简单的方式是在bash加上knife bootstrap一些for循环。可能需要一段时间才能运行,但由于您只需要执行一次,所以可能没问题。

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 

或类似的东西。

+0

感谢您的回复。我对厨师金属有点困惑。这是否也是为了同样的目的? – user6378152

+0

它现在被称为厨师提供,并且bootstrapping Chef是一项功能,但它期望通过云服务创建服务器。我也不建议你再使用厨师配置,因为这个项目有点停滞不前,Terraform也可以做这样的事情,但如果这是一次性的话,它可能会过度杀伤。 – coderanger