puppet 配置 4 条件语法

作用

puppet 与其他语言一样, 可以通过正则匹配, 通过判断, 循环, case 等语法进行管理
本文会对 puppet 一些条件语法进行介绍

比较

在 puppet 中, 有下面几种常见的比较方法, 参考下面表格

表达式作用例子
!if ( ! $myvar )
andif ( $myvar > 10 and $osfamily == ‘RedHat’ )
orif ( $myvar > 10 or $osfamily == ‘RedHat’ )
in包含if ( $var in $array )
* 与 /数学运算3 * 4 / 2
- 与 +数学运算4 + 3 - 5
<< 与 >>左右位移NULL
== 与 !=相等不等比较if ( $osfamily == ‘RedHat’ )
>= <= > <大小比较if ( $myvar > 10 )
=~正则匹配if ( $::operatingsystemrelease =~ /^5/ )

判断

puppet 支持“if”"unless”“case” “selectors” 等语法

if

参考 if 判断语法

1.  直接判断变量,  
2.  判断 true, false
3.  判断函数返回结果
4.  可以结合  and,  or 使用
5.  配合正则使用

范例

if $is_virtual == 'true' {
	warning('Tried to include class ntp on virtual machine; this node may be misclassified.')
}
elsif $operatingsystem == 'Darwin' {
	warning('This NTP module does not yet work on our Mac laptops.')
}
else {
	include ntp
}

参考正则判断语法

if $hostname =~ /^www(\d+)\./ {
      notice("Welcome to web server number $1")
}

unless

参考 unless 语法

1.  直接判断变量,  
2.  判断 true, false
3.  判断函数返回结果
4.  不支持  and,  or 使用
5.  可以配合正则使用
6.  unless 与 if 语法类似, 但没有 else,  elsif 等多重判断
7.  只有当判断为 false 时候才会执行进行代码块中内容
8.  不匹配任何条件, 则执行 default 部分代码

范例:

unless $memorysize > 1024 {
	$maxclient = 500
}

case

参考 case 语法

case $operatingsystem {
	'Solaris':          { include role::solaris }
	'RedHat', 'CentOS': { include role::redhat  }
	/^(Debian|Ubuntu)$/:{ include role::debian  }
	default:            { include role::generic }
}

selector

参考 selector 语法

1.  类似 case 语法, 但只会返回结果, 而没有代码直接执行功能
2.  selector 执行后的结果是返回值
3.  返回值可以用于作为变量赋值
4.  返回值可以作为资源属性
5.  返回值可以作为函数参数
6.  返回值可以用于资源 titile

范例:

$rootgroup = $osfamily ? {
        'Solaris'          => 'wheel',
        /(Darwin|FreeBSD)/ => 'wheel',
        default            => 'root',
}

file { '/etc/passwd':
      ensure => file,
      owner  => 'root',
      group  => $rootgroup,
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值