professormanhattan.java

Java

Créé par Megabyte Labs



Un rôle Ansible qui installe Java sur presque toutes les plateformes


Table des matières

Aperçu

Ce dépôt est le domicile d'un rôle Ansible qui installe Java sur presque n'importe quelle plateforme. Java est un langage de programmation basé sur des classes et orienté objet, conçu pour avoir le moins de dépendances d'implémentation possible.

Fonctionnalités

Assure que Java est installé :

  • Installe Java en utilisant Chocolatey sur Windows
  • Assure que la variable JAVA_HOME est définie
  • Installe Java sur les systèmes macOS, Linux et Windows
  • Assure que Java est ajouté au PATH

Optimisation pour Windows :

  • Supprime le dossier Java du menu démarrer sur Windows

Démarrage rapide

Vous souhaitez installer Java sans avoir à vous occuper d'Ansible ? Il vous suffit de lancer la commande suivante correspondant à votre système d'exploitation :

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

Note importante : Avant de lancer les commandes ci-dessus, vous devriez probablement accéder directement à l'URL pour vous assurer que le code est légitime. Nous savons déjà qu'il est sûr, mais avant d'exécuter un script sur votre ordinateur, vous devriez l'examiner.

Vous pouvez également consulter Install Doctor. C'est une application que nous avons créée qui peut installer n'importe quel rôle Ansible en une seule ligne de commande. Elle possède d'autres fonctionnalités intéressantes comme la possibilité d'installer des binaires à la volée sans nécessiter de mot de passe. Cependant, si vous souhaitez intégrer ce rôle dans un playbook Ansible (et personnaliser les paramètres), continuez à lire ci-dessous.

Systèmes d'exploitation supportés

Le tableau ci-dessous montre les systèmes d'exploitation sur lesquels nous avons testé ce rôle. Il est généré automatiquement grâce aux tests Ansible Molecule situés dans le dossier molecule/. Il existe une logique CI en place pour gérer automatiquement les tests sur Windows, macOS, Ubuntu, Fedora, CentOS, Debian et Archlinux. Si votre système d'exploitation n'est pas répertorié mais est une variante de l'un des systèmes que nous testons (c'est-à-dire un système de type Debian ou un système de type RedHat), il est possible que le rôle fonctionne néanmoins.

Famille de systèmes Version OS Statut Idempotent Testé sur

Que signifie idempotent ? L'idempotence signifie que si vous exécutez ce rôle deux fois de suite, il n'y aura pas de changements sur le système lors de la seconde exécution.

Nous avons passé beaucoup de temps à perfectionner nos configurations CI et nos outils de construction. Si vous souhaitez en savoir plus sur comment nous avons perfectionné notre processus, vous pourriez trouver nos fichiers communs Ansible et nos documents Ansible intéressants. Consultez le guide CONTRIBUTING.md pour plus de détails.

Dépendances

La plupart de nos rôles s'appuient sur des collections Ansible Galaxy. Certains de nos projets dépendent également d'autres rôles et collections publiés sur Ansible Galaxy. Avant de lancer ce rôle, vous devrez installer les dépendances de collection et de rôle, ainsi que les exigences Python, en exécutant :

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

Alternativement, vous pouvez simplement exécuter bash .config/scripts/start.sh si vous êtes nouveau sur Ansible et ne vous dérangez pas que les exigences de développement soient également installées. C'est la façon facile de vous assurer que tout fonctionne correctement.

Python

Bien que l'outil nécessaire pour exécuter cette play sur une machine standard soit Ansible (un paquet Python), nous incluons plusieurs autres dépendances Python requises pour des cas d'utilisation spécialisés et le développement. Le tableau ci-dessous détaille ces paquets :

Paquet Description Requis
ansible Un système de gestion de configuration qui peut configurer des ordinateurs à distance
✔️
docker Permet la possibilité de provisionner des conteneurs Docker avec Ansible
✔️
python-vagrant Nécessaire pour provisionner des VM Vagrant
✔️
pywinrm Nécessaire pour provisionner des machines Windows utilisant WinRM
✔️
ansible-lint Outil de linting pour les fichiers Ansible
ansibler Outil personnalisé utilisé pour générer une documentation avancée (par exemple, il génère le tableau de compatibilité et d'autres graphiques)
black Auto-formatteur de fichiers Python inclus dans le cas où le projet utilise des scripts de test Python
blocklint Outil de linting qui empêche certains mots d'entrer dans la base de code
flake8 Linter Python qui rapporte les erreurs de syntaxe et de style Python
mod-ansible-autodoc Fork personnalisé de ansible-autodoc qui nous permet de générer automatiquement la documentation en fonction des commentaires dans les fichiers YAML du rôle
molecule Cadre de test pour Ansible
molecule-docker Plugin Molecule pour provisionner des conteneurs Docker
molecule-vagrant Plugin Molecule pour provisionner des VM Vagrant
pre-commit-hooks Suite d'outils utile pour le linting
proselint Linter utilisé pour générer des améliorations de la langue anglaise (utilisé pour améliorer la documentation)
yamllint Linter pour les fichiers YAML qui assure une syntaxe et un style appropriés

Rôles Galaxy

Bien que la plupart de nos rôles n'aient pas de dépendances, il existe des cas où un autre rôle doit être installé avant que la logique puisse continuer. Au début du play, les dépendances de rôle Ansible Galaxy énumérées dans meta/main.yml s'exécuteront. Ces dépendances sont configurées pour ne s'exécuter qu'une seule fois par playbook. Si vous incluez plus d'un de nos rôles dans votre playbook ayant des dépendances communes, alors l'installation des dépendances sera ignorée après la première exécution. Certains de nos rôles utilisent également des rôles d'aide directement à partir des fichiers de tâche, ce qui aide à garder notre playbook principal (Gas Station) DRY.

Le fichier requirements.yml contient une liste complète des dépendances Ansible Galaxy requises par ce rôle (c'est-à-dire les dépendances de rôle dans meta/main.yml, les rôles d'aide, les collections, etc.). Pour votre commodité, une liste des dépendances de rôle avec des descriptions rapides est ci-dessous :

dépendances_de_rôle

Collections Galaxy

Ce rôle dépend de plusieurs collections Ansible Galaxy. Les collections ainsi que des liens vers leur source sont répertoriées ci-dessous.

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

Exemple de Playbook

Avec les dépendances installées, il vous suffit d'ajouter le rôle à votre playbook principal. Le rôle prend en charge le comportement become, vous pouvez donc simplement ajouter le rôle à votre playbook sans vous soucier des commandes qui ne devraient pas être exécutées en tant que root :

- hosts: all
  roles:
    - professormanhattan.java

Si vous incorporez ce rôle dans un playbook existant, il pourrait être judicieux de copier les exigences décrites dans pyproject.toml et requirements.yml vers leurs fichiers correspondants à la racine de votre playbook, afin que vous n'ayez à vous soucier que d'installer un seul ensemble d'exigences lors de l'utilisation future. Notez que les dépendances dans pyproject.toml peuvent être transférées vers le traditionnel requirements.txt, si c'est ce que vous utilisez actuellement pour suivre les dépendances Python.

Exemple du monde réel

Vous pouvez trouver un exemple de playbook qui incorpore ce rôle dans notre playbook principal (a.k.a. Gas Station). Le playbook est un excellent exemple pour quelqu'un qui apprend à utiliser Ansible. Il intègre également de nombreux outils de construction bien pensés que les utilisateurs Ansible plus avancés peuvent apprécier. Et les personnes qui se moquent complètement d'Ansible peuvent également en bénéficier, car il permet de transformer votre ordinateur (et votre réseau) en un environnement de développement ultime. En résumé, c'est un projet génial que les développeurs devraient connaître !

Contribuer

Les contributions, les problèmes et les demandes de fonctionnalités sont les bienvenues ! N'hésitez pas à consulter la page des problèmes. Si vous souhaitez contribuer, veuillez consulter le guide de contribution.

Sponsoring

Cher personne géniale,

Je crée des projets open source par amour. Bien que j'aie un travail, un logement et autant de fast-food que je peux gérer, il serait tout de même agréable d'être apprécié par la communauté pour quelque chose sur lequel j'ai passé beaucoup de temps et d'argent. Merci de considérer me sponsoriser ! Qui sait ? Peut-être que je pourrai quitter mon travail et publier des projets open source à temps plein.

Sincèrement,

Brian Zalewski

Sponsors Open Collective Sponsors GitHub Patreon

Affiliés

Vous trouverez ci-dessous une liste de services que nous utilisons et qui offrent des incitations spéciales pour s'inscrire à leurs services via nos liens spéciaux :

MailChimp Insigne de parrainage DigitalOcean

Licence

Copyright © 2020-2021 Megabyte LLC. Ce projet est sous licence MIT.

Installer
ansible-galaxy install professormanhattan.java
Licence
other
Téléchargements
1.2k
Propriétaire
Often imitated, never duplicated