Chef - Solo 设置
Chef-Solo 是一款开源工具,可在本地运行,允许使用 Chef Cookbook(食谱)配置客户机,而无需任何 Chef 客户端和服务器配置的复杂性。它有助于在自创服务器上执行Cookbook(食谱)。
在本地机器上运行 Chef-Solo 之前,需要在本地机器上安装以下两个文件。
Solo.rb − 此文件告诉 Chef 在哪里可以找到Cookbook(食谱)、角色和数据包。
Node.json −此文件设置运行列表和任何特定于节点的属性(如果需要)。
solo.rb 配置
以下是配置 solo.rb 的步骤。
步骤 1 − 在 chef repo 中创建一个 solo.rb 文件。
current_dir = File.expand_path(File.dirname(__FILE__)) file_cache_path "#{current_dir}" cookbook_path "#{current_dir}/cookbooks" role_path "#{current_dir}/roles" data_bag_path "#{current_dir}/data_bags"
步骤 2 − 将文件添加到 git repo。
$ git add solo.rb
步骤 3 − 在 chef repo 中创建一个包含以下内容的 node.json 文件。
{ "run_list": [ "recipe[ntp]" ] }
步骤 4 − 使用 knife 获取 chef repo 中的 ntp cookbook。
vipin@laptop:~/chef-repo $ knife cookbook site install ntp Installing ntp to /Users/mma/work/chef-repo/cookbooks …TRUNCATED OUTPUT… Cookbook ntp version 1.3.0 successfully installed
步骤 5 − 将 node.json 文件添加到 Git。
$ git add node.json
步骤 6 − 提交并将文件推送到 git repo。
vipin@laptop:~/chef-repo $ git commit -m "initial setup for Chef Solo" vipin@laptop:~/chef-repo $ git push Counting objects: 4, done. Delta compression using up to 4 threads. ...TRUNCATED OUTPUT... To git@github.com:mmarschall/chef-repo.git b930647..5bcfab6 master -> master
在节点上运行 Cookbook
步骤 1 − 登录到想要配置 Chef-Solo 的节点。
步骤 2 − 在机器上克隆 Chef 存储库。
$ git clone $URL_PATH
步骤 3 − cd 到 chef 存储库。
$ cd chef-repo
最后运行 Chef-Solo 来收敛节点 −
$ sudo chef-solo -c solo.rb -j node.json [2017-20-08T22:54:13+01:00] INFO: *** Chef 11.0.0 *** [2017-20-08T22:54:13+01:00] INFO: Setting the run_list to ["recipe[ntp]"] from JSON ...TRUNCATED OUTPUT... [2012-12-08T22:54:16+01:00] INFO: Chef Run complete in 2.388374 seconds [2012-12-08T22:54:16+01:00] INFO: Running report handlers
solo.rb 配置 Chef-Solo 在当前目录(Chef 存储库)中查找其Cookbook(食谱)、角色和数据包。
Chef-Solo 从 JSON 文件中获取其节点配置。在我们的示例中,我们将其称为 node.json。如果您要管理多个服务器,则每个节点都需要一个单独的文件。然后,Chef-Solo 只需根据在 solo.rb 和 node.json 中找到的配置数据执行 Chef 运行即可。