天天看點

puppet自動化運維之service資源

作用:

①.管理服務的狀态;

    ②.服務能夠在配置檔案更改的情況下自動重新開機。

格式:

1、service資源常用屬性

service {'資源标題':

    binary

    enable

    ensure

    hasrestart

    hasstatus

    name

    path

    pattern

    restart

    start

    status

    stop

    provider

◆ enable:指定服務在開機的時候是否啟動,可以設定true和false。

◆ ensure:是否運作服務,running表示運作,stopped表示停止服務。

◆ name:守護程序的名字。

◆ path:啟動腳本搜尋路徑。

◆ hasrestart:指出管理腳本是否支援restart參數,如果不支援,就用stop和start實作restart效果。

◆ hasstatus:指出管理腳本是否支援status參數,puppet用status參數來判斷服務是否已經在運作了,如果不支援status參數,puppet利用查找運作程序清單裡面是否有服務名來判斷服務是否在運作。

◆ provider:預設為init。

service {"title":                   #服務名, 通常就是在/etc/init.d/目錄下的名字

    ensure => {running|stopped},    #目前service的狀态

    enable => {true|false},         #service是否開機啟動,chkconfig

    [status|start|stop|restart] => "cmd",   #指定要執行的完整指令,當且僅當,啟動腳本不在/etc/init.d/下的

    path => "目錄", #啟動腳本的搜尋路徑,可以用冒号分割多個路徑,或者用數組指定

    hasrestart => {true|false},     #是否支援restart參數,如果不支援,就用stop和start實作restart效果.

    hasstatus => {true|false},      #是從指令行status查詢還是從程序表(有沒有該程序)中,查詢service的狀态

    provider =>   base|daemontools|init; #預設為init

}

執行個體: 

#vsftpd,啟動且開機自起

vi /etc/puppet/manifest/test.pp

service {"vsftpd":

        ensure =>   running,

        enable =>   true;

#檢查

vsftpd is stopped

vsftpd            0:off   1:off   2:off     3:off   4:off   5:off     6:off

info: Caching catalog for client.perofu.com

info: Applying configuration version '1395069819'

notice: /Stage[main]//Service[vsftpd]/ensure: ensure changed 'stopped' to 'running'

notice: Finished catalog run in 0.38 seconds

vsftpd (pid 20118) is running...

vsftpd            0:off   1:off   2:on      3:on    4:on    5:on      6:off

#源碼

service {"httpd":

    ensure =>   running,

    #restart => "/usr/local/apache2/bin/apachectl restart",

    hasrestart =>   "true",

    subscribe => File["/etc/httpd/httpd.conf"]

subscribe

檢測某個資源,當它發生變化時,該資源會重新加載,如:

class nagios {

file { “/etc/nagios/nagios.conf”:

source => “puppet://server/module/nagios.conf”,

alias => nagconf # just to make things easier for me

service { nagios:

ensure => running,

subscribe => File["nagconf"]

當檢測到檔案nagconf被修改時,服務nagios會相應的更新。需要注意的是,目前支援subscribe的資源隻有exec,service和mount。

     本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1845506,如需轉載請自行聯系原作者