有人可以帮我理解厨师独奏吗?我仍然不明白我是否必须在我的机器上运行 chef-solo 来运行配置机器,或者我需要先配置一台机器并在我配置的新机器上安装 solo。我需要了解端到端流程。请帮助我更好地理解。
2 回答
您还可以使用 chef-solo 和 vagrant 来测试目标 linux 发行版在本地机器上的行为;但是,您的问题更多是关于 AWS 的端到端 - 所以我们开始吧。
端到端,您至少需要在目标机器上具有以下依赖项:
ruby、gem chef、ssh、git 或其他将您的代码获取到 vm 的方式。
你 ssh 进入机器,你得到你想在目标机器上使用的食谱,你运行 chef-solo 并使用一些参数至少指定一些属性,你的食谱的位置,以及一个包含一些食谱的运行列表或要应用于目标机器的角色。下面是获取 apt 食谱和 mongo 食谱的示例(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]" ]
}
Integrating AWS CloudFormation With Opscode Chef.pdf中有关于如何在 AWS 环境中使用 Chef-Solo 的详细说明
Chef Solo 可用于部署 Chef 食谱和角色,而不依赖于 Chef 服务器。Chef Solo 可以通过 Ruby Gem 包安装;但是,它需要安装许多其他依赖包。通过使用资源元数据和 AWS CloudFormation 帮助程序,您可以通过 Cloud-init 在基础 AMI 上部署 Chef Solo。
您可以使用上面 PDF 中提供的云形成,也可以自己创建文件并运行脚本(嵌入在此模板中)。