professormanhattan.java

Java

Stworzone przez Megabyte Labs



Rola Ansible, która instaluje Java na prawie każdej platformie


Spis Treści

Przegląd

To repozytorium jest domem roli Ansible, która instaluje Java na prawie każdej platformie. Java jest językiem programowania opartym na klasach, zorientowanym obiektowo, zaprojektowanym z jak najmniejszą liczbą zależności implementacyjnych.

Funkcje

Zapewnia instalację Java:

  • Instaluje Java za pomocą Chocolatey na Windows
  • Ustawia zmienną JAVA_HOME
  • Instaluje Java na systemach macOS, Linux i Windows
  • Dodaje Java do zmiennej PATH

Optymalizacja dla Windows:

  • Usuwa folder Java z menu startowego w Windows

Szybki start

Chcesz zainstalować Java bez użycia Ansible? Wystarczy, że uruchomisz następujące polecenie związane z Twoim systemem operacyjnym:

Linux/macOS:

curl -sS https://install.doctor/java | bash

Windows:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/java?os=win'))

Ważna uwaga: Przed uruchomieniem powyższych komend powinieneś najpierw odwiedzić stronę, aby upewnić się, że kod jest poprawny. Już wiemy, że jest bezpieczny, ale przed uruchomieniem jakiegokolwiek skryptu na swoim komputerze warto go dokładnie sprawdzić.

Możesz także zapoznać się z Install Doctor. To aplikacja, którą stworzyliśmy, aby zainstalować każdą rolę Ansible jednym poleceniem. Posiada również inne ciekawe funkcje, takie jak możliwość instalacji binariów w locie bez konieczności podawania hasła. Jeśli chcesz włączyć tę rolę do playbooka Ansible (i dostosować ustawienia), kontynuuj czytaną poniżej.

Obsługiwane systemy operacyjne

Tabela poniżej pokazuje systemy operacyjne, na których przetestowaliśmy tę rolę. Jest automatycznie generowana za pomocą testów Ansible Molecule znajdujących się w folderze molecule/. Jest wprowadzona logika CI do automatycznego testowania Windows, macOS, Ubuntu, Fedora, CentOS, Debian i Archlinux. Jeśli Twój system operacyjny nie jest wymieniony, a jest wariantem jednego z systemów, które testujemy (np. system bazujący na Debianie lub RedHat), to istnieje prawdopodobieństwo, że rola będzie działać.

Rodzina OS Wersja OS Status Idempotentny Testowane na

Co oznacza idempotentność? Idempotentny oznacza, że jeśli uruchomisz tę rolę dwa razy z rzędu, to za drugim razem nie będzie żadnych zmian w systemie.

Poświęciliśmy dużo czasu na doskonalenie naszych konfiguracji CI i narzędzi budowlanych. Jeśli chcesz dowiedzieć się więcej o tym, jak udoskonaliliśmy nasz proces, możesz znaleźć interesujące nasze wspólne pliki Ansible oraz repozytoria dokumentacji Ansible. Zobacz przewodnik CONTRIBUTING.md po więcej szczegółów.

Zależności

Większość naszych ról polega na kolekcjach Ansible Galaxy. Niektóre z naszych projektów są również zależne od innych ról i kolekcji opublikowanych w Ansible Galaxy. Zanim uruchomisz tę rolę, będziesz musiał zainstalować zależności kolekcji i ról, a także wymagania Pythona, uruchamiając:

if type poetry &> /dev/null; then poetry install --no-root; else pip3 install -r .config/assets/requirements.txt; fi
ansible-galaxy install -r requirements.yml

Alternatywnie, możesz po prostu uruchomić bash .config/scripts/start.sh, jeśli jesteś nowy w Ansible i nie masz nic przeciwko zainstalowaniu także wymagań deweloperskich. To najłatwiejszy sposób, aby upewnić się, że wszystko działa poprawnie.

Python

Chociaż jedynym narzędziem niezbędnym do uruchomienia tej roli na standardowym komputerze jest Ansible (pakiet Pythona), dołączamy kilka innych zależności Pythona, które są wymagane do specjalnych zastosowań i rozwoju. Poniższa tabela szczegółowo opisuje te pakiety:

Pakiet Opis Wymagane
ansible System zarządzania konfiguracją, który może zdalnie konfigurować komputery
✔️
docker Umożliwia provisionowanie kontenerów Docker za pomocą Ansible
✔️
python-vagrant Wymagany do provisionowania maszyn Wirtualnych Vagrant
✔️
pywinrm Wymagany do provisionowania maszyn Windows korzystających z WinRM
✔️
ansible-lint Narzędzie do lintingu dla plików Ansible
ansibler Narzędzie używane do generowania zaawansowanej dokumentacji (np. generuje wykresy kompatybilności i inne wykresy)
black Automatyczny sformatowacz plików Pythona włączony w przypadku, gdy projekt wykorzystuje skrypty testowe Pythona
blocklint Narzędzie do lintingu, które zapobiega określonym słowom wchodzącym do kodu
flake8 Linter Pythona, który zgłasza błędy składni i stylu Pythona
mod-ansible-autodoc Niestandardowa wersja ansible-autodoc, która pozwala na automatyczne generowanie dokumentacji na podstawie komentarzy w plikach YAML roli
molecule Framework do testowania Ansible
molecule-docker Wtyczka Molecule do provisionowania kontenerów Docker
molecule-vagrant Wtyczka Molecule do provisionowania maszyn Wirtualnych Vagrant
pre-commit-hooks Zestaw narzędzi przydatnych do lintingu
proselint Linter używany do generowania usprawnień języka angielskiego (używany do ulepszania dokumentacji)
yamllint Linter dla plików YAML, który zapewnia prawidłową składnię i styl

Role Galaxy

Chociaż większość naszych ról nie ma zależności, istnieją pewne przypadki, w których inna rola musi być zainstalowana przed kontynuowaniem logiki. Na początku playbooka uruchomią się zależności ról Ansible Galaxy wymienione w meta/main.yml. Te zależności są skonfigurowane do uruchomienia tylko raz na playbook. Jeśli uwzględnisz więcej niż jedną z naszych ról w swoim playbooku, które mają wspólne zależności, wtedy instalacja tej zależności zostanie pominięta po pierwszym uruchomieniu. Niektóre z naszych ról korzystają również z pomocniczych ról bezpośrednio w plikach z zadaniami, co pomaga zachować DRY w głównym playbooku (Gas Station).

Plik requirements.yml zawiera pełną listę zależności Ansible Galaxy wymaganych przez tę rolę (tj. zależności ról z meta/main.yml, ról pomocniczych, kolekcji, itd.). Dla Twojej wygody lista zależności ról wraz z krótkimi opisami znajduje się poniżej:

role_dependencies

Kolekcje Galaxy

Ta rola zależy od wielu kolekcji Ansible Galaxy. Kolekcje oraz linki do ich źródeł znajdują się poniżej.

  • baza danych chocolatey.chocolatey Ansible Galaxy
  • baza danych community.general Ansible Galaxy
  • baza danych google.cloud Ansible Galaxy

Przykładowa książka

Po zainstalowaniu zależności, wszystko co musisz zrobić, to dodać rolę do swojego głównego playbooka. Rola obsługuje zachowanie become, więc możesz po prostu dodać tę rolę do swojego playbooka bez martwienia się o polecenia, które nie powinny być uruchamiane jako root:

- hosts: all
  roles:
    - professormanhattan.java

Jeśli włączasz tę rolę do istniejącego playbooka, warto skopiować wymagania opisane w pyproject.toml i requirements.yml do odpowiadających im plików w katalogu głównym twojego playbooka, abyś musiał się martwić tylko o instalację jednego zestawu wymagań przy przyszłym użyciu. Zauważ, że zależności w pyproject.toml mogą być przeniesione do bardziej tradycyjnego requirements.txt, jeśli aktualnie korzystasz z tego do śledzenia zależności Pythona.

Przykład rzeczywisty

Możesz znaleźć przykład playbooka, który zawiera tę rolę w naszym głównym playbooku (znanym również jako Gas Station). Playbook jest doskonałym przykładem dla kogoś, kto uczy się jak używać Ansible. Zawiera również wiele dobrze przemyślanych narzędzi budowlanych, które bardziej zaawansowani użytkownicy Ansible mogą docenić. A ludzie, którzy nie interesują się Ansible, również mogą na tym skorzystać, ponieważ pozwala to zamienić komputer (i sieć) w optymalne środowisko deweloperskie. W każdym razie jest to wspaniały projekt, o którym powinni wiedzieć deweloperzy!

Udział

Wkład, problemy i prośby o funkcje są mile widziane! Śmiało sprawdź stronę problemów. Jeśli chcesz wziąć udział, zapoznaj się z przewodnikiem dla uczestników.

Wsparcie

Droga Wspaniała Osobie,

Tworzę projekty open source z miłości. Chociaż mam pracę, schronienie i tyle fast foodu, ile mogę zjeść, byłoby miło być docenionym przez społeczność za coś, co kosztowało mnie dużo czasu i pieniędzy. Proszę, rozważ wsparcie mnie! Kto wie? Może będę mógł rzucić pracę i publikować projekty open source pełnoetatowo.

Z wyrazami szacunku,

Brian Zalewski

Sponsorzy Open Collective Sponsorzy GitHub Patreon

Partnerzy

Poniżej znajdziesz listę usług, z których korzystamy, które oferują specjalne zachęty za rejestrację w ich usługach za pośrednictwem naszych linków:

MailChimp DigitalOcean Referral Badge

Licencja

Copyright © 2020-2021 Megabyte LLC. Projekt licencjonowany na mocy MIT.

Zainstaluj
ansible-galaxy install professormanhattan.java
Licencja
other
Pobrania
1.2k
Właściciel
Often imitated, never duplicated