温馨提示×

温馨提示×

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

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

服务器运维怎样用Chef

发布时间:2026-10-23 21:49:59 来源:亿速云 阅读:87 作者:小樊 栏目:系统运维

下面用实战视角讲清楚:服务器运维中 怎样用 Chef 来做自动化配置管理。内容从「是什么 → 怎么装 → 怎么用 → 最佳实践」一步步来。


一、Chef 能解决什么问题?

没有 Chef 时:

  • 新服务器手动装环境
  • 配置容易不一致
  • 出问题难复现

用 Chef 后:

  • 服务器状态用代码描述(Infrastructure as Code)
  • 新机器一键初始化
  • 配置统一、可审计、可回滚

典型用途:

  • 安装 Nginx / Java / Docker
  • 配置防火墙、用户、SSH
  • 部署应用、定时任务
  • 批量管理 10~1000+ 台服务器

二、Chef 核心概念(先记这 4 个)

概念 作用
Cookbook 配置包(像“软件安装说明书”)
Recipe Cookbook 里的具体步骤
Resource 最小操作单元(package / file / service)
Node 被管理的服务器

常用架构:

Chef Server(可选)
   ↓
Chef Client(装在被管服务器)
   ↓
Cookbook → Recipe → Resource

三、最简上手方式(Chef Solo / Chef Zero)

适合:

  • 小团队
  • 不想搭 Chef Server
  • 单机或少量服务器

1️⃣ 安装 Chef Workstation

# CentOS / Ubuntu
curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -P chef-workstation

验证:

chef --version

2️⃣ 创建 Cookbook

chef generate cookbook my_server

目录结构:

my_server/
├── recipes/
│   └── default.rb
├── attributes/
├── templates/

3️⃣ 写 Recipe(示例:装 Nginx)

recipes/default.rb

package 'nginx' do
  action :install
end

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

file '/var/www/html/index.html' do
  content 'Hello from Chef'
end

4️⃣ 本地执行(Chef Zero)

chef-client --local-mode --runlist 'recipe[my_server]'

✅ 服务器自动:

  • 装 nginx
  • 启动服务
  • 写页面

四、管理多台服务器(推荐架构)

方案 A:Chef Server(企业常用)

Chef Server
 ├── 管理 Cookbook
 ├── 记录 Node 状态
 └── 下发配置

节点注册:

knife bootstrap 192.168.1.10 \
  -x root -P password \
  -N web01 \
  -r 'recipe[my_server]'

方案 B:Git + CI(轻量)

  • Cookbook 放 Git
  • CI 推送
  • 服务器定时跑 chef-client

五、常用 Resource 速查

# 安装软件
package 'docker'

# 创建用户
user 'deploy' do
  home '/home/deploy'
  shell '/bin/bash'
end

# 写文件
template '/etc/nginx/nginx.conf' do
  source 'nginx.conf.erb'
end

# 执行命令
execute 'reload nginx' do
  command 'nginx -s reload'
  action :run
end

六、运维最佳实践

✅ 一切配置写 Cookbook,不手工改服务器
✅ Cookbook 进 Git,版本可控
✅ 先 test kitchen 测试,再上生产
✅ 用 roles / environments 区分 dev / prod
✅ 敏感信息用 chef-vault / encrypted data bag


七、Chef 适合谁?

✔ 服务器多
✔ 配置复杂
✔ 强调一致性
✔ 有 DevOps 意识

❌ 不适合:

  • 只管 1~2 台机器
  • 只想“点一下就完事”

如果你愿意,我可以:

  • 给你一个 真实运维 Cookbook 示例
  • 对比 Chef vs Ansible
  • 教你 用 Chef 部署 Web / 数据库集群

你现在是 个人服务器 还是 公司运维环境?

向AI问一下细节

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

AI
助
手