人偶文件源可以来自Web服务吗?


10

有没有一种(简单的)方法来让木偶使用Internet上可用的文件作为File的Source属性?

例如:

file { "/home/text.txt":
  source => [
    "http://www.example.com/text.txt",
  ]
}

如果您重视服务器的完整性,请至少使用https。并使用更值得信赖的域名cos,您可能不知道是谁在控制那个域名。
mc0e 2014年

Answers:


4

我正在写一个更新的答案,以通知未来的读者,现在File资源确实实现了HTTP源。

文档

资源

源文件,它将被复制到本地系统上的适当位置。此属性与内容和目标互斥。允许的值为:

  • puppet:URI,指向模块中的文件或Puppet文件服务器安装点。
  • 本地可用文件(包括NFS共享或Windows映射驱动器上的文件)的标准路径。
  • 文件:URI,其行为与本地文件路径相同。
  • http:URI,指向普通Web服务器提供的文件

因此,您可以在编写代码时使用它:

file { "/home/text.txt":
  source => "http://www.example.com/text.txt",
}

2
作为木偶版本4.4.0(通过门票tickets.puppetlabs.com/browse/PUP-1072
KJH

4

多年来,它一直被要求作为功能部件 ...但是您最终需要为此使用自定义功能...或使用curlwget。参见伪造

text.txt中有什么?


txt.txt只是一个示例。我实际上想用它来从管理系统中提取Freeradius客户端。
甘文2014年

4

目前无法立即使用:

资源:

...

可用的URI方案是puppet和file。Puppet URI将从Puppet的内置文件服务器中检索文件

我最终使用define了在互联网上找到的信息:

define remote_file($remote_location=undef, $mode='0644'){
  exec{ "retrieve_${title}":
    command => "/usr/bin/wget -q ${remote_location} -O ${title}",
    creates => $title,
  }

  file{$title:
    mode    => $mode,
    require => Exec["retrieve_${title}"],
  }
}

remote_file{'/home/text.txt':
  remote_location => 'http://www.example.com/text.txt'
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.