天天看點

puppet自動化運維之tag标簽puppet自動化運維之tag标簽

   标簽能更好的讓puppet識别一段代碼。同時,用戶端也可以執行指定的tag,而不需要全部都執行。

tag元參數,用于标簽資源;

tag函數,用于标簽容器;

tagged函數,用于判斷一個容器,是否有某個标簽,即用于檢查tag函數。

puppet的自動配置設定标簽分兩種:資源和容器。預設是以自己的類型,作為标簽名。

資源自動配置設定标簽的特點:

       ①自己的資源類型;

       ②title;

       ③所在容器的類型;

       ④所在容器的tital和每個命名空間;

       ⑤繼承的tag。

容器自動配置設定标簽的特點:

       ①自己的類型;

       ②title和每個命名空間;

注:凡title的内容有“/”,該title不會被添加為标簽名。

#title含/

file {"/tmp/filebucket":

       ensure   => file,

       content   => "hello wrold",

}

#title不含/

file {"filebucket":

       path   => "/tmp/filebucke ",

       一般用于,各種資源,可以使用數組。

格式:

       tag => "标簽名",

       tag => ["标簽名1",…, "标簽名n"],

注:可放入到任何一類資源。

例:

#

cron { "run-puppet":

          command => "/usr/sbin/puppet agent --server=master.perofu.com   --test >/dev/null    2>&1",

          minute => inline_template("<%= (hostname+name).hash.abs % 60   %>"),

          tag => "cron_test",

# HEADER: This file was autogenerated at   Fri Mar 21 15:24:59 +0800 2014 by puppet.

# HEADER: While it can still be managed   manually, it is definitely not recommended.

# HEADER: Note particularly that the   comments starting with 'Puppet Name' should

# HEADER: not be deleted, as doing so   could cause duplicate cron jobs.

info: Caching catalog for master.perofu.com

info: Applying configuration version   '1395386333'

notice:   /Stage[main]//Cron[run-puppet]/ensure: created

notice: Finished catalog run in 0.04   seconds

# HEADER: This file was autogenerated at   Fri Mar 21 15:43:55 +0800 2014 by puppet.

# Puppet Name:   run-puppet

32 * * * *   /usr/sbin/puppet agent --server=master.perofu.com --test >/dev/null  2>&1

       tag函數可以為容器添加标簽,類名,預設就是标簽名,個人了解:容器差不多是類,因為類用的多。

       如果使用者想添加另外的tag,需要在class的第一行,進行定義。

       class   類名{

              tag("标簽名")

              …….

#容器的标簽名現在有兩個:ssh和security

class ssh{

       tag("security")

       service{"sshd":

              ensure => running,

              enable => true,

       }

    判斷一個容器的标簽,即tag函數,是否被定義過。

vi site.pp

if tagged("sss"){

    $a="The tag is sss"

} else {

    $a="The tag is NONE"

file {"/tmp/temp.txt"

    content => "$a",

cat /tmp/temp.txt

The tag is NONE

    可檢視/var/lib/puppet/reports/節點/yaml

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

上一篇: Python--函數