Puppet自动化服务资源

Service资源

管理系统运行的服务进程,不幸的是不同的系统管理服务的方式是多样的. 有些系统上面对于服务管理很简单,有些系统提供复杂的强大的服务管理功能.puppet提供最基本的服务管理,你也可以指定provider,使用一些特性.

参数

Binary:运行服务的命令的路径, 只用于不支持init的操作系统, 如果没有指定启动脚本,就用这个命令来启动服务.

Enable:服务在开机的时候是否启动,可以设置的值是truefalse,需要provider支持enableable

Ensure:是否运行服务, running表示运行服务,stopped 表示停止服务

Hasrestart:指出管理脚本是否支持restart参数,如果不支持,就用stopstart实现restart效果. 可以设置的值是true false

Hasstatus:指出管理脚本是否支持status参数,puppetstatus参数来判断服务是否已经在运行了,如果不支持status参数,puppet利用查找运行进程列表里面是否有服务名来判断服务是否在运行. 可以设置的值是truefalse

Name:该资源的namevar, 服务的名字,通常就是在/etc/init.d/目录下的名字

Path:启动脚本的搜索路径,可以用冒号分割多个路径,或者用数组指定.

Pattern:设置搜索进程列表的匹配字符串,用于不支持init脚本的系统.当要停止一个服务的时候,通过查看进程运行列表来判断.

Provider:根据不通系统,用不同的方式管理服务

Restart:指定重启脚本,否则就先停止该服务再启动该服务

Start:指定启动服务的命令,通常init模式的管理脚本都支持,不需要手工指定

Status:指定status命令,如果不指定,就从进程列表查询该服务

Stop:指定停止服务的脚本.

Host资源       

对大部分系统来说,这些实体就在 /etc/hosts文件中。

参数

host_aliases:主机能有任意别名。多个值需要指定为一个数组。

Ensure:确定该主机是否启用,有效值present absent

Ip:主机的IP地址,ipv4ipv6

Name:主机名称

Provider:提供商使用指定的后端,一般很少会指定这点

 类的继承

  1. class bind::server { 
  2.  
  3. service { 
  4.  
  5. "bind"
  6.  
  7. hasstatus => true, 
  8.  
  9. hasrestart => true, 
  10.  
  11. enable => true, 
  12.  
  13.  
  14.  
  15. class bind::server::enabled inherits bind::server { 
  16.  
  17. Service["bind"] { ensure => running, enable => true } 
  18.  
  19.  
  20. class bind::server::disabled inherits bind::server { 
  21.  
  22. Service["bind"] { ensure => stopped, enable => false } 
  23.