professormanhattan.snapd

Snap - Un Gestor de Paquetes de Linux

Creado por Megabyte Labs



Un rol de Ansible que asegura que Snap esté instalado y configurado correctamente en sistemas Linux


Tabla de Contenidos

Descripción

Este repositorio es el hogar de un rol de Ansible que asegura que Snap esté instalado y configurado correctamente en sistemas Linux. Snap es un sistema de empaquetado y despliegue de software desarrollado por Canonical para sistemas operativos que utilizan el núcleo de Linux. Los paquetes, llamados snaps, y la herramienta para usarlos, snapd, funcionan en una gama de distribuciones de Linux y permiten a los desarrolladores de software distribuir sus aplicaciones directamente a los usuarios. Los snaps son aplicaciones auto-contenidas que se ejecutan en un sandbox con acceso mediado al sistema anfitrión.

Características

Asegura que Snap esté instalado:

  • Instala Snap en sistemas Linux
  • Asegura que Snap se inicie y esté habilitado al arrancar el sistema

Guía Rápida

¿Buscas instalar Snap sin tener que lidiar con Ansible? Simplemente ejecuta el siguiente comando que corresponde a tu sistema operativo:

Linux/macOS:

curl -sS https://install.doctor/snapd | 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/snapd?os=win'))

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

También puedes echar un vistazo a Install Doctor. Es una aplicación que creamos que puede instalar cualquier rol de Ansible con una sola línea. También tiene algunas funcionalidad interesantes como la capacidad de instalar binarios sobre la marcha sin requerir una contraseña. Sin embargo, si deseas incorporar este rol en un playbook de Ansible (y personalizar configuraciones), entonces continúa leyendo a continuación.

Sistemas Operativos Soportados

El siguiente gráfico muestra los sistemas operativos en los que hemos testeado 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 gestionar 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 basado en Debian o uno basado en RedHat), entonces es posible que el rol aún funcione.

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

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

Hemos pasado mucho tiempo perfeccionando nuestras configuraciones de CI y herramientas de compilación. Si estás interesado en aprender más sobre cómo perfeccionamos nuestro proceso, quizás encuentres 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 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 forma fácil de asegurarte de que todo funciona correctamente.

Python

Aunque la única herramienta necesaria para ejecutar este juego en una máquina estándar es Ansible (un paquete de Python), incluimos varias otras dependencias de Python que son requeridas para casos de uso especial y desarrollo. La siguiente tabla detalla estos paquetes:

Paquete Descripción Requerido
ansible Un sistema de gestión de configuraciones que puede configurar computadoras de forma remota
✔️
docker Permite la provisión de contenedores Docker con Ansible
✔️
python-vagrant Requerido para la provisión de VMs Vagrant
✔️
pywinrm Requerido para la provisión de 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 Python incluido en caso de que el proyecto utilice scripts de prueba en Python
blocklint Herramienta de linting que evita que ciertas palabras ingresen a la base de código
flake8 Linter de Python que reporta errores de sintaxis y estilo de Python
mod-ansible-autodoc Fork personalizado de ansible-autodoc que nos permite autogenerar documentación basada en comentarios en los archivos YAML del rol
molecule Marco de pruebas para Ansible
molecule-docker Plugin de Molecule para la provisión de contenedores Docker
molecule-vagrant Plugin de Molecule para la provisión de VMs Vagrant
pre-commit-hooks Conjunto de herramientas útiles para linting
proselint Linter utilizado para generar mejoras en el lenguaje inglés (utilizado para mejorar la documentación)
yamllint Linter para archivos YAML que asegura el uso de sintaxis y estilo correctos

Roles de Galaxy

Aunque la mayoría de nuestros roles no tienen dependencias, hay algunos casos en los que es necesario instalar otro rol antes de que la lógica pueda continuar. Al comienzo del play, las dependencias de rol de Ansible Galaxy listadas en meta/main.yml se ejecutarán. Estas dependencias están configuradas para ejecutarse una sola vez por playbook. Si incluyes más de uno de nuestros roles en tu playbook que tienen dependencias en común, entonces la instalación de dependencias se omitirá 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 conveniencia, a continuación hay una lista de las dependencias de rol junto con descripciones rápidas:

dependencias_de_roles

Colecciones de Galaxy

Este rol depende de múltiples colecciones de Ansible Galaxy. Las colecciones junto con enlaces a sus fuentes se enumeran a continuación.

  • badge de community.general en Ansible Galaxy
  • badge de google.cloud en Ansible Galaxy

Ejemplo de Playbook

Con las dependencias instaladas, solo necesitas agregar el rol a tu playbook principal. El rol maneja el comportamiento become, así que puedes simplemente agregar el rol a tu playbook sin tener que preocuparte por comandos que no deben ejecutarse como root:

- hosts: all
  roles:
    - professormanhattan.snapd

Si estás incorporando este rol en un playbook preexistente, podría ser prudente copiar los requisitos descritos en pyproject.toml y requirements.yml a sus archivos correspondientes en la raíz de tu playbook, de manera que solo tengas que preocuparte por instalar un conjunto de requisitos durante futuros usos. Ten en cuenta que las dependencias en pyproject.toml pueden trasladarse al más tradicional requirements.txt, si es lo que estás usando 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 más avanzados de Ansible pueden apreciar. Y las personas que no se interesan mucho por Ansible también pueden beneficiarse de él porque permite convertir tu computadora (y red) en el entorno de desarrollo definitivo. En resumen, ¡es un proyecto genial que los desarrolladores deberían conocer!

Contribuyendo

¡Contribuciones, problemas e ideas para nuevas características son bienvenidas! No dudes en revisar la página de problemas. Si deseas contribuir, por favor revisa la guía de contribuciones.

Patrocinio

Estimado/a Persona Asombrosa,

Creo proyectos de código abierto por amor. Aunque tengo un trabajo, un lugar donde vivir, y tanta comida rápida como puedo manejar, aún sería genial ser apreciado por la comunidad por algo en lo que he gastado mucho tiempo y dinero. 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 usamos que ofrecen incentivos especiales por registrarse a través de nuestros enlaces especiales:

MailChimp Insignia de Referencia de DigitalOcean

Licencia

Copyright © 2020-2021 Megabyte LLC. Este proyecto está licenciado bajo MIT.

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