温馨提示×

温馨提示×

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

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

Chef配置文件怎么写

发布时间:2026-07-18 02:56:18 来源:亿速云 阅读:96 作者:小樊 栏目:系统运维

Chef 的配置文件主要有几种类型,取决于你是写 Cookbook(菜谱)节点属性,还是 Chef Infra 客户端(client.rb) 等。下面按常见场景说明,并给示例。


一、Chef 常见配置文件类型

类型 作用
client.rb Chef Infra Client 的配置
metadata.rb Cookbook 的元信息
recipes/default.rb 执行逻辑(最重要)
attributes/default.rb 设置节点属性
templates 配置文件模板
files 静态文件

二、client.rb(Chef Client 配置)

通常位于 /etc/chef/client.rb

log_level        :info
log_location     STDOUT

chef_server_url  "https://chef.example.com/organizations/myorg"
node_name        "web01"
client_key       "/etc/chef/web01.pem"

ssl_verify_mode  :verify_peer

常用选项

  • chef_server_url:Chef Server 地址
  • node_name:节点名
  • client_key:节点密钥
  • log_level:日志级别(:info, :debug

三、Cookbook 结构(最常用)

my_cookbook/
├── metadata.rb
├── recipes/
│   └── default.rb
├── attributes/
│   └── default.rb
├── templates/
│   └── default/
│       └── nginx.conf.erb
└── files/

四、metadata.rb(Cookbook 元信息)

name             'my_cookbook'
version          '1.0.0'
maintainer       'Chef User'
license          'Apache-2.0'
description      'Install and configure nginx'

depends          'nginx'

五、recipes/default.rb(执行逻辑)

示例:安装 Nginx

package 'nginx' do
  action :install
end

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

template '/etc/nginx/nginx.conf' do
  source 'nginx.conf.erb'
  owner 'root'
  group 'root'
  mode '0644'
  notifies :reload, 'service[nginx]'
end

六、attributes/default.rb(属性配置)

default['nginx']['port'] = 80
default['nginx']['user'] = 'www-data'

在 recipe 中使用:

node['nginx']['port']

七、templates 示例(ERB 模板)

templates/default/nginx.conf.erb

user <%= node['nginx']['user'] %>;
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    server {
        listen <%= node['nginx']['port'] %>;
        server_name localhost;
    }
}

八、简单示例总结(最小可用)

# recipes/default.rb
package 'nginx'

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

九、调试与测试

# 本地检查语法
chef-client --local-mode --why-run

如果你有 具体场景(如:写 systemd、写数据库配置、多环境差异配置、Windows Chef),我可以给你更贴合的示例。

向AI问一下细节

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

AI