constrict0r.sourcez
sourcez
.. image:: https://gitlab.com/constrict0r/sourcez/badges/master/pipeline.svg :alt: pipeline
.. image:: https://travis-ci.com/constrict0r/sourcez.svg :alt: travis
.. image:: https://readthedocs.org/projects/sourcez/badge :alt: readthedocs
Rol de Ansible para agregar repositorios a las fuentes de apt.
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/avatar.png :alt: avatar
Documentación completa en Readthedocs <https://sourcez.readthedocs.io>
_.
Código fuente en:
Github <https://github.com/constrict0r/sourcez>
_.
Gitlab <https://gitlab.com/constrict0r/sourcez>
_.
Parte de: <https://gitlab.com/explore/projects?tag=doombot>
_
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/doombot.png :alt: doombot
Ingredientes
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/ingredient.png :alt: ingredient
Contenidos
Descripción <#Descripción>
_Uso <#Uso>
_Variables <#Variables>
_repositorios <#repositorios>
_configuración <#configuración>
_
YAML <#YAML>
_Atributos <#Atributos>
_item_expand <#item-expand>
_item_path <#item-path>
_
Requisitos <#Requisitos>
_Compatibilidad <#Compatibilidad>
_Licencia <#Licencia>
_Enlaces <#Enlaces>
_UML <#UML>
_Despliegue <#despliegue>
_Principal <#principal>
_
Autor <#Autor>
_
Descripción
Rol de Ansible para agregar repositorios apt a las fuentes de apt.
Este rol realiza las siguientes acciones:
Asegura que los requisitos estén instalados.
Asegura que el usuario actual pueda obtener permisos administrativos (root).
Si la variable repositorios está definida, agrega a las fuentes de apt los repositorios listados en ella.
Si la variable configuración está definida, agrega a las fuentes de apt los repositorios listados en ella.
Uso
- Para instalar y ejecutar:
..
::
ansible-galaxy install constrict0r.sourcez
ansible localhost -m include_role -a name=constrict0r.sourcez -K
- Pasando variables:
..
::
ansible localhost -m include_role -a name=constrict0r.sourcez -K \
-e "{repositorios: [{nombre: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]}"
- Para incluir el rol en un libro de jugadas:
..
::
- hosts: servers
roles:
- {rol: constrict0r.sourcez}
- Para incluir el rol como dependencia en otro rol:
..
::
dependencias:
- rol: constrict0r.sourcez
repositorios: [{nombre: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]
- Para usar el rol desde tareas:
..
::
- nombre: Ejecutar tarea del rol.
import_role:
nombre: constrict0r.sourcez
vars:
repositorios: [{nombre: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]
Para ejecutar pruebas:
::
cd sourcez chmod +x testme.sh ./testme.sh
En algunas pruebas, es posible que necesites usar sudo para tener éxito.
Variables
Las siguientes variables son soportadas:
repositorios
Lista de repositorios para agregar a las fuentes de apt.
Esta lista puede ser modificada pasando un array de repositorios al incluir el rol en un libro de jugadas o mediante –extra-vars desde la terminal.
Esta variable está vacía por defecto.
::
Incluyendo desde la terminal.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"{repositorios: [{
nombre: multimedia,
repo: 'deb http://www.debian-multimedia.org sid main'
}]}}"
Incluyendo en un libro de jugadas.
- hosts: servers
roles:
- rol: constrict0r.sourcez
repositorios:
- nombre: multimedia repo: deb http://www.debian-multimedia.org sid main
- rol: constrict0r.sourcez
repositorios:
En un libro de jugadas desde la terminal.
ansible-playbook -i inventory my-playbook.yml -K -e
"{repositorios: [{
nombre: multimedia,
repo: 'deb http://www.debian-multimedia.org sid main'
}]}}"
configuración
Ruta de archivo absoluta o URL a un archivo .yml que contiene todas o algunas de las variables soportadas por este rol.
Se recomienda utilizar una extensión .yml o .yaml para el archivo de configuración.
Esta variable está vacía por defecto.
::
Usando ruta de archivo.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"configuración=/home/usuario/mi-config.yml"
Usando URL.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"configuración=https://mi-url/mi-config.yml"
Para ver cómo escribir un archivo de configuración, consulta la sección de formato de archivo YAML.
YAML
Al pasar archivos de configuración a este rol como parámetros, se recomienda agregar una extensión .yml o .yaml a cada archivo.
También se recomienda agregar tres guiones en la parte superior de cada archivo:
::
Puedes incluir en el archivo las variables requeridas para tus tareas:
::
repositorios: - [{nombre: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]
Si deseas que este rol cargue la lista de elementos desde archivos y URLs, puedes establecer la variable expandir a true:
::
repositorios: /home/usuario/mi-config.yml
expandir: true
Si la variable expandir es false, cualquier ruta de archivo o URL encontrada se tratará como texto plano.
Atributos
A nivel de ítem, puedes usar atributos para configurar cómo maneja este rol los datos de los ítems.
Los atributos soportados por este rol son:
item_expand
Valor booleano que indica si tratar este ítem como una ruta de archivo o URL o simplemente tratarlo como texto plano.
::
repositorios: - item_expand: true item_path: /home/usuario/mi-config.yml
item_path
Ruta de archivo absoluta o URL a un archivo .yml.
::
repositorios: - item_path: /home/usuario/mi-config.yml
Este atributo también funciona con URLs.
Requisitos
Ansible <https://www.ansible.com>
_ >= 2.8.Jinja2 <https://palletsprojects.com/p/jinja/>
_.Pip <https://pypi.org/project/pip/>
_.Python <https://www.python.org/>
_.PyYAML <https://pyyaml.org/>
_.Requests <https://2.python-requests.org/en/master/>
_.
Si deseas ejecutar las pruebas, también necesitarás:
Docker <https://www.docker.com/>
_.Molecule <https://molecule.readthedocs.io/>
_.Setuptools <https://pypi.org/project/setuptools/>
_.
Compatibilidad
Debian Buster <https://wiki.debian.org/DebianBuster>
_.Debian Raspbian <https://raspbian.org/>
_.Debian Stretch <https://wiki.debian.org/DebianStretch>
_.Ubuntu Xenial <http://releases.ubuntu.com/16.04/>
_.
Licencia
MIT. Consulta el archivo LICENSE para más detalles.
Enlaces
Github <https://github.com/constrict0r/sourcez>
_.Gitlab <https://gitlab.com/constrict0r/sourcez>
_.Gitlab CI <https://gitlab.com/constrict0r/sourcez/pipelines>
_.Readthedocs <https://sourcez.readthedocs.io>
_.Travis CI <https://travis-ci.com/constrict0r/sourcez>
_.
UML
Despliegue
La estructura completa del proyecto se muestra a continuación:
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/deploy.png :alt: despliegue
Principal
El flujo de datos del proyecto se muestra a continuación:
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/main.png :alt: principal
Autor
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/author.png :alt: autor
El Villano Viajero del Vaudeville.
¡Disfruta!
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/enjoy.png :alt: disfrutar
Add apt repositories to Debian sources.
ansible-galaxy install constrict0r.sourcez