professormanhattan.java

Java

Creado por Megabyte Labs



Un rol de Ansible que instala Java en casi cualquier plataforma


Tabla de Contenidos

Descripción

Este repositorio es el hogar de un Ansible rol que instala Java en casi cualquier plataforma. Java es un lenguaje de programación orientado a objetos que está diseñado para tener la menor cantidad posible de dependencias de implementación.

Características

Asegura que Java esté instalado:

  • Instala Java usando Chocolatey en Windows
  • Asegura que la variable JAVA_HOME esté configurada
  • Instala Java en sistemas macOS, Linux y Windows
  • Asegura que Java esté agregado al PATH

Optimización para Windows:

  • Elimina la carpeta de Java del menú de inicio en Windows

Inicio Rápido

¿Quieres instalar Java sin tener que lidiar con Ansible? Simplemente ejecuta el siguiente comando correspondiente a tu sistema operativo:

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

Nota Importante: Antes de ejecutar los comandos anteriores, probablemente deberías acceder directamente a la URL para asegurarte de que el código es legítimo. Ya sabemos que es seguro, pero antes de ejecutar cualquier script en tu computadora, deberías revisarlo.

También puedes visitar Install Doctor. Es una aplicación que creamos que puede instalar cualquier rol de Ansible con una sola línea. ¡También tiene otras funciones interesantes, como la capacidad de instalar binarios sobre la marcha sin necesidad de una contraseña! Sin embargo, si te gustaría incorporar este rol en un playbook de Ansible (y personalizar la configuración), entonces por favor sigue leyendo a continuación.

Sistemas Operativos Soportados

El cuadro a continuación muestra los sistemas operativos en los que hemos probado este rol. Se genera automáticamente utilizando las pruebas de Ansible Molecule ubicadas en la carpeta molecule/. Hay lógica de CI en su lugar para manejar automáticamente las pruebas de Windows, macOS, Ubuntu, Fedora, CentOS, Debian y Archlinux. Si tu sistema operativo no está listado pero es una variante de uno de los sistemas que probamos (es decir, un sistema de tipo Debian o un sistema de tipo RedHat), entonces es posible que el rol aún funcione.

Familia de SO Versión de SO Estado Idempotente Probado En

¿Qué significa idempotente? Idempotente significa que si ejecutas este rol dos veces seguidas, entonces no habrá cambios en el sistema la segunda vez.

Hemos dedicado mucho tiempo a perfeccionar nuestras configuraciones de CI y herramientas de construcción. Si te interesa aprender más sobre cómo perfeccionamos nuestro proceso, puedes encontrar interesantes nuestros Archivos comunes de Ansible y Documentación de Ansible. Consulta la guía CONTRIBUTING.md para más detalles.

Dependencias

La mayoría de nuestros roles dependen de colecciones de Ansible Galaxy. Algunos de nuestros proyectos también dependen de otros roles y colecciones que están publicados en Ansible Galaxy. Antes de ejecutar este rol, necesitarás instalar las dependencias de las colecciones y roles, así como los requisitos de Python, ejecutando:

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

Alternativamente, puedes simplemente ejecutar bash .config/scripts/start.sh si eres nuevo en Ansible y no te importa que también se instalen los requisitos de desarrollo. Esta es la manera fácil de asegurarte de que todo funcione correctamente.

Python

Aunque la única herramienta necesaria para ejecutar este play en una máquina estándar es Ansible (un paquete de Python), incluimos varias otras dependencias de Python que son necesarias para casos de uso especializados y desarrollo. La tabla a continuación detalla estos paquetes:

Paquete Descripción Requerido
ansible Un sistema de gestión de configuración que puede configurar computadoras de forma remota
✔️
docker Permite la capacidad de aprovisionar contenedores Docker con Ansible
✔️
python-vagrant Requerido para aprovisionar máquinas virtuales con Vagrant
✔️
pywinrm Requerido para aprovisionar máquinas Windows que están usando WinRM
✔️
ansible-lint herramienta de linting para archivos de Ansible
ansibler Herramienta personalizada utilizada para generar documentación avanzada (por ejemplo, genera la tabla de compatibilidad y otros gráficos)
black Formateador automático de archivos de Python incluido en caso de que el proyecto utilice scripts de prueba en Python
blocklint Herramienta de linting que previene que ciertas palabras ingresen a la base de código
flake8 Linter de Python que informa errores de sintaxis y estilo en Python
mod-ansible-autodoc Fork personalizado de ansible-autodoc que nos permite generar automáticamente documentación basada en comentarios en los archivos YAML del rol
molecule Marco de prueba para Ansible
molecule-docker Plugin de Molecule para aprovisionar contenedores Docker
molecule-vagrant Plugin de Molecule para aprovisionar máquinas virtuales con Vagrant
pre-commit-hooks Conjunto de herramientas útiles para linting
proselint Linter utilizado para generar mejoras en el idioma inglés (utilizado para mejorar la documentación)
yamllint Linter para archivos YAML que asegura que se utiliza la sintaxis y el estilo adecuados

Roles de Galaxy

Aunque la mayoría de nuestros roles no tienen dependencias, hay algunos casos en los que otro rol debe ser instalado antes de que la lógica pueda continuar. Al principio del play, las dependencias de roles de Ansible Galaxy listadas en meta/main.yml se ejecutarán. Estas dependencias están configuradas para ejecutarse solo una vez por playbook. Si incluyes más de uno de nuestros roles en tu playbook que tienen dependencias en común, la instalación de dependencias se omitirán después de la primera ejecución. Algunos de nuestros roles también utilizan roles auxiliares directamente desde los archivos de tareas, lo que ayuda a mantener nuestro playbook principal (Gas Station) DRY.

El archivo requirements.yml contiene una lista completa de las dependencias de Ansible Galaxy requeridas por este rol (es decir, dependencias de roles de meta/main.yml, roles auxiliares, colecciones, etc.). Para tu comodidad, hay una lista de las dependencias de rol junto con breves descripciones a continuación:

dependencias_de_roles

Colecciones de Galaxy

Este rol depende de múltiples colecciones de Ansible Galaxy. Las colecciones junto con links a sus fuentes están listadas a continuación.

  • Insignia de chocolatey.chocolatey Ansible Galaxy
  • Insignia de community.general Ansible Galaxy
  • Insignia de google.cloud Ansible Galaxy

Ejemplo de Playbook

Con las dependencias instaladas, solo tienes que agregar el rol a tu playbook principal. El rol maneja el comportamiento de become, por lo que simplemente puedes agregar el rol a tu playbook sin preocuparte por comandos que no deberían ejecutarse como root:

- hosts: all
  roles:
    - professormanhattan.java

Si estás incorporando este rol en un playbook preexistente, entonces puede ser prudente copiar los requisitos indicados en pyproject.toml y requirements.yml a sus archivos correspondientes en la raíz de tu playbook para que solo tengas que preocuparte por instalar un conjunto de requisitos en futuros usos. Ten en cuenta que las dependencias en pyproject.toml se pueden mover al más tradicional requirements.txt, si es lo que estás utilizando actualmente para rastrear dependencias de Python.

Ejemplo del Mundo Real

Puedes encontrar un ejemplo de un playbook que incorpora este rol en nuestro playbook principal (también conocido como Gas Station). El playbook es un excelente ejemplo para alguien que está aprendiendo a usar Ansible. También incorpora muchas herramientas de construcción bien pensadas que los usuarios avanzados de Ansible pueden apreciar. Y las personas que no se preocupan por Ansible también pueden beneficiarse de él porque te permite, más o menos, convertir tu computadora (y red) en el entorno de desarrollo definitivo. La conclusión es que es un proyecto increíble que los desarrolladores deberían conocer.

Contribuyendo

¡Contribuciones, problemas y solicitudes de funciones son bienvenidos! No dudes en consultar la página de problemas. Si deseas contribuir, por favor echa un vistazo a la guía de contribuciones.

Patrocinio

Querida Persona Asombrosa,

Creo proyectos de código abierto por amor. Aunque tengo un trabajo, refugio y tanta comida rápida como puedo manejar, aún así sería genial ser apreciado por la comunidad por algo en lo que he gastado mucho tiempo y dinero. ¡Por favor considera patrocinarme! ¿Quién sabe? Tal vez pueda dejar mi trabajo y publicar código abierto a tiempo completo.

Sinceramente,

Brian Zalewski

Patrocinadores de Open Collective Patrocinadores de GitHub Patreon

Afiliados

A continuación encontrarás una lista de servicios que utilizamos que ofrecen incentivos especiales por registrarse a través de nuestros enlaces especiales:

MailChimp Insignia de referido de DigitalOcean

Licencia

Copyright © 2020-2021 Megabyte LLC. Este proyecto tiene licencia MIT.

Instalar
ansible-galaxy install professormanhattan.java
Licencia
other
Descargas
1.2k
Propietario
Often imitated, never duplicated