2016-05-06 9 views
0

Ich versuche ein Puppet-Modul zu schreiben, um Java 8 auf einer virtuellen Maschine zu installieren. Mit Java 6 war es kein Problem: Ich schrieb eine java.pp mit mehr oder weniger diesen Zeilen und alles funktionierte einwandfrei.Einfaches Puppet-Modul für Java8 für eine VM mit Vagrant

Ich habe mit einigen Tutorial online versucht, aber alles scheint komplexer zu sein als ich brauche. Haben Sie eine Idee, wie Sie Java 8 auf der VM über Puppet installieren können?

Antwort

1

java8.pp für Ubuntu:

case $::operatingsystem { 
    ubuntu: { 
     include apt 

     apt::ppa { 'ppa:openjdk-r/ppa': 
     ensure => present, 
     } 

     exec { 'apt-update': 
     command => '/usr/bin/apt-get update', 
     require => [ 
      Apt::Ppa['ppa:openjdk-r/ppa'] 
     ], 
     } 

     package { 'openjdk-8-jdk': 
     require => [ 
      Exec['apt-update'], 
      Apt::Ppa['ppa:openjdk-r/ppa'], 
     ], 
     } 
    } 

    default: { 
     notice "Unsupported operatingsystem ${::operatingsystem}" 
    } 
    } 

Diese java8.pp Datei hängt von apt-Modul, das auf dem Computer installiert werden muss.

  1. sudo puppet module install puppetlabs-apt
  2. sudo puppet apply java8.pp
  3. java -version Laufen zu überprüfen:

    ravitezu @ Lenevo: ~/Arbeitsbereich/Puppet $ java -version
    openjdk version "1.8.0_91"
    OpenJDK Runtime Umgebung (Build 1.8.0_91-8u91-b14-0ubuntu4 ~ 16.04.1-b14)
    OpenJDK 64-Bit-Server-VM (Build 25.91-b14, gemischter Modus)

0

Sie brauchen nicht unbedingt ein Modul zu bauen, du Java8 am Laufen zu haben, am meisten empfohlene Wege sind Meister lassen Sie sie und die Verwendung Module wie die puppetlabs-java Puppen Modul, letzte Änderung Java 8 mit einfacher Klasse installieren können

class { 'java' : 
    distribution => 'jdk', 
    package  => 'java-1.8.0-openjdk-devel' 
} 
+0

Ich habe nicht verstanden, was du meinst. Was sollte ich in der Datei init.pp, in Java/Manifest deklarieren? – TrinitasXVII

+0

Nein, Sie müssen das Puppetlabs-Java-Modul installieren (entweder Pushing to Puppet/Module oder aus dem Installationsskript) und dann in Ihrer Marionette-Datei (kann init oder etwas anderes sein) von Vagrantfile deklariert werden Sie nur diese Klasse verweisen - Hier schlug ich vor Sie nicht ein neues Modul zu erstellen, sondern ein vorhandenes zu verwenden –

+0

Ok, danke. Also in meiner site.pp-Datei habe ich etwas wie Knoten 'web' { Klasse {'Java': Verteilung => 'jdk', Paket => 'Java-1.8.0-openjdk-devel' }} Ich habe jetzt eine andere Frage: Wenn ich viele SW (Java, Postgres, ...) installieren muss, wird meine Website.pp viel wachsen. Ist das der richtige Weg? Oder gibt es ein "Muster"? – TrinitasXVII