Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

So installiert man Java mit Ansible

Veröffentlicht am 25. Februar 2018 von Christian Piazzi Hinterlasse ein Kommentar , Aktualisiert am 22. Juli 2019
Geschätzte Lesezeit: 2 Minuten

Titlebild - Ansible Java Rolle

Für verschiedene Anwendungen auf Linux Server braucht man eine Installation von Java. Aus diesem Grund wollen wir unser Ansible Repository um eine entsprechende Rolle erweitern. Also Voraussetzung brauchen wir einen funktionsfähigen Ansible Server der eine entsprechende ssh Verbindung zum Zielsystem hat.

Struktur der Java Rolle

Ich werde mich bei dieser Ansible Rolle genau so wie bei den vorangegangenen Artikeln an die empfohlene Struktur halten. Hier noch mal eine entsprechende Ausgabe vom Terminal.

1
2
3
4
5
6
7
java/
├── defaults
│   └── main.yml
├── files
│   └── jdk-8u161-linux-x64.rpm
└── tasks
└── main.yml

Die Datei jdk-8u161-linux-x64.rpm wird benötigt, wenn zb. Oracle Java installiert werden soll. Da hier die Zustimmung zur Lizenz auf der Seite erforderlich ist, lässt sich dies nicht ohne weiteres automatisieren. Aus diesem Grund laden wir das entsprechende .rpm Paket herunter und legen es im files Ordner der Java Rolle ab.

Erstellen der defaults/main.yml

Als erstes legen wir für die Rolle eine Variable fest. Dies geschieht in der defaults/main.yml und sieht wie folgt aus:

1
2
3
4
5
6
7
8
9
10
# JDK version options include:
# - java
# - java-1.6.0-openjdk
# - java-1.7.0-openjdk
 
java_packages: java-1.8.0-openjdk
 
# Using for RPM Packages e.g. Oracle
java_rpm_install: false
java_rpm: jdk-8u161-linux-x64.rpm

Die erste Variable (java_packages) dient dazu, den Paketnamen für die Installation von Java aus einem Repository zu hinterlegen. Die anderen beiden Variablen sind für die Installation aus einem .rpm Paket. java_rpm_install steuert hierbei, ob Java aus dem Repository oder via rpm Paket installiert werden soll. java_rpm dient zur Hinterlegung des rpm Paketnamens.

Erstellen der tasks/main.yml

Im ersten Block der Rolle definieren wir die Installation aus dem Repository.

YAML
1
2
3
- name: Java | Install java
  package: "name={{ java_packages }} state=installed"
  when: java_rpm_install == false

Hier wird beim Aufruf der entsprechende Paketname eingesetzt. Mit der when Bedingung prüfen wir noch ob aus dem Repository oder via rpm Paket installiert werden soll.

In den folgenden Blöcken schauen wir uns die Installation von Java via rpm an.

YAML
1
2
3
4
5
6
7
8
9
10
- name: Java | Oracle download
  copy:
    src: "{{ java_rpm }}"
    dest: /tmp/{{ java_rpm }}
    mode: 0755
  when: java_rpm_install == true
 
- name: Java | Oracle install
  yum: name=/tmp/{{ java_rpm }}
  when: java_rpm_install == true

Im ersten Teil wird das rpm Paket auf das Zielsystem kopiert. Im zweiten Teil wird dann die Installation des rpm Paketes mit dem lokalen Paketmanager yum durchgeführt.
Beide Teile werden nur ausgeführt, wenn die entsprechende Steuervariable auf true gesetzt ist (java_rpm_install).

Anwenden der Ansible Java Rolle

Als erstes wolle wir Java aus dem Repository installieren. Da in den defaults bereits die aktuelle Version hinterlegt ist, können wir hier einfach die Rolle in der site.yml hinterlegen.

YAML
1
2
3
4
5
- name: java
  hosts: java
  remote_user: root
  roles:
    - java

Die entsprechende hosts Datei sieht dann wie folgt aus:

YAML
1
2
[java]
192.168.10.90

Nun können wir den Ansible run ausführen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ansible-playbook site.yml -i hosts
 
PLAY [java] *****************************************************************************
 
TASK [Gathering Facts] ******************************************************************
ok: [192.168.10.90]
 
TASK [java : Java | Install java] *******************************************************
changed: [192.168.10.90]
 
TASK [java : Java | Oracle download] ****************************************************
skipping: [192.168.10.90]
 
TASK [java : Java | Oracle install] *****************************************************
skipping: [192.168.10.90]
 
PLAY RECAP ******************************************************************************
192.168.10.90              : ok=2    changed=1    unreachable=0    failed=0

Um Java via rpm Paket zu installieren, passen wir die site.yml wie folgt an.

YAML
1
2
3
4
5
6
7
8
- name: java
  hosts: java
  remote_user: root
  roles:
    - java
  vars:
    - java_rpm_install: true
    - java_rpm: jdk-8u161-linux-x64.rpm

Anschließend können wir wieder einen Ansible run ausführen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ansible-playbook site.yml -i hosts
 
PLAY [java] *****************************************************************************
 
TASK [Gathering Facts] ******************************************************************
ok: [192.168.10.90]
 
TASK [java : Java | Install java] *******************************************************
skipping: [192.168.10.90]
 
TASK [java : Java | Oracle download] ****************************************************
changed: [192.168.10.90]
 
TASK [java : Java | Oracle install] *****************************************************
changed: [192.168.10.90]
 
PLAY RECAP ******************************************************************************
192.168.10.90              : ok=3    changed=2    unreachable=0    failed=0

Kategorie: Ansible Tags: Ansible, ansible-playbook, Automatisierung, Java, Role

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden