Chef 是一个**基础设施即代码(Infrastructure as Code, IaC)的自动化配置管理工具,适合用来批量管理服务器(安装软件、配置文件、用户、服务等等)。
下面用「新手视角 + 实操路线」**给你讲:新手如何用 Chef 做运维。
一句话:
Chef 让你用代码(Ruby 风格)描述“服务器应该是什么状态”,然后自动把服务器变成那样。
常见用途:
chef-workstationpackage 'nginx' do
action :install
end
service 'nginx' do
action [:enable, :start]
end
✅ 不要一上来就搭 Chef Server
✅ 先用 Chef Solo / Chef Zero 本地练手
本地写 Cookbook
→ 用 chef-client --local
→ 再学 Server
# macOS
brew install chef-workstation
# Linux
curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -P chef-workstation
验证:
chef --version
chef generate cookbook my_first_cookbook
cd my_first_cookbook
目录结构:
recipes/
default.rb
编辑 recipes/default.rb:
package 'nginx' do
action :install
end
service 'nginx' do
action [:enable, :start]
end
sudo chef-client --local-mode --runlist 'recipe[my_first_cookbook]'
✅ 服务器自动装好并启动 Nginx
| 资源 | 作用 |
|---|---|
package |
装软件 |
service |
管理服务 |
file |
管理文件 |
template |
配置文件模板 |
user |
用户管理 |
execute |
执行命令 |
示例:
file '/tmp/hello.txt' do
content 'Hello Chef'
end
❌ 一上来就学 Chef Server
✅ 先本地跑通
❌ 把 Shell 脚本直接丢进 Chef
✅ 用 Chef 资源描述“状态”
❌ 一台机器一个写法
✅ 用 Role / Attribute 管理差异
第 1 周
第 2 周
第 3 周
如果觉得 Chef 太重:
如果你愿意,我可以:
你现在是 完全零基础,还是 有 Linux/运维基础?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。