Puppet 安装冗余 java 7
Puppet installs redundant java 7
我有 puppet 可以在我的 debian 虚拟机上安装 java 8 和 tomcat 8。安装成功,只有一个问题。 Puppet 将 java 7 与 8 一起安装。备选方案已正确设置为 java 8. 你知道如何摆脱这个多余的 java 吗?
class sh::java ($version = 'latest') {
exec { "update-package-list":
command => "/usr/bin/apt-get update",
}
package { 'openjdk-8-jre-headless':
ensure => $version,
require => Exec["update-package-list"],
}
}
class sh::tomcat8 {
class { 'tomcat':
group => 'tomcat8',
user => 'tomcat8',
}
tomcat::instance { 'tomcat8':
catalina_base => '/var/lib/tomcat8',
install_from_source => false,
package_ensure => 'present',
package_name => 'tomcat8'
}->
tomcat::instance { 'tomcat8-admin':
install_from_source => false,
package_ensure => 'present',
package_name => 'tomcat8-admin'
}->
tomcat::config::server::tomcat_users { 'bamboo-user':
ensure => 'present',
catalina_base => '/var/lib/tomcat8',
element => 'user',
element_name => 'bamboo',
password => 'bamboo',
roles => ['manager-script', 'manager-gui'],
}
}
debian tomcat8 软件包依赖于 openjdk-7-jre-headless.
手动安装确认:
root@debian-jessie:~# apt-get install tomcat8
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
authbind ca-certificates-java default-jre-headless java-common libasyncns0 libcommons-dbcp-java libcommons-pool-java libecj-java libflac8 libice6 libnspr4 libnss3 libogg0 libpcsclite1 libpulse0
libsctp1 libsm6 libsndfile1 libtomcat8-java libvorbis0a libvorbisenc2 libx11-xcb1 libxtst6 lksctp-tools openjdk-7-jre-headless tomcat8-common tzdata-java x11-common
Suggested packages:
default-jre equivs libcommons-dbcp-java-doc libgeronimo-jta-1.1-spec-java ecj ant libecj-java-gcj pcscd pulseaudio icedtea-7-jre-jamvm libnss-mdns sun-java6-fonts fonts-dejavu-extra
fonts-ipafont-gothic fonts-ipafont-mincho ttf-wqy-microhei ttf-wqy-zenhei fonts-indic libtcnative-1 tomcat8-admin tomcat8-docs tomcat8-examples tomcat8-user
The following NEW packages will be installed:
authbind ca-certificates-java default-jre-headless java-common libasyncns0 libcommons-dbcp-java libcommons-pool-java libecj-java libflac8 libice6 libnspr4 libnss3 libogg0 libpcsclite1 libpulse0
libsctp1 libsm6 libsndfile1 libtomcat8-java libvorbis0a libvorbisenc2 libx11-xcb1 libxtst6 lksctp-tools openjdk-7-jre-headless tomcat8 tomcat8-common tzdata-java x11-common
0 upgraded, 29 newly installed, 0 to remove and 36 not upgraded.
Need to get 49.3 MB of archives.
After this operation, 77.6 MB of additional disk space will be used.
所以当 puppet 安装 tomcat8 deb 包时,你也会得到 java 7.
部分选项:
让 puppet 从源代码而不是 debian 安装 tomcat8
包以防止对 java 7.
的依赖
tomcat::instance { 'tomcat8':
catalina_base => '/var/lib/tomcat8',
install_from_source => true,
package_ensure => 'present',
package_name => 'tomcat8'
}
或者从 deb 包安装并获取 puppet 以删除 java 7:
package { 'openjdk-7-jre-headless':
ensure => absent,
}
旁注:
如评论中所述,也可以使用 java module could also be used to install java 8 and the apt module 而不是 exec 来管理 apt 更新。
我有 puppet 可以在我的 debian 虚拟机上安装 java 8 和 tomcat 8。安装成功,只有一个问题。 Puppet 将 java 7 与 8 一起安装。备选方案已正确设置为 java 8. 你知道如何摆脱这个多余的 java 吗?
class sh::java ($version = 'latest') {
exec { "update-package-list":
command => "/usr/bin/apt-get update",
}
package { 'openjdk-8-jre-headless':
ensure => $version,
require => Exec["update-package-list"],
}
}
class sh::tomcat8 {
class { 'tomcat':
group => 'tomcat8',
user => 'tomcat8',
}
tomcat::instance { 'tomcat8':
catalina_base => '/var/lib/tomcat8',
install_from_source => false,
package_ensure => 'present',
package_name => 'tomcat8'
}->
tomcat::instance { 'tomcat8-admin':
install_from_source => false,
package_ensure => 'present',
package_name => 'tomcat8-admin'
}->
tomcat::config::server::tomcat_users { 'bamboo-user':
ensure => 'present',
catalina_base => '/var/lib/tomcat8',
element => 'user',
element_name => 'bamboo',
password => 'bamboo',
roles => ['manager-script', 'manager-gui'],
}
}
debian tomcat8 软件包依赖于 openjdk-7-jre-headless.
手动安装确认:
root@debian-jessie:~# apt-get install tomcat8
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
authbind ca-certificates-java default-jre-headless java-common libasyncns0 libcommons-dbcp-java libcommons-pool-java libecj-java libflac8 libice6 libnspr4 libnss3 libogg0 libpcsclite1 libpulse0
libsctp1 libsm6 libsndfile1 libtomcat8-java libvorbis0a libvorbisenc2 libx11-xcb1 libxtst6 lksctp-tools openjdk-7-jre-headless tomcat8-common tzdata-java x11-common
Suggested packages:
default-jre equivs libcommons-dbcp-java-doc libgeronimo-jta-1.1-spec-java ecj ant libecj-java-gcj pcscd pulseaudio icedtea-7-jre-jamvm libnss-mdns sun-java6-fonts fonts-dejavu-extra
fonts-ipafont-gothic fonts-ipafont-mincho ttf-wqy-microhei ttf-wqy-zenhei fonts-indic libtcnative-1 tomcat8-admin tomcat8-docs tomcat8-examples tomcat8-user
The following NEW packages will be installed:
authbind ca-certificates-java default-jre-headless java-common libasyncns0 libcommons-dbcp-java libcommons-pool-java libecj-java libflac8 libice6 libnspr4 libnss3 libogg0 libpcsclite1 libpulse0
libsctp1 libsm6 libsndfile1 libtomcat8-java libvorbis0a libvorbisenc2 libx11-xcb1 libxtst6 lksctp-tools openjdk-7-jre-headless tomcat8 tomcat8-common tzdata-java x11-common
0 upgraded, 29 newly installed, 0 to remove and 36 not upgraded.
Need to get 49.3 MB of archives.
After this operation, 77.6 MB of additional disk space will be used.
所以当 puppet 安装 tomcat8 deb 包时,你也会得到 java 7.
部分选项:
让 puppet 从源代码而不是 debian 安装 tomcat8 包以防止对 java 7.
的依赖tomcat::instance { 'tomcat8':
catalina_base => '/var/lib/tomcat8',
install_from_source => true,
package_ensure => 'present',
package_name => 'tomcat8'
}
或者从 deb 包安装并获取 puppet 以删除 java 7:
package { 'openjdk-7-jre-headless':
ensure => absent,
}
旁注: 如评论中所述,也可以使用 java module could also be used to install java 8 and the apt module 而不是 exec 来管理 apt 更新。