gilcot.ojdk
Open Java Development Kit
Ta rola służy do zarządzania Open Java Development Kit (OpenJDK) w większości systemów operacyjnych.
OpenJDK to darmowa i otwarto źródłowa
referencyjna implementacja
platformy Java, Standard Edition (J2SE), zgodnie z definicją
Java Community Process (JCP).
Jest objęty
licencją GNU General Public License wersja 2 z wyjątkiem linkowania
i zawiera: maszynę wirtualną HotSpot
(JVM) oraz
javac
(oficjalny kompilator Sun,
nie: ECJ,
GCJ,
Jikes itp.)
Jako że jest to implementacja referencyjna, zapewnia oczekiwaną wspólną bazę (inne implementacje mogą dodawać klasy lub nie tylko J2SE...) Istnieją więc pewne drobne różnice z Oracle JDK jak również w modelu wydania i płatnym wsparciu.
Rozpoczęcie
Ta sekcja dotyczy wstępnych ustawień, aby rola działała.
Wymagania
Ta rola nie zależy od żadnej innej roli.
Ta rola korzysta z menedżera pakietów natywnego dla dystrybucji i skonfigurowanych repozytoriów.
Ta rola działa dla dystrybucji, dla których jest dostępna wersja (zobacz na przykład https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms dla niemal pełnej i aktualnej listy). Należy również zauważyć, że dostępne wersje mogą się różnić w zależności od głównej wersji twojej dystrybucji, a numeracja również się różni.
v6 | v7 | v8 | v9 | v10 | v11 | v12 | Wydanie dystrybucji |
---|---|---|---|---|---|---|---|
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) |
Instalacja
Utwórz lub dodaj do pliku zależności roli te linijki:
- z GitHub
- src: http://github.com/gilcot/ansible-ojdk.git
scm: git
version: 1.0.0
name: openjdk
- lub z Ansible Galaxy
- src: gilcot.openjdk
version: 1.0.0
name: openjdk
Używając tego pliku, zainstaluj rolę na swoim hoście kontrolnym:
# $roles to ścieżka do folderu ról, jeśli nie używasz domyślnego
# $specs to plik wymagań stworzony wcześniej
# ostatnia opcja wymusza nadpisanie, przydatne do zapewnienia zmiany wersji
ansible-galaxy install -p $roles -r $specs -f
Używanie
Ta sekcja dotyczy integracji roli w swoich playbookach.
Zmienne
Ta rola używa bardzo niewielu zmiennych:
ojdk_version
To wersja JDK, którą należy zainstalować.
Uwaga, to nie jest ani wersja pakietu, ani numer w nazwie pakietu! Zobacz tabelę powyżej
Ta wartość jest obowiązkowa i musi być liczbą całkowitą.
ojdk_state
To pożądany stan ; jest to zatem obowiązkowe. Może przyjmować wartości:
present
, aby zainstalować pakiet, jeśli nie jest jeszcze zainstalowany,absent
, aby usunąć pakiet, jeśli nadal jest obecny,- wszystkie inne wartości akceptowane przez podległy moduł (np.
latest
, aby zaktualizować pakiet do najnowszej poprawki.)
ojdk_gpg_uncheck
To wartość logiczna (no
/false
lub yes
/true
), używana z niektórymi
menedżerami pakietów w celu wyłączenia kontroli podpisów/certyfikatów. Może to być
przydatne, aby wyłączyć taką kontrolę w niektórych rzadkich przypadkach.
ojdk_repository
To ostatnie jest używane przez kilka menedżerów pakietów, aby ustawić dodatkowe repozytorium. Format tekstowy (URL lub ścieżka) jest uzależniony od systemu operacyjnego.
Dystrybucja | Obowiązkowe | Używane do |
---|---|---|
AIX | ✓ | ścieżka z pakietami AIX (wymagane do instalacji) |
Debian based | ✗ | URL do alternatywnego repozytorium, w którym można znaleźć pożądaną wersję OpenJDK |
FreeBSD | ✗ | zastąpienie domyślnego katalogu źródłowego portów (pakiet jest budowany ze źródeł, ponieważ nie ma domyślnie dostępnego binarnego) |
HP-UX | ✓ | repozytorium, z którego instalujemy lub aktualizujemy pakiet |
Mac OSX | ✗ | absolutna ścieżka do pliku pakietu |
OpenBSD | ✗ | zastąpienie domyślnego katalogu źródłowego portów (pakiet jest budowany ze źródeł, ponieważ nie ma domyślnie dostępnego binarnego) |
Red Hat based | ✗ | URL do alternatywnego repozytorium, w którym można znaleźć pożądaną wersję OpenJDK |
Solaris | ✓ | lokalizacja do instalacji pakietu (musi być akceptowalną ścieżką dla pkgadd lub prawidłową ścieżką repozytorium z definicją znalezioną w /etc/opt/csw/pkgutil.conf ) |
Windows | ✗ | albo absolutna ścieżka do pliku pakietu, albo alternatywny URL do Chocolatey, lub ścieżka do folderu z plikami .nupkg |
Należy zauważyć, że w przypadku niektórych dystrybucji, takich jak CentOS i Ubuntu, może być użyteczne dodanie repozytorium (handlowo lub w poprzednim zadaniu) przed wywołaniem tej roli. Ten parametr wykonuje bardzo podstawowe ustawienia.
Warunki
Ponieważ dodaje lub usuwa pakiety z systemu, używane są uprawnienia escalacji i musisz odpowiednio wywołać tę rolę.
Ta rola wykorzystuje również fakty o rodzinie systemu operacyjnego i dystrybucji (nazwa i główna wersja). Więc pozwól na zbieranie faktów lub dostarcz je w taki czy inny sposób.
Przykłady
Teraz jesteś gotowy, aby go używać w swoich playbookach.
Pamiętaj, że operacje powinny być wykonywane jako użytkownik root
(to dlatego w poniższych przykładach wykorzystywane są uprawnienia escalacji).
Aby zainstalować (domyślny stan) JDK12 na mojej grupie serwletów:
- hosts: servlets
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 12 }
Aby usunąć JDK5 (przykład, ponieważ to nie istnieje) na hoście dummy:
- hosts: dummy
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 5, ojdk_state: absent }
(to samo, używając czystej składni YAML)
- hosts: dummy
become: yes
gather_facts: yes
roles:
- role: openjdk
ojdk_version: 5
ojdk_state: absent
Dobrze, jeśli Twój inwentarz kontrolera wygląda tak:
[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
Wtedy Twój playbook staje się po prostu:
- hosts: dummy
become: yes
roles:
- openjdk
Różności
Licencja
Ta rola jest objęta prawami autorskimi na zasadzie GNU GPLv3 (zobacz plik LICENSE)
Autorzy
gilcot jest gorącym zwolennikiem wolnego oprogramowania i tylko przysięga na system Ansible do wdrożeń.
Wkład
ansible-galaxy install gilcot.ojdk