【发布时间】:2013-05-15 02:39:07
【问题描述】:
有人可以帮我理解 chef-solo。我仍然不明白我是否必须在我的机器上运行 chef-solo 来运行配置机器,或者我需要先配置一台机器并在我配置的新机器上安装 solo。我需要了解端到端流程。请帮助我更好地理解。
【问题讨论】:
标签: amazon-web-services chef-infra
有人可以帮我理解 chef-solo。我仍然不明白我是否必须在我的机器上运行 chef-solo 来运行配置机器,或者我需要先配置一台机器并在我配置的新机器上安装 solo。我需要了解端到端流程。请帮助我更好地理解。
【问题讨论】:
标签: amazon-web-services chef-infra
Integrating AWS CloudFormation With Opscode Chef.pdf有详细说明如何在AWS环境中使用Chef-Solo
Chef Solo 可用于部署 Chef 食谱和角色,而无需 依赖于厨师服务器。 Chef Solo 可以通过 Ruby 安装 宝石包;但是,它需要一些其他依赖 要安装的软件包。通过使用资源元数据和 AWS CloudFormation 助手,您可以通过以下方式在基础 AMI 上部署 Chef Solo 云初始化。
您可以使用上面 PDF 中提供的云形成,也可以自己创建文件并运行脚本(嵌入在此模板中)。
【讨论】:
您还可以将 chef-solo 与 vagrant 一起使用来测试目标 linux 发行版在本地计算机上的行为;但是,您的问题更多的是关于 AWS 的端到端 - 所以我们开始吧。
你在目标机器上至少需要以下依赖:
ruby、gem chef、ssh、git 或其他将代码导入 vm 的方式。
你 ssh 进入机器,你得到你想在目标机器上使用的食谱,你用一些参数运行 chef-solo,至少指定一些属性,你的食谱的位置,以及一个包含一些配方或角色应用于目标机器。下面是获取 apt recipe 和 mongo recipes 的示例(https://github.com/opscode-cookbooks/apt 和 https://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]" ]
}
【讨论】: