2011-05-23 72 views
0

与文件工作,我试图让下面的代码运行:不能得到需要的木偶模块

class common 
{ 
    ... 
    # common packages 
    package 
    { 
     ["lsb-release", "figlet"]: ensure => installed, 
    } 
    # Print some information if someone logs in: 
    file { "/etc/motd": 
     #require => [ Package["figlet"], File["/usr/bin/figlet"] ], 
     require => Package["figlet"], 
     content => generate('/usr/bin/env', '/usr/bin/figlet','-w', '186', '-p', '-f', 'banner', "$hostname"), 
    } 

    .... 
} 

should't这项工作?

我得到以下错误:

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to execute generator /usr/bin/env: Execution of '/usr/bin/env /usr/bin/figlet -w 186 -p -f banner hostname' returned 127: /usr/bin/env: /usr/bin/figlet: No such file or directory 
at /etc/puppet/modules/common/manifests/init.pp:37 on node puppetmaster.local 
warning: Not using cache on failed catalog 
err: Could not retrieve catalog; skipping run 

第一我没有要求(第12行),并没有包(行5-8)中的代码,来解决我认为我可以简单地添加错误第12行(需要包),但它不起作用。所以我添加了包裹,但错误不会消失。

如何添加这个依赖?不应该傀儡运行代码,不要完全跳过运行?

回答

1

generate()在服务器上运行,而不是在客户端上运行。 (这是一个解析器函数,所以它在服务器上运行)

你写的这个类将确保客户端安装在它们上面的figlet,但是然后尝试在puppetmaster上运行figlet。只需在puppetmasters上安装figlet,就不需要包装资源。

也使用smslant字体,而不是横幅:)

+0

好的第一回答eric。 – thomasfedb 2011-05-23 12:55:26

+0

大多数木偶问题都在serverfault上,所以我通常在那边闲逛。 – 2011-05-23 17:34:23