创建各模块
[root@node1 modules]
# vim nginx/manifests/init.pp
class nginx {
package{'nginx':
ensure => present,
name => nginx,
}
file{'nginx.conf':
ensure => file,
source
=> 'puppet:///modules/nginx/nginx.conf',
path => '/etc/nginx/nginx.conf',
require => Package['nginx'],
}
service{'nginx':
ensure => true,
enable => true,
subscribe => File['nginx.conf'],
}
}
[root@node1 modules]
# vim php/manifests/init.pp
class php {
package{'php-fpm':
ensure => present,
name => php-fpm,
}
file{'www.conf':
ensure => file,
source
=> 'puppet:///modules/php/www.conf',
path => '/etc/php-fpm.d/www.conf',
require => Package['php-fpm'],
}
service{'php-fpm':
ensure => true,
enable => true,
subscribe => File['www.conf'],
}
}
[root@node1 modules]
# vim mysql/manifests/init.pp
class mysql {
package{'mysql-server':
ensure => present,
name => 'mysql-server',
}
file{'my.cnf',:
ensure => file,
source
=> 'puppet:///modules/mysql/my.cnf',
path => '/etc/my.cnf',
require => Package['mysql-server'],
}
service{'mysqld':
ensure => true,
enable => true,
subscribe => File['my.cnf'],
}
}
[root@node1 modules]
# cd ../manifests/
[root@node1 manifests]
# mkdir server
[root@node1 manifests]
# vim server/node3.pp
node 'node3.scholar.com' {
include mysql
}
[root@node1 manifests]
# vim server/node4.pp
node 'node4.scholar.com' {
include nginx,php
}
[root@node1 manifests]
# vim site.pp
import "server/*.pp"