我正在尝试使用puppet安装特定的rpm,我的init.pp是:
class nmap {
package {'nmap':
provider => 'rpm',
source => "<Local PATH to the RPM>",
}
}
Run Code Online (Sandbox Code Playgroud)
并且rpm在 ...modules/nmap/files
如果我将rpm移动到清单,并在source =>''中提供rpm名称
class nmap {
package {'nmap':
provider => 'rpm',
source => "rpm-name.rpm",
}
}
Run Code Online (Sandbox Code Playgroud)
它有效,但我如何指定源路径../files/和成功应用木偶
当我使用:
source => 'puppet:///files/nmap-6.45-1.x86_64.rpm',
我收到一个错误:
Debug: Executing '/bin/rpm -i puppet:///files/nmap-6.45-1.x86_64.rpm'
Error: Execution of '/bin/rpm -i puppet:///files/nmap-6.45-1.x86_64.rpm' returned 1: error: open of puppet:///files/nmap-6.45-1.x86_64.rpm failed: No such file or directory
Error: /Stage[main]/Nmap/Package[nmap]/ensure: change from absent to present failed: Execution of '/bin/rpm -i puppet:///files/nmap-6.45-1.x86_64.rpm' returned 1: error: open of puppet:///files/nmap-6.45-1.x86_64.rpm failed: No such file or directory
`
运行命令时:
sudo puppet apply --modulepath=/home/user1/qa/puppet_qa/modules/ -e "include nmap" --debug
Fel*_*ank 16
与文件资源类型不同,包类型不支持Puppet 文件服务器URL.在安装之前,您需要使用file资源下载rpm.如果这对您来说是一个反复出现的问题,那么请defined type一次性完成(想想宏),例如
define fileserver_package($source, $ensure='installed') {
file { "/my/tmp/dir/$name.rpm": source => $source }
package { $name:
ensure => $ensure,
provider => 'rpm',
source => "/my/tmp/dir/$name.rpm",
require => File["/my/tmp/dir/$name.rpm"],
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:通常建议使用本地yum repo,另请参阅@rojs下面的第一条评论.