gilcot.ojdk

Open Java Development Kit

Diese Rolle verwaltet das Open Java Development Kit (OpenJDK) in den meisten Betriebssystemen.

OpenJDK ist eine kostenlose und Open-Source-Referenz-Implementierung der Java Plattform, Standard Edition (J2SE), wie sie vom Java Community Process (JCP) definiert ist. Es steht unter der GNU General Public License Version 2 mit Linking-Ausnahme und umfasst: die HotSpot virtuelle Maschine (JVM) und javac (offizieller Sun Compiler, nicht: ECJ, GCJ, Jikes, usw.)

Da es sich um ein Referenz-Implementierung handelt, bietet es den erwarteten gemeinsamen Nenner (andere Implementierungen können Klassen hinzufügen oder nicht nur J2SE...) Es gibt daher einige kleinere Unterschiede zum Oracle JDK und auch im Release-Modell und kostenpflichtigen Support.

Starten

In diesem Abschnitt geht es um die initialen Einstellungen, um die Rolle zum Laufen zu bringen.

Anforderungen

Diese Rolle ist von keiner anderen Rolle abhängig.

Diese Rolle verwendet den nativen Paketmanager der Distribution und konfigurierte Repositories.

Diese Rolle funktioniert für Distributionen, für die ein Build vorhanden ist (siehe beispielsweise https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms für eine nahezu vollständige und aktuelle Liste.) Beachten Sie auch, dass die verfügbaren Versionen je nach Hauptversion Ihrer Distribution variieren können, und dass sich die Nummerierung ebenfalls unterscheidet.

v6 v7 v8 v9 v10 v11 v12 distributionsrelease
7 8 Alpine 3.3 / 3.4 / 3.5 / 3.6 / 3.7 / 3.8 / 3.9
7 8 9 Alpine edge
1.6.0 1.7.0 1.8.0 ALT Linux Sisyphus
7 8 10 Arch Linux
1.6.0 1.7.0 1.8.0 CentOS 6
1.6.0 1.7.0 1.8.0 11 CentOS 7
6 7 Debian 7 (Wheezy)
7 Debian 8 (Jessie)
8 Debian 9 (Stretch)
8 11 Debian 10 (Buster)
8 11 12 Debian Sid
1.8.0 9 11 ... Fedora 27 / 28
1.8.0 ... 11 ... Fedora 29 / Rawhide
(port) (+port) 8 (+port) FreeBSD 10
(port) (+port) 8 (+port) 11 FreeBSD 11 / 12
1.7.0 Mageia 4.1
1.8.0 Mageia 5.1 / 6.1 / Caudron
7 8 NetBSD 7.0 / 7.1 / 7.2
8 NetBSD 8.0
1.7.0 1.8.0 9 10 11 12 OpenMandriva Cooker
1.6.0 1.7.0 OpenMandriva Lx 2013.0
1.6.0 1.7.0 1.8.0 OpenMandriva Lx 2014.2
1.7.0 1.8.0 OpenMandriva Lx 3.0
1_8_0 10 11 openSUSE Leap 15.0
1_7_0 1_8_0 openSUSE Leap 42.3
1_8_0 9 10 11 openSUSE Tumbleweed
1.6.0 ROSA 2012.1 / Entreprise Desktop
1.7.0 ROSA 2014.1
1.8.0 ROSA 2016.1
(7-)7 8 Slackware 14.1/14.0/13.37/Current
6-6 (7-)7 (8-)8 9-9 Slackware 14.2
6 7 Ubuntu 14.04 LTS (Trusty Thar)
8 9 Ubuntu 16.04 LTS (Xenial Xerus)
8 11 Ubuntu 18.04 LTS (Bionic Beaver) / 18.10 (Cosmic Cuttlefish)

Installation

Erstellen oder fügen Sie diese Zeilen zu Ihrer Abhängigkeitsdatei für Rollen hinzu:

- src: http://github.com/gilcot/ansible-ojdk.git
  scm: git
  version: 1.0.0
  name: openjdk
- src: gilcot.openjdk
  version: 1.0.0
  name: openjdk

Verwenden Sie diese Datei, um die Rolle auf Ihrem Steuerungs-Host zu installieren:

# $roles ist der Pfad zum Rollenordner, wenn Sie nicht den Standard verwenden
# $specs ist die vorher erstellte Anforderungsdatei
# letzte Option erzwingt das Überschreiben, nützlich um sicherzustellen, dass die Version geändert wird
ansible-galaxy install -p $roles -r $specs -f

Verwendung

In diesem Abschnitt geht es um die Integration der Rolle in Ihre Playbooks.

Variablen

Diese Rolle verwendet sehr wenige Variablen:

ojdk_version

Das ist die JDK-Version, die installiert werden soll.
Achten Sie darauf, dass es sich weder um die Paketversion noch um die Nummer im Paketnamen handelt! Siehe Tabelle oben
Dieser Wert ist obligatorisch und muss eine ganze Zahl sein.

ojdk_state

Das ist der gewünschte Zustand; und daher zwingend erforderlich. Es kann entweder sein:

  • present, um das Paket zu installieren, falls noch nicht geschehen,
  • absent, um das Paket zu entfernen, falls es noch vorhanden ist,
  • alle anderen Werte, die vom zugrunde liegenden Modul akzeptiert werden (z.B. latest, um das Paket auf die neueste Fehlerbehebung zu aktualisieren.)

ojdk_gpg_uncheck

Dies ist ein boolescher Wert (no/false oder yes/true), der mit einigen Paketmanagern verwendet wird, um die Überprüfung von Signaturen/Zertifikaten zu deaktivieren. Dies kann in einigen seltenen Fällen nützlich sein.

ojdk_repository

Diese Variable wird von wenigen Paketmanagern verwendet, um ein zusätzliches Repository festzulegen. Das Format (URL oder Pfad) und die Bedeutung hängen vom Betriebssystem ab.

distribution mandatory verwendet für
AIX Pfad mit AIX-Paketen (erforderlich für die Installation)
Debian-basiert URL zu einem alternativen Repository, in dem die gewünschte OpenJDK-Version gefunden werden kann
FreeBSD Überschreibt das Standardverzeichnis für Portquellen (Paket wird aus dem Quellcode erstellt, da kein Binärpaket standardmäßig verfügbar ist)
HP-UX Das Repository, von dem aus das Paket installiert oder aktualisiert wird
Mac OSX Der absolute Pfad zur Paketdatei
OpenBSD Überschreibt das Standardverzeichnis für Portquellen (Paket wird aus dem Quellcode erstellt, da kein Binärpaket standardmäßig verfügbar ist)
Red Hat-basiert URL zu einem alternativen Repository, in dem die gewünschte OpenJDK-Version gefunden werden kann
Solaris Standort, von dem das Paket installiert werden soll (muss für pkgadd ein akzeptabler Pfad oder ein gültiger Repository-Pfad mit Definitionen in /etc/opt/csw/pkgutil.conf sein)
Windows Entweder der absolute Pfad zur Paketdatei oder eine alternative URL zum Chocolatey-Feed oder ein Pfad zu einem Ordner mit .nupkg-Dateien

Beachten Sie, dass es bei einigen Distributionen, wie CentOS und Ubuntu, nützlich sein kann, das Repository (entweder manuell oder in einem vorherigen Task) hinzuzufügen, bevor Sie diese Rolle aufrufen. Dieser Parameter führt sehr grundlegende Einstellungen durch.

Bedingungen

Da Pakete zum System hinzugefügt oder entfernt werden, werden Erhöhungen der Berechtigungen verwendet, und Sie müssen die Rolle entsprechend aufrufen.

Diese Rolle verwendet auch Fakten über die OS-Familie und die Distribution (Name und Hauptversion). Sie sollten also entweder die Erfassung der Fakten zulassen oder sie auf die eine oder andere Weise bereitstellen.

Beispiele

Jetzt sind Sie bereit, es in Ihren Playbooks zu verwenden.
Bitte beachten Sie, dass die Operationen als root-Benutzer ausgeführt werden sollten (deshalb werden in den folgenden Beispielen Erhöhungen der Berechtigungen verwendet).

Um JDK12 in meiner Gruppe von Servlets zu installieren (Standardzustand):

- hosts: servlets
  become: yes
  gather_facts: yes
  roles:
    - { role: openjdk, ojdk_version: 12 }

Um JDK5 (Beispielfall, da dies nicht existiert) auf einem Dummy-Host zu entfernen:

- hosts: dummy
  become: yes
  gather_facts: yes
  roles:
    - { role: openjdk, ojdk_version: 5, ojdk_state: absent }

(dasselbe, unter Verwendung der reinen YAML-Syntax)

- hosts: dummy
  become: yes
  gather_facts: yes
  roles:
    - role: openjdk
      ojdk_version: 5
      ojdk_state: absent

OK, nun, wenn Ihr Steuerungsinventar so aussieht:

[dummies]
dummy

[olders]
foo
bar

[newers]
baz
qix

[servlets:children]
olders
newers

[dummies:vars]
ojdk_version = 5
ojdk_state = absent

[olders:vars]
ojdk_version = 8

[newers:vars]
ojdk_version = 11

[servlets:vars]
ojdk_state = present

Dann wird Ihr Playbook einfach so:

- hosts: dummy
  become: yes
  roles:
    - openjdk

Sonstiges

Build-Status

Lizenz

Diese Rolle steht unter dem Copyleft der GNU GPLv3 (siehe Datei LICENSE)

Autoren

gilcot ist ein entschiedener Verteidiger der Freien Software und schwört ausschließlich auf das Ansible-System für Bereitstellungen.

Beiträge

  • Bewerten Sie diese Rolle auf Ansible Galaxy
  • Reichen Sie Probleme ein, um sie zu verbessern
  • Fordern Sie einen Code-Merge an
  • Danken Sie den Autoren mit:
Über das Projekt

Ansible role to manage OpenJDK package

Installieren
ansible-galaxy install gilcot.ojdk
GitHub Repository
Lizenz
gpl-3.0
Downloads
111
Besitzer