我对puppet还很陌生,不过我正在用它写一些部署。
我遇到了一个问题,我不能正确地获得符号链接,因为由于某种原因,我在现有的系统文件夹和puppet ${architecture}变量之间不匹配。
在Ubuntu12.04 x86_64上,我可以得到一个从/usr/lib/libz.so到/usr/lib/x86_64-linux-gnu/libz.so的链接,但是,我已经习惯了/usr/lib/amd64-linux-gnu/libz.so,它不存在,只是创建了一个断开的链接。
file {"/usr/lib/libz.so":
ensure => link,
target => "/usr/lib/${architecture}-linux-gnu/libz.so",
}Puppet使用Facter获取系统事实,并在我的命令行上运行facter,我得到了以下内容:
root@somehost:/root# facter
architecture => amd64
facterversion => 1.6.5
hardwareisa => x86_64
(....)运行lscpu时,我得到:
root@tsomehost:/root# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
(....)发布于 2012-10-03 03:18:48
Facter文档现在包含了关于how core facts are resolved的文档。
uname -p调用uname -m,然后在Debian上将x86_64转换为hardwaremodel
在这里,$hardwaremodel可能是您想要的,但是我认为如果您使用的是64位内核和32位用户,那么它将返回x86_64,这可能不适合您的用例。
发布于 2012-10-02 23:32:03
你的Puppet and Facter版本是什么?
也许你有一个低于1.6.5的Facter版本,因此有这个错误:http://projects.puppetlabs.com/issues/11511
如果可以,请尝试升级。
https://stackoverflow.com/questions/12693359
复制相似问题