2016-01-21 100 views
0

我有puppet在我的debian vms上安装java 8和tomcat 8。只有一个问题,安装成功。木偶安装java 7和8.替代品正确设置为Java 8.你有任何想法如何摆脱这种多余的Java?木偶安装冗余java 7

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'], 
    } 
} 
+0

你有没有想过使用Puppetlabs Java模块来安装java? 你可以用下面的代码替换最上面的代码:'class {':: java'}' –

+0

以调试模式'-d'运行puppet,并查看你的包管理器的输出以查看java7的安装位置。你的安装tomcat是否需要java? – daxlerod

回答

1

Debian的tomcat8封装具有上的依赖关系的openjdk -7- JRE-无头

手动安装证实了这一点:

[email protected]:~# 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. 

所以当傀儡安装tomcat8 deb包,你也越来越Java 7中

一些选项:

获得傀儡从源代码安装tomcat8代替debian 包防止依赖java 7.

tomcat::instance { 'tomcat8': 
    catalina_base  => '/var/lib/tomcat8', 
    install_from_source => true, 
    package_ensure  => 'present', 
    package_name  => 'tomcat8' 
} 

还是从deb包安装,并让木偶从而取消了Java 7:

package { 'openjdk-7-jre-headless': 
    ensure => absent, 
} 

一个侧面说明: 正如评论所说,java module也可用于安装java 8也可以使用apt module而不是执行者来管理apt更新。