温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用Chef批量配服务器

发布时间:2026-09-12 15:15:16 来源:亿速云 阅读:91 作者:小樊 栏目:系统运维

下面给你一条从概念到落地的“用 Chef 批量配置服务器”的实战路线,偏运维实操,不堆术语。


一、Chef 是干什么的(一句话)

Chef 用“菜谱(Cookbook)”描述服务器应该是什么状态,然后自动把一批服务器变成这个状态。

典型场景:

  • 批量装 Nginx / Java / Docker
  • 统一用户、SSH、防火墙
  • 多环境(dev / test / prod)一致配置

二、核心组件(先搞清楚谁管谁)

组件 作用
Workstation 你写 Cookbook 的电脑
Chef Server 配置中心(存 Cookbook、节点信息)
Chef Client 装在每台服务器上,拉配置并执行
Node 被管理的服务器
Cookbook 配置脚本集合
Recipe Cookbook 里的具体配置逻辑

三、整体流程(批量配服务器的关键)

写 Cookbook
   ↓
上传到 Chef Server
   ↓
新服务器装 chef-client
   ↓
chef-client 拉配置并自动执行

四、快速上手步骤(示例)

1️⃣ 安装 Chef Workstation(你本机)

# macOS
brew install chef-workstation

# 验证
chef --version

2️⃣ 初始化一个 Cookbook

chef generate cookbook my_server
cd my_server

目录结构:

recipes/default.rb   ← 主配置

3️⃣ 写一个简单的 Recipe(批量装 Nginx)

recipes/default.rb

package 'nginx' do
  action :install
end

service 'nginx' do
  action [:enable, :start]
end

4️⃣ 上传 Cookbook 到 Chef Server

knife cookbook upload my_server

5️⃣ 批量注册服务器(Node)

在每台服务器上:

curl -L https://omnitruck.chef.io/install.sh | sudo bash

然后:

sudo chef-client -S https://chef.example.com -K /etc/chef/client.pem

✅ 之后这台机器就归 Chef 管了


6️⃣ 给一批服务器统一加 Role

# roles/web.rb
name 'web'
run_list 'recipe[my_server]'

上传:

knife role from file web.rb

批量绑定:

knife node run_list add node1 'role[web]'
knife node run_list add node2 'role[web]'

五、批量管理的“杀手锏”

✅ 用 Bootstrap 一键接管服务器

knife bootstrap 192.168.1.10 \
  -x root -P password \
  -r 'role[web]'

一条命令完成:

  • 装 chef-client
  • 注册节点
  • 执行配置

✅ 配合 cloud-init / Terraform

  • Terraform 起机器
  • cloud-init 自动 bootstrap chef
  • 实现“开机即合规”

六、常见坑(血泪经验)

  • ❌ 不要在 recipe 里写死 IP
  • ✅ 用 attributesenvironments
  • ❌ 手动改服务器
  • ✅ 一切走 Chef,可追溯、可回滚

七、如果你只是“想批量配”,不想太重

可选:

  • Chef Solo / Chef Zero(无 Server)
  • Ansible(比 Chef 更轻)

八、总结一句话

Chef = 写一次配置,N 台服务器自动一致

如果你愿意,我可以:

  • 给你一个完整 Web 服务器 Cookbook 示例
  • 或对比 Chef vs Ansible 批量运维选型
  • 或写一个 生产级 roles + environments 结构

你现在是 测试环境 / 生产环境 / 云服务器

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI