frieder.oraclejdk
ansible-role-oraclejdk
Rola Ansible do instalacji Oracle JDK.
Podsumowanie
Ta rola Ansible instaluje Oracle JDK oraz opcjonalnie Java Cryptography Extension na docelowym hoście. OpenJDK nie jest wspierany. Rola była testowana z Oracle JDK 8u144/8u151 oraz JDK 9u181/9.0.1 na poniższych dystrybucjach Linuksa.
- Ubuntu 16.04
- Debian 9
- RHEL 7.4
- CentOS 7.3
- Fedora 26
- SLE 12 SP2
- openSUSE 42.2
Wymagania
Ansible >= 2.x (testowane z 2.3.2.0 i 2.4.0.0)
Ta rola wymaga również zainstalowania następujących pakietów na docelowym hoście.
tar
- Zawsze wymagany do rozpakowania archiwum JDK tar.gzunzip
- Wymagany tylko, jeśli ma być zainstalowane JCE dla JDK8
Instalacja
Aby używać tej roli, najpierw trzeba ją pobrać z Ansible Galaxy. Aby zainstalować rolę, wykonaj poniższe polecenie na swoim kontrolerze Ansible. Więcej informacji można znaleźć w oficjalnej dokumentacji.
ansible-galaxy install frieder.oraclejdk
Powyższe polecenie zawsze pobierze najnowszą wersję z Galaxy. Można także pobrać rolę z Github i zdefiniować konkretną wersję do pobrania. To daje lepszą kontrolę nad wersją tej roli. Utwórz plik requirements.yml
i umieść w nim poniższy kod.
---
- name: frieder.oraclejdk
src: https://github.com/frieder/ansible-role-oraclejdk
version: 2.0.0
Następnie możesz wykonać ansible-galaxy install -r ./requirements.yml --ignore-errors
, a wszystkie zależności z listy zostaną pobrane. --ignore-errors
zapewni, że cała lista zostanie przetworzona, nawet jeśli niektóre zależności już zostały pobrane. Fajny przegląd możliwych wpisów do requirements.yml
można znaleźć tutaj.
Zmienne roli
Wszystkie zmienne roli są zdefiniowane w defaults/main.yml
. Można je nadpisywać w playbooku (patrz przykłady na końcu).
Zmienna | Domyślna | Opis |
---|---|---|
oraclejdk_license_accept | false | Podczas instalacji JDK musi być ustawione na true, w przeciwnym razie play zakończy się niepowodzeniem. Nie jest wymagane przy usuwaniu JDK. |
oraclejdk_state | present | Określa, czy dodać, czy usunąć JDK z docelowego hosta. Możliwe wartości to [present,absent] . |
oraclejdk_cleanup | true | Usuwa wszystkie pliki/katalogi tymczasowe (lokalne i zdalne) po instalacji. Ustawienie na true spowoduje, że play będzie miało status "zmieniony". |
oraclejdk_dl_dir | /tmp/oraclejdk | Katalog (lokalny i zdalny), do którego archiwa będą pobierane/kopiowane/rozpakowywane. |
oraclejdk_home | W zależności od wartości oraclejdk_state, ta właściwość przyjmuje różne wartości. Dla present będzie to pojedynczy ciąg wskazujący pożądane miejsce JAVA_HOME. Dla absent przyjmuje listę poprzednich lokalizacji JDK, które powinny zostać usunięte. W tym przypadku należy podać listę z co najmniej jednym wpisem. | |
oraclejdk_profile_file | /etc/profile.d/java.sh | Plik, w którym rola ustawi JAVA_HOME i eksport PATH. |
oraclejdk_cookie | Cookie:oraclelicense=accept-securebackup-cookie | Ciasteczko wymagane do automatycznych pobrań z oracle.com. Sprawdzenie licencji odbywa się inną zmienną. |
oraclejdk_url | URL archiwum JDK, albo na oracle.com, albo w lokalnym repozytorium korporacyjnym (zalecane). | |
oraclejdk_url_user | W przypadku wymaganej prostej autoryzacji HTTP można tutaj podać nazwę użytkownika. | |
oraclejdk_url_pass | W przypadku wymaganej prostej autoryzacji HTTP można tutaj podać hasło. | |
oraclejdk_checksum | SHA256 suma kontrolna archiwum JDK. Jest używana do weryfikacji, czy pobrany plik jest poprawny. Aby wyłączyć to sprawdzenie, wystarczy podać pustą wartość (oraclejdk_checksum: '' ). |
|
oraclejdk_sethome | true | Po ustawieniu na true zaktualizuje globalną zmienną JAVA_HOME, aby wskazywała na katalog instalacyjny JDK i doda binaria do zmiennej PATH. Zobacz także zmienną oraclejdk_profile_file . |
oraclejdk_alternative_upd | true | Po ustawieniu na true ustawi alternatywę dla java (update-alternatives --config java ) na aktualne JDK. |
oraclejdk_alternative_prio | 1 | Priorytet używany w poleceniu update-alternatives . JDK z najwyższym priorytetem wygrywa. |
oraclejdk_alternative_items |
|
Ta właściwość pozwala zdefiniować, jakiego rodzaju alternatywy powinny być skonfigurowane dla JDK. |
oraclejdk_jce_install | false | Po ustawieniu na true zainstaluje i doda najnowszą Java Cryptography Extension (JCE) do JDK. Należy pamiętać, że w JDK9 nieograniczona siła klucza jest włączona domyślnie i nie są wymagane dodatkowe działania. Więcej informacji można znaleźć na liście mailingowej security-dev. |
oraclejdk_jce_name | UnlimitedJCEPolicyJDK8 | Tylko JDK8. Nazwa folderu w archiwum JCE. |
oraclejdk_jce_url | Tylko JDK8. URL archiwum JCE, albo na oracle.com, albo w lokalnym repozytorium korporacyjnym (zalecane). | |
oraclejdk_jce_checksum | Tylko JDK8. SHA256 suma kontrolna archiwum JCE. Aby wyłączyć to sprawdzenie, wystarczy podać pustą wartość (oraclejdk_jce_checksum: '' ). |
Przykłady Playbooków
Poniżej kilka przykładów, jak używać tej roli w playbooku Ansible.
JDK8 i JDK9 razem, ustawienie home dla JDK8, aktualizacja alternatyw dla obu JDK z różnymi priorytetami
- hosts: jdk
pre_tasks:
- name: Instalacja wymaganych pakietów (127.0.0.1)
delegate_to: 127.0.0.1
run_once: true
package:
name: '{{ item }}'
state: present
with_items:
- tar
- unzip
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_sethome: false
oraclejdk_alternative_prio: 100
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8u151
oraclejdk_alternative_prio: 200
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK8 z minimalną konfiguracją
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8_151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
JDK8 z JCE
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/java-8-151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK8 pełna konfiguracja
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_cleanup: true
oraclejdk_dl_dir: /tmp/java_download
oraclejdk_home: /opt/java/java-8-151
oraclejdk_sethome: true
oraclejdk_alternative_upd: true
oraclejdk_alternative_prio: 123
oraclejdk_alternative_items:
- jar
- java
- javac
- jcmd
- jconsole
- jmap
- jps
- jstack
- jstat
- jstatd
oraclejdk_profile_file: /etc/profile.d/java.sh
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK9
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
JDK9 bez sprawdzania sumy kontrolnej
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
JDK9 dodaj nowe JDK, usuń stare JDK
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
- role: frieder.oraclejdk
oraclejdk_state: absent
oraclejdk_home:
- /opt/java/jdk9.0.1
- /opt/java/java-8-151
ansible-galaxy install frieder.oraclejdk