chef-infra - 使用 Chef 引导多个节点

标签 chef-infra bootstrapping

1 在我的生产环境中有 500 台服务器,我必须在这些服务器上部署 5 个应用程序。
所以 app1 将在 1-100 台服务器上运行,app2 将在 101-200 台服务器上运行,依此类推。
我有以下问题-

  • 如何同时引导多个节点?
  • 我将如何将前 100 个服务器绑定(bind)到第一个 run_list 并将下一个 100 绑定(bind)到第二个 run_list 等。
  • 最佳答案

    简单的方法是一些 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/

    相关文章:

    python - 如何在 Chef 中使用 Python 解释器

    Mysql Service Recipe 抛出未定义方法错误

    assembly - Hello World 引导加载程序不工作

    grails - 将Grails部署到云(Jelastic) Bootstrap 问题?

    ruby - chefspec:测试linux内核版本号

    angularjs - 了解 angularJS 的逐步手动引导

    php - Laravel - 将文件上传到数据库

    java - 控制 PicoContainer 的启动顺序

    chef-infra - 如何让 yum_package 资源在 chef_gem 包之前运行?