【发布时间】:2015-12-21 10:56:05
【问题描述】:
编辑
这个sites.pp 似乎有效。
class lein {
$lein = "/usr/local/bin/lein"
$url = 'https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein'
exec { 'download lein':
command => "/usr/bin/curl -sL -o ${lein} ${url}",
creates => $lein,
}
file { $lein:
mode => '0755',
require => Exec['download lein'],
}
exec { 'install lein':
command => $lein,
require => File[$lein],
}
}
我正在尝试使用 Puppet 在 Centos Vagrant 上安装 lein。
要安装 lein,您只需运行脚本。我正在尝试使用 curl 下载脚本,使其可执行然后执行它,但我得到了no such file or directory。我已验证文件 /usr/local/bin/lein 存在,所以不知道为什么会出现错误。
所以我想要完成的是这个 shell 的 puppet 等价物:
curl -sL -o /usr/local/bin/lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
chmod 0755 /usr/bin/local/lein
/usr/local/bin/lein
顺便说一句,是否可以以非特权用户身份运行 exec?
puppet/manifests/site.pp
class lein {
exec { 'download lein':
command => 'curl -sL -o /usr/local/bin/lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein',
path => '/usr/bin',
}
file { '/usr/local/bin/lein':
mode => '0755',
require => Exec['download lein'],
}
exec { 'install lein':
command => 'lein',
path => '/usr/local/bin',
require => File['/usr/local/bin/lein'],
}
}
流浪文件
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "puphpet/centos65-x64"
config.vm.provision "puppet" do |p|
p.module_path = "puppet/modules"
p.manifests_path = "puppet/manifests"
p.manifest_file = "site.pp"
end
end
【问题讨论】:
-
只是扫描您的问题,但这是您的 Vagrantfile 中的错字吗?
config.vm.box = "puphpet/centos65-x64" -
不,我复制的时候也是这么想的atlas.hashicorp.com/puphpet/boxes/centos65-x64
标签: clojure centos vagrant puppet leiningen