- Chef 教程
- Chef - 首页
- Chef - 概述
- Chef - 架构
- Chef - 版本控制系统设置
- Chef - 工作站设置
- Chef - 客户端设置
- Chef - 测试厨房设置
- Chef - Knife 设置
- Chef - 单机设置
- Chef - Cookbook
- Chef - Cookbook 依赖关系
- Chef - 角色
- Chef - 环境
- Chef - Chef-Client 作为守护进程
- Chef - Chef-Shell
- Chef - 测试 Cookbook
- Chef - Foodcritic
- Chef - ChefSpec
- 使用测试厨房测试 Cookbook
- Chef - 节点
- Chef - Chef-Client 运行
- 高级 Chef
- 动态配置菜谱
- Chef - 模板
- Chef - 使用 Chef DSL 的纯 Ruby
- Chef - 使用菜谱的 Ruby Gems
- Chef - 库
- Chef - 定义
- Chef - 环境变量
- Chef - 数据包
- Chef - 数据包脚本
- Chef - 跨平台 Cookbook
- Chef - 资源
- 轻量级资源提供程序
- Chef - 蓝图
- Chef - 文件和包
- Chef - 社区 Cookbook
- Chef 有用资源
- Chef - 快速指南
- Chef - 有用资源
- Chef - 讨论
Chef - 单机设置
Chef-Solo 是一款开源工具,可在本地运行,并允许使用 Chef Cookbook 配置虚拟机,而无需复杂的 Chef 客户端和服务器配置。它有助于在自行创建的服务器上执行 Cookbook。
在本地机器上运行 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 仓库。
$ git add solo.rb
步骤 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。
$ git add node.json
步骤 6 - 提交并将文件推送到 git 仓库。
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 [email protected]: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 运行。
广告