|
[root@pmaster puppet]# tree manifests/
manifests/
|-- init.pp
|-- nodes
| `-- nodes.pp
|-- site.pp
|-- site.pp_normal
`-- site.ppaa
1 directory, 5 files
[root@pmaster puppet]# pwd
/etc/puppet
[root@pmaster puppet]# tree modules/
modules/
|-- mysql
| |-- manifests
| | |-- config.pp
| | |-- init.pp
| | |-- init.ppa
| | |-- install.pp
| | `-- service.pp
| `-- template
| `-- my.cnf.erb
`-- test
`-- manifests
`-- init.pp
5 directories, 7 files
[root@pmaster puppet]# cat modules/mysql/manifests/config.pp
class mysql::config{
file {"/tmp/mysql_test/mysql_test.tgz": ##将pmaster /tmp/files/mysql_test.tgz文件下发到agent /tmp/mysql_test/目录下
source => "puppet://pmaster.example.com/files/mysql_test.tgz",
}
}
[root@pmaster puppet]# cat modules/mysql/manifests/init.pp
class mysql::mysql{
include mysql::install,mysql::config
}
[root@pmaster puppet]# cat modules/mysql/manifests/service.pp
class mysql::service{
service{"mysql":
ensure => running,
hasstatus => true,
hasrestart => true,
enable => true,
name => "mysql",
require => Package["mysql"],
#subscribe => File["/etc/my.cnf"],
}
}
[root@pmaster puppet]# cat modules/mysql/manifests/install.pp
class mysql::install{
exec { "unzip tgz packget":
command => "tar -xvf /tmp/mysql_test/mysql_test.tgz", ###所有命令必须为全路径或者path参数指定命令搜索路径
path => "/usr/bin:/usr/sbin:/bin:/sbin",
cwd => "/tmp/mysql_test", ##命令执行的路径为: /tmp/mysql_test/
creates => "/etc/my.cnf", #当/etc/my.cnf不存在的时候,才会执行该命令
tries => 2, #重试次数
try_sleep => 3, #重试间隔 s为单位
}
} |
|
|