温馨提示×

温馨提示×

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

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

如何用Chef管理服务器配置

发布时间:2026-09-12 17:53:21 来源:亿速云 阅读:101 作者:小樊 栏目:系统运维

Chef 是一种基础设施即代码(Infrastructure as Code, IaC)工具,用于自动化服务器配置、应用部署和系统管理。下面从核心概念 → 安装 → 基本使用流程 → 示例 → 最佳实践给你一个完整入门指南。


一、Chef 核心概念

1. 架构组成

  • Chef Server:集中存放配置(Cookbooks、Roles、Environments)
  • Chef Workstation:你本地写代码、测试、上传配置的地方
  • Chef Client(Node):被管理的服务器,定期向 Server 拉取配置并执行

2. 关键术语

名称 说明
Cookbook 配置的基本单元(类似“模块”)
Recipe 具体配置脚本(Ruby 语法)
Resource 配置对象(如 packageservicefile
Attribute 节点变量(可覆盖)
Role 定义一类服务器的配置集合
Data Bag 存储敏感/共享数据(如密码)

二、安装 Chef

1. 安装 Workstation

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

验证:

chef --version

2. 安装 Chef Server(示例)

sudo chef-server-ctl reconfigure

3. 节点安装 Chef Client

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

三、基本使用流程

1. 初始化项目

chef generate repo my_infra
cd my_infra

2. 生成 Cookbook

chef generate cookbook cookbooks/nginx

目录结构:

nginx/
├── recipes
│   └── default.rb
├── attributes
├── templates
└── metadata.rb

四、写一个配置示例(安装 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

上传到 Chef Server

knife cookbook upload nginx

五、将配置应用到服务器

1. 添加节点

knife bootstrap 192.168.1.10 \
  -x ubuntu -P password \
  -N web-server-01

2. 给节点分配 Recipe

knife node run_list add web-server-01 'recipe[nginx]'

3. 手动触发配置

在节点上:

sudo chef-client

六、使用 Role(推荐)

knife role create web

web.rb

name "web"
run_list "recipe[nginx]"

应用:

knife node run_list set web-server-01 'role[web]'

七、常用 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

八、最佳实践

✅ 使用 Cookbook + Role 分层管理
✅ 敏感信息放 Data Bag / Vault
✅ 使用 Test Kitchen 做本地测试
✅ CI/CD 中自动 chef-client
✅ 避免手写 Shell,用 Resource


九、学习路径建议

  1. 官方文档:https://docs.chef.io
  2. 练习:搭 1 台 Server + 2 台 Node
  3. 进阶:Berksfile、Policyfile、Habitat

如果你愿意,我可以:

  • 给你一个 完整可运行示例仓库
  • 对比 Chef vs Ansible vs Terraform
  • 帮你设计 生产级 Chef 架构

你想从哪一步继续?

向AI问一下细节

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

AI