使用现有的Chef服务器配置Chef zero服务器

时间:2014-03-11 07:47:45

标签: chef vagrant chef-solo

我希望将chef zero与vagrant用于配置开发人员环境。这些开发人员参与应用程序开发,不参与维护厨师食谱。

我有一个厨师服务器,作为所有厨师组件的存储库。是否可以使用此厨师服务器配置厨师零,以便开发人员可以利用角色和环境?

我可以使用berkshelf使用chef_api下载食谱,但角色的运行列表和环境的属性必须在Vagrant文​​件中复制。

此方法的优点是开发人员可以通过更改Vagrantfile中的环境来复制productionQA环境。

1 个答案:

答案 0 :(得分:1)

正如您所发现的,Berkshelf是管理食谱的绝佳工具,但没有用于管理角色,环境和数据库等实体的等效工具。这是有道理的,因为这些实体相当于特定于厨师的特定实例的全局数据。

有其他方法可以解决这个问题:

  1. 使用"应用程序"包含"角色配方的烹饪书"那个细节 所需的运行列表
  2. 导出所需的角色和环境,并在vagrant repo中保留副本
  3. 应用程序食谱模式

    您可以使用来自特殊应用程序"的配方,而不是使用角色。菜谱。每个配方都旨在捕获应用程序的特定组件的运行列表:db,appserver,router等。

    例如" myapp :: db"配方:

    include_recipe "mysql::server"
    include_recipe "database"
    include_recipe "myapp::_db_schema"
    

    " myapp :: appserver"配方

    include_recipe "apache2"
    include_recipe "php"
    ..
    include_recipe "myapp::_appserver_setup1"
    include_recipe "myapp::_appserver_setup2"
    

    这种方法相对于角色的主要优点是能够修改对运行列表(dev / test / prod)的控制更改以及使用像Berkshelf这样的工具来控制主厨服务器负载。

    从厨师服务器导出角色和环境

    如果您拥有管理员凭据,则可以轻松地从Chef服务器导出数据。参见:

    http://docs.opscode.com/knife_download.html