码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-09-26 19:43:16      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:puppet数据类型   哈希类型   布尔类型   


哈希类型

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

格式如下:

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


示例如下:

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

 agent端应用:

[root@puppet ~]# 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模块库.

[root@puppet ~]# 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端更新,初次安装模块更新可能输出信息会比较多.

[root@sh-web1 ~]# 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.



本文出自 “青衫解衣” 博客,请务必保留此出处http://215687833.blog.51cto.com/6724358/1968903

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

标签:puppet数据类型   哈希类型   布尔类型   

原文地址:http://215687833.blog.51cto.com/6724358/1968903

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!