0
我试图创建一个在其他资源之前定义的资源类型(:: apt :: ppa)的实例。我正在使用PuppetLabs Apt Module。在Puppet中包含一个已定义的资源类型
通过模块添加新的存储库时,定义的类型包含通知apt :: update的exec statement,以便可以正确安装所需的任何软件包。但是,当我运行我的下面的代码时,在我尝试安装Java之后,会通知计划,从而导致Java安装失败。我试过在apt :: ppa声明中放置锚点,但这并没有帮助。我还可以做些什么?
class rap::java(
$version = '7',
) {
$package = "oracle-java${version}-installer"
apt::ppa { 'ppa:webupd8team/java': } ->
exec { 'accept-java-license':
command => "/bin/echo ${package} shared/accepted-oracle-license-v1-1 select true | /usr/bin/sudo /usr/bin/debconf-set-selections",
unless => "/usr/bin/debconf-show ${package} | grep 'shared/accepted-oracle-license-v1-1: true'",
} ->
class { '::java':
package => $package,
distribution => 'oracle-jre',
}
file_line { 'java_environment':
path => '/etc/environment',
line => "JAVA_HOME=\"/usr/lib/jvm/java-${version}-oracle\"",
}
}
模块文档确实建议您需要声明类“Apt”以使用模块的其他功能,并且对代码的检查表明您确实需要该类来在任何“Apt :: Ppa”之前进行评估。然而,我断言,它在模块中构成了一个缺陷,即定义的类型本身并不处理它,通过执行它自己的'include'apt''。我建议提交一张票。 –
谢谢!那工作。我可能应该更仔细地阅读文档 – majikman