gpt4 book ai didi

http - 如何在 Puppet 文件资源中获取远程文件(例如从 Github)?

转载 作者:可可西里 更新时间:2023-11-01 15:04:36 26 4
gpt4 key购买 nike

file { 'leiningen': 
path => '/home/vagrant/bin/lein',
ensure => 'file',
mode => 'a+x',
source => 'https://raw.github.com/technomancy/leiningen/stable/bin/lein',
}

是我的想法,但 Puppet 不知道 http://。我错过了什么关于 puppet:// 的东西吗?

或者如果没有,是否有一种方法可以先以声明方式获取文件,然后将其用作本地源?

最佳答案

Puppet 4.4 之前,根据 http://docs.puppetlabs.com/references/latest/type.html#file ,文件源只接受 puppet://file:// URI。

从 Puppet 4.4+ 开始,your original code would be possible .

如果您使用的是旧版本,一种无需拉下整个 Git 存储库即可实现您想要执行的操作的方法是使用 exec 资源来获取文件。

exec{'retrieve_leiningen':
command => "/usr/bin/wget -q https://raw.github.com/technomancy/leiningen/stable/bin/lein -O /home/vagrant/bin/lein",
creates => "/home/vagrant/bin/lein",
}

file{'/home/vagrant/bin/lein':
mode => 0755,
require => Exec["retrieve_leiningen"],
}

虽然 exec 的使用有些不受欢迎,但可以有效地使用它来创建您自己的类型。例如,您可以采用上面的代码片段并创建您自己的资源类型。

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/vagrant/bin/lein':
remote_location => 'https://raw.github.com/technomancy/leiningen/stable/bin/lein',
mode => '0755',
}

关于http - 如何在 Puppet 文件资源中获取远程文件(例如从 Github)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com