下面给你一个从概念到上手的 Puppet 配置管理实践指南,适合初学者到中等水平使用。
Puppet 是一种声明式配置管理工具,用来:
核心思想:
你描述“目标状态”,Puppet 负责让系统变成这个状态
Agent 请求配置
→ Master 编译 Catalog
→ Agent 应用配置
→ 报告结果
Puppet 管理的最小单位
常见资源类型:
file:文件package:软件包service:服务user:用户示例:
file { '/etc/motd':
ensure => file,
content => "Welcome to Puppet Managed Server\n",
}
.pp 文件,描述资源配置
package { 'nginx':
ensure => installed,
}
service { 'nginx':
ensure => running,
enable => true,
}
用于组织资源
class nginx {
package { 'nginx':
ensure => installed,
}
service { 'nginx':
ensure => running,
enable => true,
}
}
使用:
include nginx
不同服务器不同配置
node 'web01.example.com' {
include nginx
}
node 'db01.example.com' {
include mysql
}
manifests/
├── site.pp
modules/
└── nginx/
├── manifests/init.pp
└── files/nginx.conf
node default {
include nginx
}
class nginx {
package { 'nginx':
ensure => installed,
}
file { '/etc/nginx/nginx.conf':
source => 'puppet:///modules/nginx/nginx.conf',
notify => Service['nginx'],
}
service { 'nginx':
ensure => running,
enable => true,
}
}
puppet agent --test
puppet master --compile node_name
puppet parser validate file.pp
✅ 使用 模块(module) 而不是写大文件
✅ 使用 Hiera 做参数分离(环境/主机差异)
✅ 控制变更频率(生产环境定时跑)
✅ 配合 Git 管理 Puppet 代码
✅ 先 dry-run,再正式应用
| 对比项 | Puppet | Ansible |
|---|---|---|
| 模型 | 声明式 | 命令式 |
| Agent | 有 | 无 |
| 适合 | 长期配置管理 | 临时/部署任务 |
如果你愿意,我可以:
你目前是打算用在 学习 / 公司生产 / 考试认证 哪种场景?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。