温馨提示×

温馨提示×

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

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

怎样用Chef管理服务器

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

Chef 是一种基础设施即代码(Infrastructure as Code, IaC)工具,用来自动化配置和管理服务器。下面从概念 → 架构 → 安装 → 编写食谱 → 部署执行给你一个完整上手指南。


一、Chef 的核心概念

概念 说明
Chef Server 中心服务器,存储配置(Cookbooks、Roles、Environments)
Chef Workstation 你写代码、测试、上传配置的地方
Chef Client(Node) 被管理的服务器,定期向 Chef Server 拉取配置并执行
Cookbook 配置包(类似“模块”)
Recipe Cookbook 中的具体配置脚本(Ruby DSL)
Resource 最小操作单位(如 package、service、file)

二、典型架构

Workstation
   |
   | knife / upload
   v
Chef Server
   |
   | pull config
   v
Managed Nodes (Linux/Windows)

三、安装 Chef

1. 安装 Workstation

# macOS
brew install chef-workstation

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

验证:

chef --version
knife --version

2. 准备 Chef Server

  • 可使用 Chef Infra Server(自建)
  • 或 Chef Automate / SaaS(商业)

四、初始化项目

chef generate repo mychef
cd mychef

目录结构:

cookbooks/
environments/
roles/
data_bags/

五、写一个 Cookbook(示例)

1. 创建 Cookbook

chef generate cookbook cookbooks/nginx

2. 编写 Recipe

cookbooks/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 '<h1>Hello from Chef</h1>'
end

六、上传并应用配置

1. 配置 knife

knife configure

2. 上传 Cookbook

knife cookbook upload nginx

3. 添加 Node 到 Chef

knife bootstrap node_ip \
  -x ubuntu \
  -i ~/.ssh/id_rsa \
  -N web01

4. 给 Node 分配 Recipe

knife node run_list add web01 'recipe[nginx]'

5. 在 Node 上执行

sudo chef-client

七、常用 Resource 示例

user 'deploy' do
  action :create
end

directory '/opt/app' do
  owner 'deploy'
  mode '0755'
end

template '/etc/nginx/nginx.conf' do
  source 'nginx.conf.erb'
end

八、进阶管理

  • Roles:批量管理节点角色
  • Environments:区分 dev / prod
  • Data Bags:存储敏感信息(加密)
  • Policyfiles:更现代的版本管理方式

九、适用场景

✅ 多台服务器统一配置
✅ 配置可追溯、可回滚
✅ DevOps / 自动化运维

❌ 小规模手动服务器(成本偏高)


如果你愿意,我可以:

  • 给你一个完整 nginx + 防火墙 Cookbook
  • 对比 Chef vs Ansible vs Puppet
  • 教你在 Docker / Kubernetes 中使用 Chef

你想从哪一步开始?

向AI问一下细节

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

AI
助
手