下面给你一条从概念到落地的“用 Chef 批量配置服务器”的实战路线,偏运维实操,不堆术语。
Chef 用“菜谱(Cookbook)”描述服务器应该是什么状态,然后自动把一批服务器变成这个状态。
典型场景:
| 组件 | 作用 |
|---|---|
| Workstation | 你写 Cookbook 的电脑 |
| Chef Server | 配置中心(存 Cookbook、节点信息) |
| Chef Client | 装在每台服务器上,拉配置并执行 |
| Node | 被管理的服务器 |
| Cookbook | 配置脚本集合 |
| Recipe | Cookbook 里的具体配置逻辑 |
写 Cookbook
↓
上传到 Chef Server
↓
新服务器装 chef-client
↓
chef-client 拉配置并自动执行
# macOS
brew install chef-workstation
# 验证
chef --version
chef generate cookbook my_server
cd my_server
目录结构:
recipes/default.rb ← 主配置
recipes/default.rb
package 'nginx' do
action :install
end
service 'nginx' do
action [:enable, :start]
end
knife cookbook upload my_server
在每台服务器上:
curl -L https://omnitruck.chef.io/install.sh | sudo bash
然后:
sudo chef-client -S https://chef.example.com -K /etc/chef/client.pem
✅ 之后这台机器就归 Chef 管了
# 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]'
knife bootstrap 192.168.1.10 \
-x root -P password \
-r 'role[web]'
一条命令完成:
attributes 和 environments可选:
Chef = 写一次配置,N 台服务器自动一致
如果你愿意,我可以:
你现在是 测试环境 / 生产环境 / 云服务器?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。