Puppet 是一套成熟的 基础设施即代码(IaC) 配置管理工具,用来对大量服务器进行统一、可重复、自动化的配置管理。下面从原理到实践说明它是如何管理服务器配置的。
典型 Puppet 环境包括:
也有 Puppet Standalone(无 Master) 模式,适合小规模或测试。
✅ 特点:声明式管理(Desired State)
Puppet 用资源描述系统对象,例如:
file { '/etc/motd':
ensure => file,
content => "Welcome to Puppet managed server\n",
}
package { 'nginx':
ensure => installed,
}
service { 'nginx':
ensure => running,
enable => true,
}
常见资源类型:
filepackageserviceusercronexec.pp示例:
class webserver {
package { 'httpd': ensure => installed }
service { 'httpd': ensure => running }
}
根据主机分配不同配置:
node 'web01.example.com' {
include webserver
}
node 'db01.example.com' {
include database
}
目录结构示例:
modules/nginx/
├── manifests/
│ └── init.pp
├── files/
├── templates/
使用:
include nginx
puppetlabs-ntp、puppet-nginx$fqdn = $facts['fqdn']
动态生成配置文件:
file { '/etc/nginx/nginx.conf':
content => template('nginx/nginx.conf.erb'),
}
class base {
package { 'vim': ensure => installed }
file { '/etc/motd':
content => "Managed by Puppet\n"
}
}
node default {
include base
}
如果你愿意,我可以进一步:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。