Puppet 傀儡执行官/工作组

Puppet 傀儡执行官/工作组,puppet,wget,Puppet,Wget,我正试图将一个文件从远程位置下载到puppet中的一个目录中 .pp文件 class test::test { exec { 'wget http://10.0.0.1/test/test.txt': cwd => '/opt/check', path => ['/usr/bin', '/usr/sbin',], } } 我还尝试了puppet中的wget模块: class test::test { include ::wget

我正试图将一个文件从远程位置下载到puppet中的一个目录中

.pp文件

class test::test {

  exec { 'wget http://10.0.0.1/test/test.txt':
    cwd     => '/opt/check',
    path    => ['/usr/bin', '/usr/sbin',],
  }
}
我还尝试了puppet中的wget模块:

class test::test {

  include ::wget

  wget::fetch { 'http://10.0.0.1/test/test.txt':
    destination => '/tmp/',
    timeout     => 0,
    verbose     => false,
  }
}
我没有下载文件,是我做错了什么还是有更好的方法?
请让我知道

在您的节点上运行
哪个wget
,以确保包含正确的路径,在my centos机器上,它是/bin/wget。 我经常(这可能是一个坏习惯)在Com中包含完整路径,因此我会将
/bin/wgethttp://10.0.0.1/test/test.txt
你试过在机器上手动运行那个命令吗? 查看此链接

“creates”停止运行exec如果文件存在,您希望这样做,或者每次puppet运行时(默认每30分钟一次),它都会再次运行该命令

我刚刚在我的机器上运行了一个测试,我创建了一个文件
test.pp
,并将其放入其中

exec { 'get-google':
  cwd     => '/tmp',
  command => '/bin/wget http://www.google.com',
  path    => ['/usr/bin', '/usr/sbin',],
  creates => '/tmp/index.html',
}
然后运行
puppet apply test.pp
,它成功了,如果您想测试小代码块,这是一种方便的方法


另外,是否存在
/opt/check
目录

我没有看到代码中有任何明显的错误。您是否已将class
test::test
分配给您尝试配置的节点?如果是这样,那么明智的做法是通过在启用
--debug
日志记录的情况下运行代理来收集更多信息,以获取有关失败原因的更多信息。手动运行同一命令(以及代理作为同一用户运行,可能是
root
)也可能有助于检查命令本身是否存在问题。
文件
资源还可以使用
http
URI检索远程文件,作为一个受良好支持的本机资源可能会更容易。
exec { 'get-google':
  cwd     => '/tmp',
  command => '/bin/wget http://www.google.com',
  path    => ['/usr/bin', '/usr/sbin',],
  creates => '/tmp/index.html',
}