frieder.oraclejdk

ansible-role-oraclejdk

Rola Ansible do instalacji Oracle JDK.

Platforma Platforma Platforma Platforma Platforma Platforma Platforma

OracleJDK OracleJDK

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.gz
  • unzip - 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
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
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
O projekcie

Ansible role to install Oracle JDK 8/9

Zainstaluj
ansible-galaxy install frieder.oraclejdk
Licencja
mit
Pobrania
113
Właściciel