多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 资源的审计 不是每个问题都有技术性的答案。我曾经诊断过一台服务器,它对 ping、SSH 或控制台连接均无响应。 我不能确定这到底是硬件故障还是软件故障。 当我电话询问主机所在位置的站点客服时,奥秘最终被揭开了。他们告诉我: 先期抵达的两名不明身份的男子,进入大厦直奔服务器机房,拔下了机器,并轻易地将机器带出了大厦。 后来我们发现,在机房所在的地区(Missouri,M.O.)曾发生过一连串的电脑失窃案。 从这个案例获得的重要信息是:最终知道了谁对你的服务器做了些什么,这还是不错的。 模拟运行模式(使用 --noop 开关)审计由 Puppet 控制的任何机器的变化是一种简单的方法。 然而,Puppet 还有一个专门的审计功能,它可以报告资源或特定属性的变化。 #### 操作步骤 使用 audit 元参数定义一个资源: ``` file { "/etc/passwd": audit => [ owner, mode ], } ``` #### 工作原理 **元参数**(**metaparameter**)是一种可以应用到任何资源的参数,不仅用于指定类型。 audit 元参数告诉 Puppet,你想要记录和监视关于这个资源的某些事件。 其值可以是你要审计的一个参数列表。 在本例中,一旦 Puppet 运行,它就开始记录 /etc/passwd 文件的属主和权限模式。 无论是属主改变还是权限改变,例如:如果你运行了如下命令: ``` # chmod 666 /etc/passwd ``` 当下一次运行 Puppet 时,它将会察觉到这个变化并将其记入日志: ``` notice: /Stage[main]//Node[cookbook]/File[/etc/passwd]/mode: audit change: previously recorded value 644 has been changed to 666 ``` #### 更多用法 对于需要审记大型网络中的机器所做的任何改变(无论是恶意的还是意外的)的情况, 使用 audit 特性是非常有用的。 你还可以使用 tagmail 报告特性通过 e-mail 自动发送审计通知信息。 对于要时刻关注不被 Puppet 管理的任何事物(例如生产服务器上的应用程序代码)的情况, 使用 audit 特性也是非常方便的。 你可以从 [http://www.puppetlabs.com/blog/allabout-auditing-with-puppet/](http://www.puppetlabs.com/blog/allabout-auditing-with-puppet/) 获取更多关于 Puppet 审计能力的信息。 如果你希望审计一个资源的一切,可以使用如下的代码: ``` file { "/etc/passwd": audit => all, } ``` #### 参见本书 * 第 2 章的 [测试你的 Puppet 配置清单](#ch02sec06) 一节 * 第 2 章的 [通过 Email 发送包含特定标签的日志信息](#ch02sec02) 一节