puppet 手册之获取环境变量信息

[导读]

本小节是接着上一篇,编写跨平台,可重用的代码, 本小节我们将学习如何获取环境变量信息,

内容较少,但是大家还是要仔细看看,需要好好学习,按字面的意思是获取环境信息,但是

文章内容却是通过facter 获取得客户端的信息.facts可以自定义,可以用ruby代码去写.

那我们还是先学习,如何使用facter 获取信息.

[正文]

获取环境变量信息

通常在puppet 代码里,你需要知道本地的机器的一些有关信息.Facter是puppet
工具,它提供的一个标准方式去获得环境变量信息,只要你想.
操作系统
内存大小
架构
处理器个数

要看到你系统上一份完整的环境变量列表:运行:
#facter

在命令行的你可以很方便的取得信息,真正的威力是你可以在puppet代码里来访问
这些变量.

怎么办呢…

1.像使用其它变量一样,参考facter在你代码里写上变量名:

notify { "This is $operatingsystem version
$operatingsystemrelease, on $architecture architecture, kernel
version $kernelversion": }

当运行puppet,会自动为当前节点填补合适的值:

notice: This is Ubuntu version 10.04, on i386 architecture, kernel
version 2.6.32

它是如何工作…

Facter为puppet提供了一个抽象层和提供了一个标准方式使用代码,来获得
客户端的环境变量,当你在代码里引出一个fact变量,puppet 会通过Facter
获得当前的值,并将其值插入到代码里.

还有更多…

你也可以在模板里使用facts,例如:你可能需要把结点名插入到一个文件,或者
选择一个基于内存大小的应用程序配置来设置节点.当你在模板里使用names,记
住,他们不需要前面加$附号,那是因为是在Ruby代码里,不是Puppet:

$KLogPath <%= case kernelversion when "2.6.31" then "/var/run/
rsyslog/kmsg" else "/proc/kmsg" end %>

另请参阅
创建自定义facts

[总结]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>