集中管理利器-puppet快速入门-下
# tree manifests/manifests/
|-- init.pp
|-- nodes
| `-- nodes.pp
|-- site.pp
|-- site.pp_normal
`-- site.ppaa
1 directory, 5 files
# pwd
/etc/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
# 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",
}
}
# catmodules/mysql/manifests/init.pp
class mysql::mysql{
include mysql::install,mysql::config
}
# catmodules/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"],
}
}
# catmodules/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为单位
}
}
页:
[1]