Tl; dr | Características | Perfiles personalizados | Pon a prueba tu perfil | Opciones | Requisitos | Estabilidad | Otro sistema operativo | Licencia
![]()
![]()
Configuración ansible bien probada y personalizable para aprovisionar su estación de trabajo con Debian.
Recupere su sistema bajo control. Administre paquetes no proporcionados de manera predeterminada y realice un seguimiento de los repositorios, así como del software instalado. Cualquier paquete agrupado ofrece la posibilidad de administrarlos completamente, es decir, asegúrese de que estén instalados o eliminados. Por supuesto, también puede simplemente ignorarlos, en caso de que desee administrarlos usted mismo.
Está diseñado para ser un gerente genérico de combustible (a diferencia de DotFiles ). Puede agregar tantos perfiles como desee (por ejemplo: para diferentes hardware en diferentes cuadernos) y también tener la opción de aprovisionarlo localmente o sobre la red.
Asegúrese de que su sistema cumpla con los requisitos antes de comenzar.
Use esto para aprovisionar su sistema desde cero, cuando ya haya enviado su perfil aguas arriba. Los únicos requisitos son bash y sudo , todo lo demás se instalará automáticamente.
# Provision default profile
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash
# Provision profile 'generic-all'
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash -s generic-allUse esto para aprovisionar su sistema desde cero, cuando aún no tenga un perfil enviado hacia arriba.
# 1. Clone this project
git clone https://github.com/cytopia/ansible-debian
cd ansible-debian
# 2. Add your profile 'bob' (See 'Create custom profiles' section of this README)
# 3. Provision your system (with profile 'bob')
# Note when to use sudo and when not
sudo make deploy-init
make deploy-apt-sources PROFILE=bob
sudo make deploy-dist-upgrade
make deploy-tools PROFILE=bob # Dry-run everything for profile 'generic-all'
make diff-tools PROFILE=generic-all
# Dry-run everything for profile 'generic-all' without role 'systemd'
make diff-tools PROFILE=generic-all IGNORE=systemd
# Dry-run a specific role 'i3-gaps'
make diff-tools PROFILE=generic-all ROLE=i3-gapsEste repositorio de Ansible le permite aprovisionar sus máquinas Debian y mantenerlas al día. Le permite crear diferentes perfiles para diferentes máquinas y ofrece paquetes que no están disponibles por ningún repositorio de Debian.
Este es un aprovisionamiento ideempotente base con valores predeterminados sensibles que pueden ajustarse ligeramente. Solo se entiende como una bootstrap de combustible . Para personalizar las aplicaciones en sí, aún tendrá que aplicar sus archivos de puntos personales además de eso.
| Herramienta | Descripción |
|---|---|
| autorrunner | AutoStart Helper configurable y de notificación para administradores minimalistas de ventanas como I3, Openbox y otros |
| cromo | Establece cromo, paquetes adicionales y extensiones especificadas de Chrome WebStore |
| clipmenu | Administrador de portapapeles con dmenu o rofi Integration |
| dbeaver | Cliente de SQL universal |
| difffflight | Herramienta para una salida git diff Awesome |
| estibador | Repo y paquete de Docker y también asegurándose de que el usuario se agrega al grupo docker |
| compuesto de acopolador | Descarga el último binario docker-compose |
| ffscreencast | Wrapper FFMPEG para grabación de escritorio con superposición de video y soporte de monitor múltiple |
| Firefox | Firefox Quantum |
| FZF | Línea de comandos Fuzzy Finder |
| cañutillo | GIMP con el tema de Photoshop y Keybindings |
| i3 | i3wm |
| I3-Gaps | i3wm en esteroides |
| i3-uTils-bin | Herramientas para i3wm |
| i3-utils-systemd | Archivos systemd para i3wm |
| I3BLOCKS-Módulos | Módulos impresionantes de I3Blocks |
| kops | Herramienta de línea de comandos de operaciones de Kubernetes |
| kubectl | Herramienta de línea de comandos de Kubernetes |
| LibreOffice | LibreOffice 6 con el tema del icono MSOffice 2013 |
| LXDM | LEIGHT-WEIGHT Manager de inicio de sesión |
| neovim | vim sobre esteroides |
| gerente de red | Administrador de red LAN y WiFi de GNOME con bandeja de sistema opcional |
| Oh-my-zsh | Un delicioso marco impulsado por la comunidad para administrar su configuración ZSH. |
| envasador | Packer de Hashicorp para construir máquinas automatizadas |
| pinta | Open Source Paint.net / msPaint Clone. |
| guardabosque | Manager de archivo de línea de comandos con vista previa de imagen en línea (también se puede usar como Administrador de archivos VIM) |
| skype | Repo y paquete de Skype |
| sublime | Repo y paquete sublime |
| sxiv | Visor de imágenes pequeño, rápido y de baja dependencia con enlace VIM |
| system | Administrar servicios SystemD habilitados, discapacitados y enmascarados |
| telegrama | Repo de escritorio de telegrama y paquete |
| terraformado | La infraestructura de Hashicorp como proveedor de código |
| thunar | Thunar y sus requisitos para manejar discos externos, así como discos cifrados |
| thunar-Custom-Actions | Acciones personalizadas Thunar |
| trueno | Thunderbird y complementos definidos a nivel mundial |
| Timemachine | OSX como Timemachine para la línea de comandos |
| urxvt | Pequeño, rápido y leight-peso 256 Color Unicode Terminal Emulador |
| virtualbox | VirtualBox Repositorio y paquetes Upstream |
| xbacklight | Reemplazo moderno de GPU xbacklight |
| xdg-meta-meta | Define las aplicaciones predeterminadas para XDG-Open |
| xorg | Xorg y sus dependencias, así como las configuraciones de GPU y Touchpad |
| zathura | Visor PDF pequeño, rápido y de baja dependencia con enlaces VIM |
| Herramienta | Descripción |
|---|---|
| fuente-droid-sans-mono | Droidsansmono nerdfont con muchos glifos y símbolos unicode |
| espantoso | FontAwesome como fuente de sistema |
| fuente-san-francisco | OSX Yosemite San Francisco Font |
| terminal de fuentes | Terminus nerdfont con muchos glifcs y símbolos Unicode |
| fuente-ubuntu | Fuente oficial de Ubuntu |
| icono-moka | Temas de icono Moka (para Thunar o Nautilus) |
| arco temático | Tema de arco para GTK2, GTK3, Chrome y otros |
Vea roles/ directorio para todos los paquetes disponibles. Si le falta uno, abra un problema o una solicitud de extracción.
Además, puede (pero no tiene que) administrar lo siguiente:
Para personalizar su estación de trabajo o infraestructura de Debian, puede crear perfiles para cada una de sus máquinas. Esto podría ser necesario debido a diferentes preferencias de hardware o software. Cada nombre de host (real o inventado) en el archivo de inventario representa automáticamente un perfil .
Por cierto, Ansible funciona, cada perfil hereda todas las configuraciones de Group_Vars/All.yml. Este archivo contiene un valor predeterminado sensato que le muestra todas las opciones disponibles y con todos los paquetes sin administrar.
Para personalizar realmente su perfil , deberá crear un archivo en host_vars/ por el mismo nombre que ha especificado en el inventario. Puede copiar group_vars/all.yml directamente o usar un perfil ya existente de host_vars , como host_vars/genic-all.yml.
Para comprender mejor cómo funciona, puede seguir este ejemplo paso a paso para crear un nuevo perfil:
En aras de este ejemplo, supongamos que su perfil se llama dell-xps-i3wm .
Agregue la siguiente línea al final del inventario:
dell-xps-i3wm ansible_connection=local ansible_connection=local Define que su perfil debe aplicarse a su computadora local. Si desea crear un perfil para una computadora remota, el nombre de su perfil debe ser un nombre de host o una dirección IP mediante la cual la máquina remota se puede acordar a través de la red.
Como ya se mencionó anteriormente, puede copiar group_vars/all.yml o un archivo host_vars ya existente.
Use group_vars/all.yml como plantilla predeterminada:
cp group_vars/all.yml host_vars/dell-xps-i3wm.ymlUse un archivo host_vars ya existente como una plantilla predeterminada:
cp host_vars/generic-all.yml host_vars/dell-xps-i3wm.yml Simplemente edite host_vars/dell-xps-i3wm.yml y ajuste los valores a sus necesidades. Si ha copiado un archivo ya existente, contendrá comentarios para todas las opciones de configuración posibles que le permiten ver rápidamente qué y cómo cambiar.
Si desea probar su perfil en un contenedor Docker antes de aprovisionar su propio sistema, omita a la siguiente sección, de lo contrario, solo ejecute los siguientes comandos.
Ejecute el siguiente comando para ver qué pasaría:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass --checkEjecute el siguiente comando para aplicar su perfil:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-passAntes de ejecutar cualquier perfil nuevo en su propio sistema, puede y debe probarlo de antemano. Esto se puede hacer en un contenedor Docker o en una caja vagabunda para ver si todo funciona como se esperaba. Esto también puede ser muy útil en caso de que esté creando un nuevo rol y quiera ver si funciona.
Nota: La imagen Docker siempre será automática antes de ejecutar las pruebas.
Antes de ejecutar, debe tener en cuenta algunos argumentos que se pueden aplicar a los comandos make . Vea la tabla a continuación:
| Variable | Requerido | Descripción |
|---|---|---|
PROFILE | Sí | El nombre de host del inventario (su perfil) |
VERBOSE | No | Verbosidad ansible. Valores válidos: 0 , 1 , 2 o 3 |
ROLE | No | Solo ejecute esta etiqueta específica (nombre de rol) |
Ejecute una prueba completa de perfil generic-all :
make test-docker-full PROFILE=generic-all Ejecute una prueba completa de perfil generic-all en un orden aleatorio:
make test-docker-random PROFILE=generic-all Solo ejecute el rol de i3-gaps en el perfil generic-all
make test-docker-single PROFILE=generic-all ROLE=i3-gapsSi no confía en las pruebas en Docker y desea ver los resultados finales gráficamente en una VM, también puede usar Vagrant para hacer lo mismo.
make test-vagrant PROFILE=generic-all Busque la sección del paquete y colóquelos en el estado deseado. install o remove o cualquier otro valor para ignorarlos.
$ vi host_vars/ < name > .yml...
i3-gaps : ' install '
font_ubuntu : ' install '
diff_highlight : ' install '
docker : ' remove '
docker_compose : ' remove '
skype : ' ignore '
sublime : ' ignore '
...Muchos paquetes también vienen con opciones que puede ajustar. Puede, por ejemplo, definir la versión de Python que su sistema debe proporcionar:
$ vi host_vars/ < name > .yml...
python_2 : yes
python_3 : yes
...Otra personalización podría ser el programa predeterminado que se utilizará al abrir tipos de archivos SPEficif:
$ vi host_vars/ < name > .yml...
xdg_mime_defaults :
- desktop_file : chromium.desktop
mime_types :
- text/html
- text/xml
- application/xhtml_xml
- application/x-mimearchive
- x-scheme-handler/http
- x-scheme-handler/https
... O para establecer su DPI y otras opciones para lxdm
$ vi host_vars/ < name > .yml...
lxdm_dpi : 132
lxdm_gtk_theme : Arc-Darker
lxdm_show_user_list : no
...Elija su GPU y controlador de panel táctil:
$ vi host_vars/ < name > .yml # Supported values: 'amdgpu' 'ati' 'intel' 'modesetting' 'nouveau' 'nvidia' 'radeon'
xorg_gpu : modesetting
# Enable VDPAU_DRIVER=va_gl systemwide
xorg_gpu_vdpau_va_gl_enable : yes
# 'libinput' or 'synaptics'
xorg_touchpad_enable : yes
xorg_touchpad_driver : ' synaptics '
...Antes de que pueda comenzar, se requieren algunas herramientas que deben estar presentes en el sistema. Simplemente copie Paste esos comandos como root en su terminal.
apt-get update
apt-get install --no-install-recommends --no-install-suggests -y
make
sudo
Asegúrese de que su usuario esté permitido ejecutar sudo
usermod -aG sudo <username>
Para garantizar la estabilidad más posible de esta configuración, se han definido extensos controles Travis-CI que se ejecutan automáticamente todas las noches. Esas pruebas se ejecutan dentro de un contenedor Docker. Se han definido los siguientes casos de prueba:
Si está ejecutando un sistema operativo diferente y aún desea aprovisionar su sistema con Ansible, eche un vistazo a los siguientes proyectos similares:
No dude en contribuir y agregar nuevos roles como se desee. Al hacerlo, eche un vistazo a contribuir. MD para las mejores prácticas requeridas.
Licencia de MIT
Copyright (c) Cytopia 2017