Puppet 资源公有属性的其他描述方式

puppet的资源公有属性中还可以通过"->"和"~>"两种特殊符号来描述资源与资源之间的关系.

->:用于表示资源与资源之间的先后关系,等同于before和require两个资源公有属性.

~>:用于表示资源之间的通知,等同于notify和subscribe练个资源公有属性.

示例: "->"用法

安装httpd并运行httpd服务的puppet代码如下:

[root@sh-web1 ~]# cat httpd2.pp
package {"httpd":ensure => present,provider => 'yum',
}
service {"httpd":ensure => running,enable => true,
}
Package["httpd"] -> Service["httpd"]

运行结果:

[root@sh-web1 ~]# puppet apply httpd2.pp
Notice: Compiled catalog for sh-web1.localdomain in environment production in 0.06 seconds
Notice: /Stage[main]/Main/Package[httpd]/ensure: created
Notice: /Stage[main]/Main/Service[httpd]/ensure: ensure changed 'stopped' to 'running'
Notice: Finished catalog run in 3.02 seconds
[root@sh-web1 ~]# /etc/init.d/httpd status
httpd (pid  81254) is running...

示例: "~>"用法

[root@sh-web1 ~]# cat httpd.pp
package {"httpd":ensure => present,provider => 'yum',
}
service {"httpd":ensure => running,enable => true,
}
file {'/etc/httpd/conf/httpd.conf':ensure => file,
}
Package["httpd"] -> File ['/etc/httpd/conf/httpd.conf'] ~> Service["httpd"]

运行结果:

[root@sh-web1 ~]# puppet apply httpd.pp
Notice: Compiled catalog for sh-web1.localdomain in environment production in 0.07 seconds
Notice: /Stage[main]/Main/Package[httpd]/ensure: created
Notice: /Stage[main]/Main/Service[httpd]/ensure: ensure changed 'stopped' to 'running'
Notice: Finished catalog run in 3.25 seconds
[root@sh-web1 ~]# /etc/init.d/httpd status
httpd (pid  81493) is running...

生产上并不会像上面那样去写,一个资源可能很大,篇幅很长.

如下两种写法:

第一种:

[root@sh-web1 ~]# cat httpd2.pp
package {"httpd":ensure => present,
provider => 'yum',
}
->
service {"httpd":ensure => running,
enable => true,
}

第二种:

[root@sh-web1 ~]# cat httpd2.pp
package {"httpd":ensure => present,provider => 'yum',
} ->
service {"httpd":ensure => running,enable => true,
}
[root@sh-web1 ~]# puppet apply httpd2.pp
Notice: Compiled catalog for sh-web1.localdomain in environment production in 0.04 seconds
Notice: /Stage[main]/Main/Package[httpd]/ensure: created
Notice: /Stage[main]/Main/Service[httpd]/ensure: ensure changed 'stopped' to 'running'
Notice: Finished catalog run in 2.28 seconds

注意:大部分都是第二种写法,"->"或"~>"跟在花括号的后面,但是个人习惯用第一种反正更新puppet不报错也能得到想要结果就ok.

audit审计

audit资源公有属性主要用于资源属性的审计,当某资源状态变化时,它可以将变化的内容抓夹到系统日志中.

puppet代码如下:

[root@sh-web1 ~]# cat file.pp
file {"/etc/password":audit => [ owner,mode ],
}

运行过程,会看到改变通知.

[root@sh-web1 ~]# puppet apply file.pp
Notice: Compiled catalog for sh-web1.localdomain in environment production in 0.07 seconds
Notice: /Stage[main]/Main/File[/etc/password]/owner: audit change: newly-recorded value absent
Notice: /Stage[main]/Main/File[/etc/password]/mode: audit change: newly-recorded value absent
Notice: Finished catalog run in 0.05 seconds

Puppet 资源公有属性的其他描述方式(三十)相关推荐

  1. js图解之-图解静态、私有、公有属性和方法的区别

    js图解之-图解静态方法.私有方法.公有方法区别 首先,在方法之前,我们需要先铺垫一下我们的基础知识,从一砖一瓦开始,最终解决我们的问题 一.什么是面向对象 面向对象是一个伟大的编程思想, 本质:创建 ...

  2. day4(定义类,公有,私有方法,静态方法,原形方式的属性和方法)

    <script type="text/javascript">//定义类和方法function Person(){this.name="人";//定 ...

  3. Python 类—类属性(私有属性、公有属性、实例属性、局部变量)类方法(实例方法、静态方法)

    1. 创建类 类是对某个对象的定义,它包含有关对象动作方式的信息,包括它的名称.方法.属性和事件.类不存在于内存中,因此它本身并不是对象.当程序运行需要引用类的代码时,就会在内存中创建一个类的新实例, ...

  4. 类属性、类方法;私有属性、公有属性;私有方法、公有方法;静态属性、静态方法;python的命名规范__xx__\__xx\_xx(自用笔记)

    Ⅰ.类属性.类方法(类和实例都能调用类属性和类方法) 类是一个特殊的对象,Python 中 一切皆对象:class AAA: #定义的类属于 类对象obj1 = AAA() #属于 实例对象 除了封装 ...

  5. Python 中的属性访问与描述符

    在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问.一般而言,点(. ...

  6. python描述符与实例属性_Python 中的属性访问与描述符

    在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问.一般而言,点(. ...

  7. Swift:带有私有设置方法的公有属性

    作者:Thomas Hanning,原文链接,原文日期:2015-12-24 译者:小袋子:校对:lfb_CD:定稿:Cee Swift 可以很方便地创建带有私有设置方法的公有属性.这可以让你的代码更 ...

  8. python 类 公有属性、私有属性、公有方法、私有方法

    python 类 公有属性.私有属性.公有方法.私有方法 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Int ...

  9. 第174天:面向对象——公有属性、私有属性和静态属性

    一.公有属性和私有属性 1 //对象构造函数 2 //私有属性好处: 安全 就类似闭包中的函数一样 减少污染 3 function Person(name){ 4 //私有属性,只能在对象构造函数内部 ...

最新文章

  1. Codeforces Hello 2019 D. Makoto and a Blackboard[DP+数论+概率期望]
  2. QT的QStyleOption类的使用
  3. Android代码混淆方法,Android 代码混淆零基础入门
  4. symfony app dev.php,Symfony 2:404未找到当tryes打开/app_dev.php时出错
  5. 6大理由告诉你为什么这次区块链大会必须参加
  6. 汽车自动驾驶技术与产品研发仿真测试软件—panosim(一)
  7. 移动端浏览器识别PHP,PHP判断访客是否移动端浏览器访问
  8. matlab各相关系数的计算,matlab 相关系数的计算
  9. 全国计算机能力挑战赛含金量高吗,大学里,有哪些含金量高,又容易得奖的国家级比赛?...
  10. LSB算法的扩展延伸
  11. namecheap域名如何绑定IP
  12. Three.js修改模型中心点
  13. 7、WiFi共享大师
  14. 华硕笔记本全硬盘恢复原厂状态 实机操作,MYASUS IN WINRE恢复,ASUS RECOVERY恢复
  15. 测量学matlab使用心得,测量学实习心得体会4篇
  16. 文献阅读 ——— Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP
  17. C#模仿腾讯QQ源码下载(附效果图)_张童瑶的博客
  18. pyecharts制作中国地图
  19. Word连续引用[1, 2] [3-5]
  20. java ace admin_ace-admin-master

热门文章

  1. 关于session丢失原因的分析
  2. JZOJ5944信标
  3. [HAOI2007]理想的正方形
  4. python 的zip 函数小例子
  5. matlab中数组创建方法
  6. 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用
  7. vim: 远程登陆服务器时可能出现的: 方向键,回退符不能正常使用
  8. FZU 2082 过路费
  9. knockoutJS学习笔记06:ko数组与模板绑定
  10. hdoj - 1258 Sum It Up hdoj - 1016 Prime Ring Problem (简单dfs)