参考资料:Pro puppet
http://docs.puppetlabs.com/
续http://urchin.blog.51cto.com/4356076/986571
使用puppet模块管理mysql
模块的目录结构
- modules/mysql/
- ├── files
- │ └── my.cnf
- ├── manifests
- │ ├── config.pp
- │ ├── init.pp
- │ ├── install.pp
- │ └── service.pp
- └── templates
mysql::install类
- # vi ../modules/mysql/manifests/install.pp
- class mysql::install {
- package { ["mysql", "mysql-server", "mysql-test", "mysql-devel" ]:
- ensure => present,
- require => User["mysql"],
- }
- user { "mysql": ##资源类型:用户
- ensure => present,
- comment => "mysql user",##/etc/passwd文件第五段信息
- gid => "mysql", ##用户的组
- shell => "/bin/false", ##用户的shell
- require => Group["mysql"],##mysql用户依赖于mysql组
- }
- group { "mysql": ##资源类型:组
- ensure => present,
- }
- }
mysql::conifg类
- # vi ../modules/mysql/manifests/config.pp
- class mysql::config {
- file { "/etc/my.cnf":
- ensure => present,
- source => "puppet:///modules/mysql/my.cnf",
- owner => 'mysql',
- group => 'mysql',
- require => Class["mysql::install"],
- notify => Class["mysql::service"],
- }
- }
mysql::service类
- # vi ../modules/mysql/manifests/service.pp
- class mysql::service {
- service { "mysqld":
- ensure => running,
- hasstatus => true,
- hasrestart => true,
- enable => true,
- require => Class["mysql::config"],
- }
- }
modules/mysql/manifest/init.pp
- # vi ../modules/mysql/manifests/init.pp
- class mysql {
- include mysql::install, mysql::config, mysql::service
- }
../puppet/manifest/nodes.pp
- node 'agent.test.com' {
- include ssh
- include mysql
- }
注:各元参数含义请移至http://urchin.blog.51cto.com/4356076/986571
|