puppet tag 变量
1 概述这里介绍tag 和 变量的相关用法
2 tag
为资源定义tag,tag表示标签,只执行某些资源,而不全部执行脚本中的所有资源,tag可以同时指定多个,用中括号括起来,用逗号分开,tag可以放在任何资源中
- type {
- 'title': ... tag = > 'TAG1',
- }
- type {
- 'title': ... tag = > ['TAG1', 'TAG2', ...],
- }
手动调用:
- puppet apply --tags TAG1,TAG2,... FILE.PP
例子
- vim service.pp package {
- 'redis': ensure = > latest,
- }
- file {
- 'redis.conf': path = > '/etc/redis.conf',
- source = > '/root/redis.conf',
- ensure = > file,
- mode = > '0644',
- owner = > redis,
- group = > root,
- notify = > Service['redis'],
- tag = > 'cpfile',
- }
- service {
- 'redis': ensure = > running,
- enable = > true,
- hasrestart = > true,
- restart = > 'systemctl restart redis',
- # subscribe = > File['redis.conf'],
- tag = > "onlyrestart",
- }
- Package['redis'] - > File['redis.conf'] ~ > Service['redis']
执行
- puppet apply --tags onlyrestart service.pp
- puppet apply --tags cpfile service.pp
备注,这里要注意资源间的依赖关系,比如我们执行cpfile这个tag,当redis的配置模板发生了改变,则会引起Service['redis']这段资源也要执行。
3 变量
puppet variable:
$variable_name=value
数据类型:
字符型:引号可有可无;但单引号为强引用,双引号为弱引用;
数值型:默认均识别为字符串,仅在数值上下文才以数值对待;
数组:[]中以逗号分隔元素列表;
布尔型值:true, false;
hash:{}中以逗号分隔k/v数据列表; 键为字符型,值为任意puppet支持的类型;{ 'mon' => 'Monday', 'tue' => 'Tuesday', };
undef:未定义 ;表示为空
正则表达式:
(?<ENABLED OPTION>:<PATTERN>)
(?-<DISABLED OPTION>:<PATTERN>)
OPTIONS:
i:忽略字符大小写;
m:把.当换行符;
x:忽略<PATTERN>中的空白字符
(?i-mx:PATTERN),其中,减号是禁用的意思
不能赋值给变量 ,仅能用在接受=~或!~操作符的位置;
例子
通过变量安装tree服务包
- $pkgname = 'tree'
- package{'installpkg':
- name => "$pkgname",
- ensure => latest,
- }
以上配置等价于如下的配置
- $pkgname = 'tree'
- package{"$pkgname":
- ensure => latest,
- }
puppet的变量种类:
facts:系统信息检查,
由facter提供;factor安装puppet时会同时被安装,facter -p显示当前的内建变量
内建变量:
master端变量
$servername, $serverip, $serverversion
agent端变量
$clientcert, $clientversion, $environment
parser变量
$module_name
用户自定义变量:
变量有作用域,称为Scope;
top scope: $::var_name,全局作用域(根作用域),用双冒号隔开表示根开始
node scope:节点作用域
class scope:类作用域,类可以嵌套
例子如下
- $: :node: :class1: :class2: :var_name
Puppet 之 tag 和 变量介绍
puppet tag 变量
原文:http://blog.51cto.com/ghbsunny/2044309
来源: http://www.bubuko.com/infodetail-2407384.html