jydg 发表于 2018-8-2 13:37:18

集中管理利器-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]
查看完整版本: 集中管理利器-puppet快速入门-下