Puppet数据类型中哈希类型和布尔类型(十五)

哈希类型

puppet语言支持hash类型.它与数组类似,都是带索引的对象集合,与数组的区别在于作为索引步进限于数字,可以是任何对象。在puppet中哈希类型的"键"必须是字符串类型,但其"值"可以是任意的类型.

格式如下:

{key1 => "value",key2 => "vale",...}

示例如下:

[[email protected] ~]# cat 4.pp 
$myname = { name1 => lisi, name2 => zhangsan }
notice ($myname[name1])

agent端应用:

[[email protected] ~]# puppet apply 4.pp 
Notice: Scope(Class[main]): lisi
Notice: Compiled catalog for puppet.localdomain in environment production in 0.05 seconds
Notice: Finished catalog run in 0.01 seconds

布尔类型

puppet支持布尔类型,布尔型经常用于函数的返回状态,布尔型只有两个值true(真)或者false(假).在通过布尔型赋值变量时,需要注意不要加双引号("")或者单引号(‘‘)。

正确的赋值方法:

$switch = true
$switch = false

错误的赋值方法:

$switch = "true"
$switch = ‘true‘

安装puppetlabs-stdlib模块库.

[[email protected] ~]# puppet module install puppetlabs-stdlib
Notice: Preparing to install into /etc/puppet/modules ...
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/etc/puppet/modules
└── puppetlabs-stdlib (v4.20.0)

master端的puppet代码文件.

node base {
include admin
}
node /sh-(proxy|web)\d+/  inherits base {
  case $::hostname {
    /sh-proxy\d+/: {
         include apache
         user {"test1":
            ensure => present,
            }
      }
     "sh-web1": {
            include nginx::nginxconf
            include php
            if str2bool ($is_virtual) {#返回值为true就include apache类.
            include apache
            }
         } 
    }
}

agent端更新,初次安装模块更新可能输出信息会比较多.

[[email protected] ~]# puppet agent -t
Notice: Ignoring --listen on onetime run
Info: Retrieving pluginfacts
Info: Retrieving plugin
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/keys.rb]/ensure: defined content as ‘{md5}c10485a3d6c53b6d57a891b9852898de‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/dig44.rb]/ensure: defined content as ‘{md5}3078b97ee941c261944857373d400ed6‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/uriescape.rb]/ensure: defined content as ‘{md5}ba78def2cd0e60bdc4412df6c7b891ec‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_ipv4_address.rb]/ensure: defined content as ‘{md5}593e8f832469cb6a48c5f16ee66c3b2d‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_ipv6_address.rb]/ensure: defined content as ‘{md5}48d3733012818993eae662839183d139‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/glob.rb]/ensure: defined content as ‘{md5}c4106d2aff24f4b5a32b54bf4cd452a2‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_integer.rb]/ensure: defined content as ‘{md5}65aa35f7450794aaadb6ad2c2e114df7‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/validate_re.rb]/ensure: defined content as ‘{md5}42092f592ebf89b8a504b10c900230d8‘
Notice: /File[/var/lib/puppet/lib/puppet/provider/file_line/ruby.rb]/ensure: defined content as ‘{md5}1cf38c2e1e23f0218ff1b0df4517dd0f‘
Notice: /File[/var/lib/puppet/lib/puppet/type]/ensure: created
Notice: /File[/var/lib/puppet/lib/puppet/type/anchor.rb]/ensure: defined content as ‘{md5}bbd36bb49c3b554f8602d8d3df366c0c‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_numeric.rb]/ensure: defined content as ‘{md5}0e36d370262b8bdef2f88f0a3cb5b30e‘
Notice: /File[/var/lib/puppet/lib/facter]/ensure: created
Notice: /File[/var/lib/puppet/lib/facter/puppet_settings.rb]/ensure: defined content as ‘{md5}9438c0839ae28dc52fffb8348ae5124f‘
Notice: /File[/var/lib/puppet/lib/facter/service_provider.rb]/ensure: defined content as ‘{md5}66cc42526eae631e306b397391f1f01c‘
Notice: /File[/var/lib/puppet/lib/facter/util]/ensure: created
Notice: /File[/var/lib/puppet/lib/facter/util/puppet_settings.rb]/ensure: defined content as ‘{md5}9f1d2593d0ae56bfca89d4b9266aeee1‘
Notice: /File[/var/lib/puppet/lib/facter/facter_dot_d.rb]/ensure: defined content as ‘{md5}d71e93183a680ac78bc0389fd50470a0‘
Notice: /File[/var/lib/puppet/lib/facter/root_home.rb]/ensure: defined content as ‘{md5}35702ae0c7410ec4d2101113e2f697fa‘
Notice: /File[/var/lib/puppet/lib/facter/package_provider.rb]/ensure: defined content as ‘{md5}539766a71dfb2f65e94a7c91bf413fcf‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/delete_values.rb]/ensure: defined content as ‘{md5}b410f5618b4a6158a921acb7b2dc628d‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/reject.rb]/ensure: defined content as ‘{md5}689f6a7c961a55fe9dcd240921f4c7f9‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/range.rb]/ensure: defined content as ‘{md5}ab19430b6b9737cf56263eb65d80cba1‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_slength.rb]/ensure: defined content as ‘{md5}6cbcfe15378ca4a780bac786223aacac‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/validate_array.rb]/ensure: defined content as ‘{md5}9052b0026da174636c276a2512cf5acc‘
Notice: /File[/var/lib/puppet/lib/facter/pe_version.rb]/ensure: defined content as ‘{md5}60d47406026c8201e51394227ddf780d‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/pick_default.rb]/ensure: defined content as ‘{md5}ad3ea60262de408767786d37a54d45dc‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/is_a.rb]/ensure: defined content as ‘{md5}9dad7f8c9b75348cd97aca986ac0b29a‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/join.rb]/ensure: defined content as ‘{md5}2ed4f56d296a4535da142e01b11a126d‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/validate_ipv4_address.rb]/ensure: defined content as ‘{md5}4a5039b99ac97cc0447faa343b9f7416‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/strip.rb]/ensure: defined content as ‘{md5}da0ce253cb63a4863f15f9d145217db5‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/upcase.rb]/ensure: defined content as ‘{md5}e875fc4f03adec1ff3b42d22f177441e‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/is_float.rb]/ensure: defined content as ‘{md5}af3bd6bb56878bac8cc4fe4f7564e4f9‘
Notice: /File[/var/lib/puppet/lib/puppet/type/file_line.rb]/ensure: defined content as ‘{md5}7486754fca55fe98d40f268b032b7e6a‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/time.rb]/ensure: defined content as ‘{md5}cd96d1f039f8875af083091e3637190b‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/is_bool.rb]/ensure: defined content as ‘{md5}b8800ff7a11b4e8c03616041e218225f‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/deprecation.rb]/ensure: defined content as ‘{md5}4323210434d36e37977251f906a232b8‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_string.rb]/ensure: defined content as ‘{md5}8afa7b0dcfe17bfbbb5704ad54664cc2‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/is_string.rb]/ensure: defined content as ‘{md5}230e9eabc5c9e1d8d5fb7b3c6c12b300‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/reverse.rb]/ensure: defined content as ‘{md5}209e7ef512963251571c515e2d0aee10‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/type.rb]/ensure: defined content as ‘{md5}4709f7ab8a8aad62d77a3c5d91a3aa08‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/zip.rb]/ensure: defined content as ‘{md5}133f3d4c54640844e656e2e6e790318e‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/ensure_resource.rb]/ensure: defined content as ‘{md5}de703fe63392b939fc2b4392975263de‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_re.rb]/ensure: defined content as ‘{md5}d5963c404e3ac1670553f306221c2655‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/shell_join.rb]/ensure: defined content as ‘{md5}b99a23d5e62e2e1b98accde5c22e45c9‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/validate_ip_address.rb]/ensure: defined content as ‘{md5}65a12af9a2c2a9c70d820d04d19ec891‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/is_function_available.rb]/ensure: defined content as ‘{md5}f13934d6b41561ef54d88cf0da86231b‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/str2saltedsha512.rb]/ensure: defined content as ‘{md5}457ab12e4329494ae6276cfa4f20eb23‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/delete_undef_values.rb]/ensure: defined content as ‘{md5}52beef9ee37f84ed2278a69ec4383125‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/fqdn_rotate.rb]/ensure: defined content as ‘{md5}2483d17df4e6cb25d92b4e8520f30957‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_ip_address.rb]/ensure: defined content as ‘{md5}b23c3d5ce6839e32d0186411147a6a44‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/is_email_address.rb]/ensure: defined content as ‘{md5}1eb786779743e93a7bb9fe8087b38b8d‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/values_at.rb]/ensure: defined content as ‘{md5}f7e6ad2a1126acd4fb5f7fcf9bfc2e2b‘
Notice: /File[/var/lib/puppet/lib/puppet/functions/to_json.rb]/ensure: defined content as ‘{md5}bb6893a3e9eb6c48064c5a3c0bd4a41a‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/getvar.rb]/ensure: defined content as ‘{md5}0c8c5cef7e158e232a8cf6e42c10d0ff‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/strftime.rb]/ensure: defined content as ‘{md5}8f15e2e3732b6d1d357a1fa1826800d4‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/chop.rb]/ensure: defined content as ‘{md5}3beb80906fa3c759945a2664fe510b20‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/ensure_resources.rb]/ensure: defined content as ‘{md5}c92d8b69d6354eda24aa3a13d88177b2‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/is_float.rb]/ensure: defined content as ‘{md5}6257620b98c5099293be7aa4088b88ce‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/parsejson.rb]/ensure: defined content as ‘{md5}15165fd3807d9f3d657697fa854d643d‘
Notice: /File[/var/lib/puppet/lib/puppet/parser/functions/validate_cmd.rb]/ensure: defined content as ‘{md5}7df12370db442eddddcf4dd7a5364b5e‘
Info: Loading facts
Info: Caching catalog for sh-web1.localdomain
Info: Applying configuration version ‘1506348730‘
Notice: /Stage[main]/Admin/Exec[selinux]/returns: executed successfully
Notice: /Stage[main]/Php/Package[php]/ensure: created
Notice: /Stage[main]/Php/Package[php-devel]/ensure: created
Notice: /Stage[main]/Service/Service[httpd]/ensure: ensure changed ‘stopped‘ to ‘running‘
Info: /Service[httpd]: Unscheduling refresh on Service[httpd]
Notice: Finished catalog run in 11.61 seconds

扩展:

puppet-stdlib模块包含2个函数,str2bool和num2boole,str2bool可以将字符串转换为布尔型,numboole可以将数值转换为布尔型.

str2bool

Converts certain strings to a Boolean. This attempts to convert strings that contain the values ‘1‘, ‘true‘, ‘t‘, ‘y‘, or ‘yes‘ to true. Strings that contain values ‘0‘, ‘false‘, ‘f‘, ‘n‘, or ‘no‘, or that are an empty string or undefined are converted to false. Any other value causes an error. These checks are case insensitive.

注释:返回值包含‘1‘, ‘true‘, ‘t‘, ‘y‘, or ‘yes‘判断为true,‘0‘, ‘false‘, ‘f‘, ‘n‘, or ‘no‘判断为false.

时间: 2024-11-08 17:19:16

Puppet数据类型中哈希类型和布尔类型(十五)的相关文章

Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的

bool是LongBool类型. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool.后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型. 这四种类型的布尔值占用内存的数量如下: Boolean 1 Byte ByteBool 1 Byte WordBool 2 Bytes(1 Word) LongBool 4 Bytes(2 Words) 对于ByteBool,WordBool和LongBool三种类型True

ActionScript3游戏中的图像编程(连载四十五)

总目录:http://blog.csdn.net/iloveas2014/article/details/38304477 3.1.1 Flash简单滤镜的共性分析 在模拟Photoshop样式的过程中,我们发现两个毫不相干的滤镜居然会有很多参数出奇地一致.实际上,好多个简单滤镜都有重复,下面我把它们整理成表格供大家查看. 滤镜名称 模糊 强度 距离 颜色/渐变 品质 内外 挖空/隐藏 投影 √ √ √ √ √ √ √ 发光 √ √ √ √ √ 模糊 √ √ 斜角 √ √ √ √ √ √ √ 渐

[原创]ActionScript3游戏中的图像编程(连载三十五)

2.2.8 Photoshop品质初探——杂色 重新回到Photoshop的品质选项,首先,杂色一项似乎更容易理解,我们尝试拖到30%,可以看到投影上多了一些杂点(图 2.29).数值越大,杂色越多,很适合用来模拟锈迹或者羊皮纸等粗糙的表面. 图 2.29 设置30%的杂色 杂色上方的等高线可谓Photoshop图层样式最最精华之处了,下面我们就来探讨一下. 现在先把杂点一项重置为0. [原创]ActionScript3游戏中的图像编程(连载三十五)

ActionScript3游戏中的图像编程(连载三十五)

2.2.8 Photoshop品质初探--杂色 重新回到Photoshop的品质选项,首先,杂色一项似乎更容易理解,我们尝试拖到30%,可以看到投影上多了一些杂点(图 2.29).数值越大,杂色越多,很适合用来模拟锈迹或者羊皮纸等粗糙的表面. 图 2.29 设置30%的杂色 杂色上方的等高线可谓Photoshop图层样式最最精华之处了,下面我们就来探讨一下. 现在先把杂点一项重置为0. ActionScript3游戏中的图像编程(连载三十五)

ActionScript3游戏中的图像编程(连载二十五)

2.1.2 斜面和浮雕样式的制作 现在的文字看起来更像是一张漂浮于半空的小纸片,略显单薄.下面的图层模式中,名字看起来比较有立体感的选项要数“斜面和浮雕”了,我们点一下看看.(图 2.4) 图 2.4 给文字添加斜面和浮雕样式 文字凸起来了,如果觉得有点厚,不好看,怎么办?从上往下看,大小这个属性似乎最容易理解,它大概代表斜面的尺寸.我把大小调整到3,文字确实变薄了.(图 2.5) 图 2.5 斜面大小设置为3的效果 ActionScript3游戏中的图像编程(连载二十五)

Puppet数据类型中[数值类型,数组的使用] (十四)

本文主要写puppet的数据类型中的数值类型和数组的使用,博主puppet为3.8版本,puppet数组的追加功能测试没有成功,官网也没有给出示例,确定是否已经优化或者取消.官网数据类型连接地址 https://docs.puppet.com/puppet/3.8/lang_datatypes.html puppet的数据类型 目前puppet支持字符串类型.数字.数组.哈希.布尔型.undef和正则表达式. 一.字符串类型 定义字符串需要以双引号("")或单引号('')进行声明,在p

MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】

用char(1):可以表示字符或者数字,但是不能直接计算同列的值.存储消耗1个字节 用tinyint:只能表示数字,可以直接计算,存储消耗2个字节 用bit: 只能表示0或1,不能计算,存储消耗小于等于一个字节. 总结: 如果无扩展需求,仅仅表示2值逻辑的话, Bit 绝对是首选 如果有扩展需求,以后可能多余2个值,就用 tinyint char不考虑,写代码时要带单引号,超麻烦 转: MySql数据库类型bit等与JAVA中的对应类型 2018年12月04日 16:43:58 Ming3394

PHP手册-语言参考-类型-Boolean 布尔类型

1. boolean 表达了真值,可以为 true 或 false.两个都不区分大小写. 2. 通常运算符所返回的 boolean 值结果会被传递给控制流程. 3. 当转换为 boolean 时,以下值被认为时 false: 3.1 布尔值 false 本身 3.2 整型值 0 3.3 浮点型值 0.0 3.4 空字符串,以及字符串“0” 3.5 不包括任何元素的数组 3.6 不包括任何成员变量的对象(仅 PHP 4.0适用) 3.7 特殊类型 NULL(包括尚未赋值的变量) 3.8 从空标记生

易宝典文章——玩转Office 365中的Exchange Online服务 之二十五 配置出站垃圾邮件策略通知

企业的邮件服务器应该遵从良好的发件规范,尽量减小发送垃圾邮件和批量邮件到外部邮件系统.这样可以保护企业的邮件服务器发送IP不被收集到垃圾邮件服务器列表中,从而保证从企业的邮件服务器或企业域名发送的邮件,收件方能够正常接收.基于此种情况,出站垃圾邮件筛选即尤为重要,因为它起到了保护企业邮件系统发送邮件的可靠性,同时也保护了企业在商业交往中的信誉和利益.Exchange Online的出站垃圾邮件筛选与入站筛选类似,均有连接筛选和内容筛选构成,但是出站筛选是无法进行配置的.不过可以配置出站垃圾邮件策