Chef 单人设置
Chef-Solo 是一种在本地运行的开源工具,允许使用 Chef 说明书来配置来宾计算机,而无需任何 Chef 客户端和服务器配置的复杂性。它有助于在自创建的服务器上执行说明书。
在本地机器上运行 Chef-Solo 之前,需要在本地机器上安装以下两个文件。
Solo.rb-该文件告诉 Chef 在哪里可以找到Cookbook、角色和数据包。
Node.json-如果需要,此文件设置运行列表和任何特定于节点的属性。
solo.rb 配置
以下是配置 solo.rb 的步骤。
步骤 1-在 Chef 存储库中创建一个 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。
第 3 步-在 Chef 存储库中创建一个包含以下内容的 node.json 文件。
{
"run_list": [ "recipe[ntp]" ]
}
第 4 步-使用knife 在Chef仓库中获取 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。
第 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
在节点上运行说明书
步骤 1-登录到想要配置 Chef-Solo 的节点。
第 2 步-在机器上克隆 Chef 存储库。
第 3 步-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 配置为在当前目录中查找其Cookbook、角色和数据包:Chef 存储库。
Chef-Solo 从 JSON 文件中获取其节点配置。在我们的示例中,我们将其称为 node.json。如果您要管理多个服务器,则每个节点都需要一个单独的文件。然后,Chef-Solo 只是根据在 solo.rb 和 node.json 中找到的配置数据执行 Chef 运行。