Ruby puppet从puppet服务器以外的主机远程复制文件

Ruby puppet从puppet服务器以外的主机远程复制文件,ruby,puppet,Ruby,Puppet,是否有一种方法可以将文件从同一域(mydom.org)中的另一个主机(bar)复制到一个主机(foo),其中两个主机都不是puppet服务器,但都运行puppetd?我正在寻找类似于cfengine copy中的server方法的东西,其中可以为源文件提供服务器名称。以下是我尝试过但失败的地方: node 'foo.mydom.org' inherits default { include foo_class::setup } foo_class::在puppet服务器节点的mod

是否有一种方法可以将文件从同一域(mydom.org)中的另一个主机(bar)复制到一个主机(foo),其中两个主机都不是puppet服务器,但都运行puppetd?我正在寻找类似于cfengine copy中的server方法的东西,其中可以为源文件提供服务器名称。以下是我尝试过但失败的地方:

 node 'foo.mydom.org' inherits default {
    include foo_class::setup
 }
foo_class::在puppet服务器节点的modules/foo_class/setup.pp中定义的安装程序

 class foo_class::setup {
    file {
     "etc_passwd_file" :
       path => "/etc/passwd",
       source => "puppet://bar.mydom.org//${path_to_file}",
    }
  }
跑步时

  puppet --noop --server=puppet --no-daemonize --verbose --onetime
我得到一个错误:

 " ..... Could not evaluate: Could not retrieve information from environment production source(s) puppet://bar.mydom.org//${path_to_file} at /etc/puppet/modules/foo_class/manifests/setup.pp ...." 

不幸的是,没有一种方法可以只用木偶来实现这一点。Puppet代理进程能够侦听和接受连接,但它们不像Puppet主机那样实现文件服务器。puppet代理的侦听行为用于
puppet kick
功能,该功能在puppet 3.0中被弃用,取而代之的是MCollective。

不幸的是,没有一种方法仅使用puppet就可以做到这一点。Puppet代理进程能够侦听和接受连接,但它们不像Puppet主机那样实现文件服务器。puppet代理的侦听行为用于
puppet kick
功能,该功能在puppet 3.0中被弃用,取而代之的是McCollective。

谢谢。那么我不明白下面的链接在说什么。我把同样的问题发到谷歌小组,有人回答了。他似乎使用虚拟资源。我还不清楚他的方法,但可能是他误解了这个问题。作为开发人员,您的意见可能会有用@我认为另一个人正在做的是使用storeconfigs将文件源从一台机器复制到storeconfigs数据库中,从那里另一台机器可以提取并在本地写入。它适用于一些小文件(例如ssh已知的主机密钥),但扩展性不好,可靠性也不高。@itsbluce:谢谢。我还意识到,StoreConfig在最新的puppet版本中已被弃用!需要找到另一种方法来解决这个问题…谢谢。那么我不明白下面的链接在说什么。我把同样的问题发到谷歌小组,有人回答了。他似乎使用虚拟资源。我还不清楚他的方法,但可能是他误解了这个问题。作为开发人员,您的意见可能会有用@我认为另一个人正在做的是使用storeconfigs将文件源从一台机器复制到storeconfigs数据库中,从那里另一台机器可以提取并在本地写入。它适用于一些小文件(例如ssh已知的主机密钥),但扩展性不好,可靠性也不高。@itsbluce:谢谢。我还意识到,StoreConfig在最新的puppet版本中已被弃用!需要找到另一种方法来解决这个问题。。。