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