megabyte-labs.java

Java

Eingereicht von Megabyte Labs



Eine Ansible-Rolle, die Java auf fast jeder Plattform installiert


Inhalt

Überblick

Dieses Repository ist das Zuhause einer Ansible Rolle, die Java auf fast jeder Plattform installiert. Java ist eine klassenbasierte, objektorientierte Programmiersprache, die so wenig Implementierungsabhängigkeiten wie möglich haben soll.

Funktionen

Stellt sicher, dass Java installiert ist:

  • Installiert Java über Chocolatey auf Windows
  • Stellt sicher, dass die JAVA_HOME-Variable gesetzt ist
  • Installiert Java auf macOS, Linux und Windows-Systemen
  • Stellt sicher, dass Java zum PATH hinzugefügt wird

Optimierung für Windows:

  • Entfernt den Java-Ordner aus dem Startmenü auf Windows

Schnellstart

Möchten Sie Java installieren, ohne sich mit Ansible herumschlagen zu müssen? Führen Sie einfach den folgenden Befehl aus, der zu Ihrem Betriebssystem passt:

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'))

Wichtiger Hinweis: Bevor Sie die oben genannten Befehle ausführen, sollten Sie wahrscheinlich direkt auf die URL zugreifen, um sicherzustellen, dass der Code legitim ist. Wir wissen bereits, dass er sicher ist, aber bevor Sie ein Skript auf Ihrem Computer ausführen, sollten Sie es überprüfen.

Sie können auch Install Doctor ausprobieren. Es handelt sich um eine von uns erstellte App, die jede Ansible-Rolle mit einem einzigen Befehl installieren kann. Sie hat auch einige andere nützliche Funktionen, wie die Möglichkeit, Binärdateien ohne Passwort in Echtzeit zu installieren. Wenn Sie jedoch diese Rolle in ein Ansible-Playbook integrieren möchten (und Einstellungen anpassen wollen), lesen Sie bitte weiter unten.

Unterstützte Betriebssysteme

Die nachfolgende Tabelle zeigt die Betriebssysteme, auf denen wir diese Rolle getestet haben. Sie wird automatisch generiert, indem die Ansible Molecule-Tests im Ordner molecule/ verwendet werden. Es gibt CI-Logik, um die Tests für Windows, macOS, Ubuntu, Fedora, CentOS, Debian und Archlinux automatisch zu verwalten. Wenn Ihr Betriebssystem nicht aufgelistet ist, aber eine Variante eines der getesteten Systeme ist (z. B. ein Debian-basiertes oder ein RedHat-basiertes System), könnte die Rolle trotzdem funktionieren.

OS-Familie OS-Version Status Idempotent Getestet auf

Was bedeutet idempotent? Idempotent bedeutet, dass beim zweimaligen Ausführen dieser Rolle keine Änderungen am System beim zweiten Mal vorgenommen werden.

Wir haben viel Zeit damit verbracht, unsere CI-Konfigurationen und Build-Tools zu perfektionieren. Wenn Sie mehr darüber erfahren möchten, wie wir unseren Prozess optimiert haben, werden Sie unsere Allgemeinen Ansible-Dateien und Ansible-Dokumentation Repositories interessant finden. Siehe die CONTRIBUTING.md Anleitung für weitere Details.

Abhängigkeiten

Die meisten unserer Rollen basieren auf Ansible Galaxy Kollektionen. Einige unserer Projekte hängen auch von anderen Rollen und Kollektionen ab, die auf Ansible Galaxy veröffentlicht sind. Bevor Sie diese Rolle ausführen, müssen Sie die Sammlung und die Rollenabhängigkeiten sowie die Python-Anforderungen installieren, indem Sie Folgendes ausführen:

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

Alternativ können Sie bash .config/scripts/start.sh ausführen, wenn Sie neu bei Ansible sind und nichts gegen die Installation der Entwicklungsanforderungen haben. Das ist der einfache Weg, um sicherzustellen, dass alles richtig funktioniert.

Python

Obwohl das einzige Werkzeug, das erforderlich ist, um dies auf einem Standardgerät auszuführen, Ansible (ein Python-Paket) ist, fügen wir mehrere andere Python-Abhängigkeiten hinzu, die für spezielle Anwendungsfälle und die Entwicklung erforderlich sind. Die folgende Tabelle beschreibt diese Pakete:

Paket Beschreibung Erforderlich
ansible Ein Konfigurationsmanagementsystem, das Computer aus der Ferne konfigurieren kann
✔️
docker Ermöglicht die Bereitstellung von Docker-Containern mit Ansible
✔️
python-vagrant Benötigt zum Bereitstellen von Vagrant-VMs
✔️
pywinrm Benötigt zum Bereitstellen von Windows-Computern, die WinRM verwenden
✔️
ansible-lint Linting-Tool für Ansible-Dateien
ansibler Eigenes Tool zur Erstellung fortschrittlicher Dokumentationen (z. B. zur Generierung von Kompatibilitätstabellen)
black Python-Datei-Auto-Formatter, falls das Projekt Python-Testskripte verwendet
blocklint Linting-Tool, das verhindert, dass bestimmte Wörter in den Code gelangen
flake8 Python-Linter, der Fehler in der Python-Syntax und -Stil berichte
mod-ansible-autodoc Benutzerdefinierte Abspaltung von ansible-autodoc, die es uns ermöglicht, Dokumentationen basierend auf Kommentaren in den YAML-Dateien der Rolle automatisch zu generieren
molecule Testframework für Ansible
molecule-docker Molecule-Plugin zur Bereitstellung von Docker-Containern
molecule-vagrant Molecule-Plugin zur Bereitstellung von Vagrant-VMs
pre-commit-hooks Sammlung nützlicher Werkzeuge zum Linting
proselint Linter, der zur Verbesserung der englischen Sprache verwendet wird (um Dokumentationen zu verbessern)
yamllint Linter für YAML-Dateien, der sicherstellt, dass die richtige Syntax und das richtige Styling verwendet wird

Galaxy-Rollen

Obwohl die meisten unserer Rollen keine Abhängigkeiten haben, gibt es in einigen Fällen Rollen, die installiert werden müssen, bevor die Logik fortfahren kann. Zu Beginn des Plays werden die in meta/main.yml aufgeführten Ansible Galaxy-Rollenabhängigkeiten ausgeführt. Diese Abhängigkeiten sind so konfiguriert, dass sie nur einmal pro Playbook ausgeführt werden. Wenn Sie mehr als eine unserer Rollen in Ihr Playbook einfügen, die gemeinsame Abhängigkeiten hat, wird die Installationsabhängigkeit nach dem ersten Lauf übersprungen. Einige unserer Rollen verwenden auch Helper-Rollen direkt aus den Aufgaben-Dateien, was hilft, unser Haupt-Playbook (Tankstelle) DRY zu halten.

Die Datei requirements.yml enthält eine vollständige Liste der von dieser Rolle benötigten Ansible Galaxy-Abhängigkeiten (d. h. meta/main.yml Rollenabhängigkeiten, Helper-Rollen, Kollektionen usw.). Zu Ihrer Bequemlichkeit finden Sie hier eine Liste der Rollenabhängigkeiten mit einer kurzen Beschreibung:

rollendependenzen

Galaxy-Kollektionen

Diese Rolle ist auf mehrere Ansible Galaxy-Kollektionen angewiesen. Die Kollektionen sowie Links zu ihren Quellen sind unten aufgeführt.

  • chocolatey.chocolatey Ansible Galaxy Abzeichen
  • community.general Ansible Galaxy Abzeichen
  • google.cloud Ansible Galaxy Abzeichen

Beispiel-Playbook

Wenn die Abhängigkeiten installiert sind, müssen Sie nur die Rolle zu Ihrem Haupt-Playbook hinzufügen. Die Rolle kümmert sich um das become Verhalten, sodass Sie die Rolle einfach zu Ihrem Playbook hinzufügen können, ohne sich um Befehle kümmern zu müssen, die nicht als Root ausgeführt werden sollten:

- hosts: all
  roles:
    - professormanhattan.java

Wenn Sie diese Rolle in ein bereits bestehendes Playbook integrieren, kann es ratsam sein, die Anforderungen aus pyproject.toml und requirements.yml in die entsprechenden Dateien im Wurzelverzeichnis Ihres Playbooks zu kopieren, sodass Sie sich nur um die Installation eines Satzes von Anforderungen bei zukünftiger Nutzung kümmern müssen. Beachten Sie, dass die Abhängigkeiten in pyproject.toml in die traditionellere Datei requirements.txt verschoben werden können, wenn Sie diese derzeit zur Verfolgung von Python-Abhängigkeiten verwenden.

Beispiel aus der Praxis

Sie finden ein Beispiel für ein Playbook, das diese Rolle enthält, in unserem Haupt-Playbook (a.k.a. Tankstelle). Das Playbook ist ein hervorragendes Beispiel für jemanden, der lernt, wie man Ansible verwendet. Es enthält auch viele gut durchdachte Build-Tools, die fortgeschrittene Ansible-Benutzer zu schätzen wissen. Und Personen, die sich nicht um Ansible kümmern, können auch davon profitieren, da es Ihnen praktisch ermöglicht, Ihren Computer (und Ihr Netzwerk) in die ultimative Entwicklungsumgebung zu verwandeln. Das Wichtigste ist, dass es ein großartiges Projekt ist, das Entwickler kennen sollten!

Beitragen

Beiträge, Probleme und Funktionsanfragen sind willkommen! Überprüfen Sie gerne die Issues-Seite. Wenn Sie beitragen möchten, werfen Sie bitte einen Blick auf die Beitragsleitfaden.

Sponsoring

Lieber großartiger Mensch,

Ich erstelle Open-Source-Projekte aus Liebe. Obwohl ich einen Job, ein Dach über dem Kopf und so viel Fast Food, wie ich brauche, habe, wäre es trotzdem toll, von der Community für etwas geschätzt zu werden, an dem ich viel Zeit und Geld investiert habe. Bitte ziehen Sie in Betracht, mich zu unterstützen! Wer weiß? Vielleicht kann ich meinen Job kündigen und Open-Source hauptberuflich veröffentlichen.

Mit freundlichen Grüßen,

Brian Zalewski

Open Collective Sponsoren GitHub Sponsoren Patreon

Partner

Nachfolgend finden Sie eine Liste von Diensten, die wir nutzen und die spezielle Anreize für die Anmeldung über unsere speziellen Links bieten:

MailChimp DigitalOcean Empfehlungsabzeichen

Lizenz

Copyright © 2020-2021 Megabyte LLC. Dieses Projekt ist MIT lizenziert.

Installieren
ansible-galaxy install megabyte-labs.java
GitHub Repository
Lizenz
other
Downloads
940
Besitzer
Free open-source developer tools for managing massive amounts of code