在现代 DevOps 实践中,自动化部署是提升效率、减少人为错误的关键。本文将带你从零开始,在 RockyLinux 系统上使用 Chef 实现自动化部署配置。无论你是刚接触运维的小白,还是有一定经验的工程师,都能轻松上手!
Chef 是一个强大的配置管理工具,它允许你通过代码(称为“Recipes”和“Cookbooks”)来定义服务器的状态。这种“基础设施即代码”(Infrastructure as Code, IaC)的方式,让你可以版本化、复用和自动化你的服务器配置。
RockyLinux 是一个稳定、开源、社区驱动的企业级 Linux 发行版,作为 CentOS 的继任者广受欢迎。结合 Chef,你可以构建可重复、可审计、高一致性的服务器环境,非常适合生产部署。
你需要:
Chef Workstation 是开发 Chef 配置的本地工具集。我们先在管理节点(可以是你的本地电脑或另一台 RockyLinux 服务器)上安装它。
在 RockyLinux 上执行以下命令:
# 添加 Chef 官方仓库sudo dnf install -y curlcurl -fsSL https://packages.chef.io/files/current/chef-workstation/24.5.1037/el/9/chef-workstation-24.5.1037-1.el9.x86_64.rpm -o chef-workstation.rpm# 安装 Chef Workstationsudo dnf install -y ./chef-workstation.rpm# 验证安装chef --version
Cookbook 是 Chef 中组织配置代码的基本单元。我们来创建一个简单的 cookbook,用于安装并启动 Nginx Web 服务器。
# 创建 cookbook 目录(建议在用户主目录下)mkdir -p ~/chef-repo/cookbookscd ~/chef-repo# 使用 chef 命令生成新的 cookbookchef generate cookbook cookbooks/my_nginx
进入 my_nginx 目录,编辑 recipes/default.rb 文件:
# 编辑 default.rbnano cookbooks/my_nginx/recipes/default.rb 在文件中写入以下内容:
## Cookbook:: my_nginx# Recipe:: default## 安装 EPEL 仓库(Nginx 在 EPEL 中)package 'epel-release' do action :installend# 安装 Nginxpackage 'nginx' do action :installend# 启动并启用 Nginx 服务service 'nginx' do action [:enable, :start]end# 创建一个简单的欢迎页面file '/usr/share/nginx/html/index.html' do content '<h2>Hello from Chef on RockyLinux!</h2>' owner 'root' group 'root' mode '0644' action :createend
为了快速验证配置是否有效,我们可以使用 chef-client 的本地模式(也称为 Chef Solo 模式)。
# 进入 chef-repo 目录cd ~/chef-repo# 创建运行列表文件 run_list.jsonecho '{"run_list":["recipe[my_nginx]"]}' > run_list.json# 以本地模式运行 chef-clientsudo chef-client --local-mode --config-option cookbook_path=./cookbooks --json-attributes run_list.json
如果一切顺利,你会看到 Chef 成功安装并启动了 Nginx。打开浏览器访问服务器 IP,就能看到 “Hello from Chef on RockyLinux!” 页面。
对于多台服务器的管理,建议部署 Chef Infra Server 作为中央配置中心。你可以将 Cookbooks 上传到 Server,然后在目标节点(RockyLinux 服务器)上安装 chef-client 并注册到 Server,实现集中化管理。
通过本教程,你已经掌握了如何在 RockyLinux 上使用 Chef 实现基础的自动化部署配置。这正是 DevOps 自动化 和 基础设施即代码 的核心实践之一。随着你对 Chef 的深入学习,可以管理更复杂的系统,如数据库、应用集群、安全策略等。
记住,自动化不是一次性的任务,而是持续改进的过程。善用版本控制(如 Git)管理你的 Cookbooks,让每一次变更都可追溯、可回滚。
现在,就去尝试用 Chef 自动化你的第一台 RockyLinux 服务器吧!
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128465.html