karlmdavis.rcm-dotfiles
Rol de Ansible para RCM
Este rol de Ansible se puede usar para instalar y configurar RCM, un conjunto de herramientas para gestionar archivos de configuración (dotfiles).
Una vez que se aplica este rol, los repositorios definidos se pueden modificar localmente. Cualquier nuevo archivo de configuración creado en esos repositorios se puede desplegar simplemente ejecutando:
$ rcup -f
Requisitos
Este rol requiere lo siguiente en el sistema de gestión de Ansible:
- Ansible>=2.4.0.0
- git>=1.7.1 (la herramienta de línea de comandos)
Los sistemas que se están gestionando requieren lo siguiente:
- Ubuntu 16.04 (a menos que se use
rcm_install_mode: no_internet
, en cuyo caso casi cualquier sistema operativo debería estar soportado)
Variables del Rol
Aquí están las variables que los usuarios pueden definir:
rcm_user
: El usuario para el cual se instalarán los repositorios de RCM.rcm_repos
: La lista de repositorios de Git cuyos archivos de configuración se instalarán.repo
: La URL del repositorio de Git.refspec
: La revisión específica de Git para clonar, por defecto esmaster
.dest
: El directorio donde se clonará el repositorio.
rcm_install_mode
: Si se establece enno_internet
, el rol realizará todas las descargas en el sistema de gestión de Ansible, en lugar de asumir que el sistema gestionado tiene conexión a internet. En este modo, RCM se instalará por usuario, en lugar de a nivel de sistema.rcm_replace_existing_files
: Si se establece entrue
, se pasará la bandera-f
arcup
, permitiendo que sobrescriba archivos existentes. Esto se puede usar, por ejemplo, para reemplazar el archivobashrc
predeterminado del usuario con uno de tu repositorio de archivos de configuración.
Consulta defaults/main.yml para ver la lista de variables por defecto y sus valores predeterminados.
Dependencias
Este rol no tiene dependencias en tiempo de ejecución con otros roles de Ansible.
Ejemplo de Playbook
Aquí tienes un ejemplo de cómo aplicar este rol al host box
en un play de Ansible:
- hosts: box
tasks:
- name: Instalar y Configurar RCM
include_role:
name: karlmdavis.rcm-dotfiles
vars:
rcm_user: ansible_test
rcm_install_mode: no_internet
rcm_repos:
- repo: 'https://foosball.example.com/path/to/repo.git'
dest: '/home/karl/.dotfiles-repo.git'
Entorno de Desarrollo
Para desarrollar/modificar este proyecto, se necesita instalar varias herramientas.
Python
Este proyecto requiere Python 2.7. Se puede instalar de la siguiente manera:
$ sudo apt-get install python
virtualenv
Este proyecto tiene algunas dependencias que deben instalarse a través de pip
(en lugar de apt-get
). Por lo tanto, se recomienda encarecidamente que utilices un entorno virtual de Python para gestionar esas dependencias.
Si no está instalado, instala el paquete virtualenv
. En Ubuntu, es mejor hacerlo de esta manera:
$ sudo apt-get install python-virtualenv
Docker
A menudo es útil lanzar los contenedores de Docker de prueba localmente. Para hacerlo, debes tener Docker instalado. Instalarlo está fuera del alcance de esta guía, pero una búsqueda rápida en la web debería ayudarte a comenzar.
Ejecución de Pruebas
Una vez que se instalen esas herramientas, se puede usar el script test/run-tests.sh
para ejecutar las pruebas localmente. Alternativamente, los cambios se pueden enviar a una rama de GitHub o una solicitud de extracción, y Travis CI ejecutará las pruebas por ti: Travis CI: karlmdavis/ansible-role-rcm-dotfiles.
Licencia
Este proyecto está licenciado bajo la Licencia Pública General GNU, Versión 3.
This Ansible role can be used to install and configure RCM (https://github.com/thoughtbot/rcm), a management suite for dotfiles.
ansible-galaxy install karlmdavis.rcm-dotfiles