标簽能更好的讓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,如需轉載請自行聯系原作者