【问题标题】:chef-solo explained厨师独奏解释
【发布时间】:2013-05-15 02:39:07
【问题描述】:

有人可以帮我理解 chef-solo。我仍然不明白我是否必须在我的机器上运行 chef-solo 来运行配置机器,或者我需要先配置一台机器并在我配置的新机器上安装 solo。我需要了解端到端流程。请帮助我更好地理解。

【问题讨论】:

    标签: amazon-web-services chef-infra


    【解决方案1】:

    Integrating AWS CloudFormation With Opscode Chef.pdf有详细说明如何在AWS环境中使用Chef-Solo

    Chef Solo 可用于部署 Chef 食谱和角色,而无需 依赖于厨师服务器。 Chef Solo 可以通过 Ruby 安装 宝石包;但是,它需要一些其他依赖 要安装的软件包。通过使用资源元数据和 AWS CloudFormation 助手,您可以通过以下方式在基础 AMI 上部署 Chef Solo 云初始化。

    您可以使用上面 PDF 中提供的云形成,也可以自己创建文件并运行脚本(嵌入在此模板中)。

    【讨论】:

      【解决方案2】:

      您还可以将 chef-solo 与 vagrant 一起使用来测试目标 linux 发行版在本地计算机上的行为;但是,您的问题更多的是关于 AWS 的端到端 - 所以我们开始吧。

      你在目标机器上至少需要以下依赖:

      ruby、gem chef、ssh、git 或其他将代码导入 vm 的方式。

      你 ssh 进入机器,你得到你想在目标机器上使用的食谱,你用一些参数运行 chef-solo,至少指定一些属性,你的食谱的位置,以及一个包含一些配方或角色应用于目标机器。下面是获取 apt recipe 和 mongo recipes 的示例(https://github.com/opscode-cookbooks/apthttps://github.com/edelight/chef-mongodb)...我将它们克隆到目标机器上的 /opt/devops 位置。

      chef-solo -c solo.rb -j node.json
      

      solo.rb 内容

      file_cache_path "/opt/devops/log"
      cookbook_path "/opt/devops/cookbooks"
      

      node.json 内容

      { 
      "node": {
      "vm_ip": [ "192.168.33.10" ],
      "myProject": {
        "git_revision":"bzrDevel",
      }
      },
      "run_list": ["recipe[apt]","recipe[mongodb]" ]
      }
      

      【讨论】: