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