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:
- von GitHub
- src: http://github.com/gilcot/ansible-ojdk.git
scm: git
version: 1.0.0
name: openjdk
- oder von Ansible Galaxy
- 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
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.