megabyte-labs.java
Java
Créé par Megabyte Labs
Un rôle Ansible qui installe Java sur presque toutes les plateformes
Table des matières
- Aperçu
- Fonctionnalités
- Démarrage rapide
- Systèmes d'exploitation pris en charge
- Dépendances
- Exemple de Playbook
- Contribuer
- Licence
Aperçu
Ce dépôt abrite un rôle Ansible qui installe Java sur presque toutes les plateformes. 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 l'installation de Java :
- 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 de démarrage sur Windows
Démarrage rapide
Vous souhaitez installer Java sans avoir à utiliser Ansible ? Il suffit d'exécuter la commande suivante en fonction de 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 d'exécuter 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 tout script sur votre ordinateur, vous devriez l'inspecter.
Vous pouvez également consulter Install Doctor. C'est une application que nous avons créée qui peut installer n'importe quel rôle Ansible avec une seule ligne de commande. Elle a d'autres fonctionnalités intéressantes, comme la possibilité d'installer des binaires à la volée sans exiger 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 pris en charge
Le tableau ci-dessous montre les systèmes d'exploitation sur lesquels nous avons testé ce rôle. Il est généré automatiquement à l'aide des tests Ansible Molecule situés dans le dossier molecule/
. Il existe une logique CI en place pour tester automatiquement 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 basé sur Debian ou RedHat), il est possible que le rôle fonctionne néanmoins.
Famille OS | Version OS | Statut | Idempotent | Testé sur |
---|
Que signifie idempotent ? Idempotent signifie que si vous exécutez ce rôle deux fois de suite, il n'y aura aucun changement sur le système la deuxième fois.
Nous avons passé beaucoup de temps à perfectionner nos configurations CI et nos outils de construction. Si vous êtes intéressé à en savoir plus sur la façon dont nous avons perfectionné notre processus, vous pourriez trouver intéressants nos dépôts Fichiers communs Ansible et Documentation Ansible. Consultez le guide CONTRIBUTING.md pour plus de détails.
Dépendances
La plupart de nos rôles dépendent des collections Ansible Galaxy. Certains de nos projets dépendent également d'autres rôles et collections publiés sur Ansible Galaxy. Avant d'exécuter ce rôle, vous devrez installer les dépendances de la collection et du 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 débutez avec Ansible et ne vous dérangez pas que les exigences de développement soient également installées. C'est le moyen le plus facile pour s'assurer que tout fonctionne correctement.
Python
Bien que le seul outil nécessaire pour exécuter ce play sur une machine standard soit Ansible (un package 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 packages :
Package | Description | Requis |
---|---|---|
ansible | Un système de gestion de configuration qui peut configurer à distance les ordinateurs | ✔️ |
docker | Permet de provisionner des conteneurs Docker avec Ansible | ✔️ |
python-vagrant | Nécessaire pour provisionner des VMs Vagrant | ✔️ |
pywinrm | Nécessaire pour provisionner des machines Windows utilisant WinRM | ✔️ |
ansible-lint | Outil d’analyse 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 quelques autres graphiques) | |
black | Formateur automatique de fichiers Python inclus au cas où le projet utilise des scripts de test Python | |
blocklint | Outil d’analyse qui empêche certains mots d'entrer dans la base de code | |
flake8 | Analyseur Python qui signale les erreurs de syntaxe et de style Python | |
mod-ansible-autodoc | Fork personnalisé de ansible-autodoc qui nous permet de générer automatiquement de la documentation basée sur 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 VMs Vagrant | |
pre-commit-hooks | Suite d'outils utile pour l’analyse | |
proselint | Outil d’analyse utilisé pour générer des améliorations en langue anglaise (utilisé pour améliorer la documentation) | |
yamllint | Outil d’analyse pour les fichiers YAML qui garantit l'utilisation de la syntaxe et du style appropriés |
Rôles Galaxy
Bien que la plupart de nos rôles n’aient pas de dépendances, il y a 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 répertoriées dans meta/main.yml
seront exécutées. 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 qui ont des dépendances communes, l'installation des dépendances sera sautée après la première exécution. Certains de nos rôles utilisent également des rôles d'assistance directement à partir des fichiers de tâche, ce qui aide à maintenir notre playbook principal (Station-Service) 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 de meta/main.yml
, les rôles d'assistance, les collections, etc.). Pour votre commodité, une liste des dépendances de rôle, accompagnée de brèves descriptions, se trouve 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 listées ci-dessous.
Exemple de Playbook
Avec les dépendances installées, il vous suffit d'ajouter le rôle à votre playbook principal. Le rôle gère le comportement become
, donc vous pouvez 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 intégrez ce rôle dans un playbook existant, il peut être judicieux de copier les exigences décrites dans pyproject.toml
et requirements.yml
vers les fichiers correspondants à la racine de votre playbook, afin de ne vous soucier que de l'installation d'un seul ensemble d'exigences lors des utilisations futures. Notez que les dépendances dans pyproject.toml
peuvent être déplacées vers le plus 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 d'un playbook qui intègre ce rôle dans notre playbook principal (alias Station-Service). 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 ne se soucient pas vraiment d'Ansible peuvent également en bénéficier car cela vous permet de transformer votre ordinateur (et votre réseau) en un environnement de développement ultime. En fin de compte, c'est un projet formidable que les développeurs devraient connaître !
Contribuer
Les contributions, les problèmes et les demandes de fonctionnalités sont les bienvenus ! N'hésitez pas à consulter la page des problèmes. Si vous souhaitez contribuer, veuillez consulter le guide de contribution.
Sponsoring
Cher(e) Personne Géniale,
Je crée des projets open source par passion. Bien que j'aie un emploi, un toit et autant de fast-food que je peux gérer, ce serait quand même formidable d'être reconnu par la communauté pour quelque chose sur quoi j'ai passé beaucoup de temps et d'argent. Veuillez envisager de me soutenir ! Qui sait ? Peut-être que je pourrai quitte mon emploi pour publier open source à plein temps.
Cordialement,
Brian Zalewski
Partenaires
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 :

Licence
Droits d'auteur © 2020-2021 Megabyte LLC. Ce projet est sous licence MIT.
Installs Java on almost any platform
ansible-galaxy install megabyte-labs.java