使用puppet模块管理mysql-Obscur
参考资料:Pro puppethttp://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
页:
[1]