HanXHX.debian_bootstrap
Ansible Bootstrap para Debian/Devuan/Ubuntu/Raspbian
Este rol prepara los hosts de Debian/Devuan/Ubuntu/Raspbian:
- Configura APT (sources.list)
- Instala paquetes mínimos (vim, htop...)
- Instala microcódigo de Intel/AMD si es necesario
- Instala y configura el daemon NTP (OpenNTPd o NTP)
- Agrega grupos, usuarios con clave SSH, sudoers
- Despliega bashrc, vimrc para root
- Actualiza algunas alternativas
- Configura el sistema: nombre del host, zona horaria y configuración regional
- Elimina y evita systemd si se desea
- Ajustes de sysctl
Versiones soportadas
SO | Funciona | Estable (soporte activo) |
---|---|---|
Debian Stretch (9) | Sí | No |
Debian Buster (10) | Sí | Sí |
Debian Bullseye (11) | Sí | Sí |
Debian Bookworm (12) | Sí | Sí |
Devuan Ascii (2) | Sí | No |
Raspbian Stretch (9) | Experimental | No |
Raspbian Buster (10) | Experimental | No |
Raspbian Bullseye (11) | Experimental | No |
Ubuntu Bionic (18.04) | Sí | No |
Ubuntu Focal (20.04) | Experimental | No |
Ubuntu Jammy (22.04) | Experimental | No |
Requisitos
- Ansible >= 2.11
- Colecciones: colección ansible.posix / community.general
Variables del rol
Configuración de APT
Estas variables definen el nombre del host para configurar APT (repositorio normal y backports):
dbs_apt_default_host
: host del repositorio. Puede reemplazar el anterior (instalado con este rol) por uno nuevo.dbs_apt_use_src
: instalar repositorios "deb-src" (por defecto: false).dbs_apt_components
: componentes usados en sources.list (por defecto: "main contrib non-free non-free-firmware").
Configuración del rol
dbs_set_hostname
: si es true, cambia el nombre del host.dbs_clean_hosts
: si es true, gestiona el archivo/etc/hosts
.dbs_set_locale
: si es true, configura las locales.dbs_set_timezone
: si es true, establece la zona horaria.dbs_set_ntp
: si es true, instala y configura OpenNTPd.dbs_set_apt
: si es true, configura el repositorio APT.
Configuración del sistema
dbs_hostname
: nombre del host del sistema.dbs_hostname_use_strategy
: estrategia utilizada para establecer el nombre del host, ver "use" en módulo hostname. Debes actualizar esta variable solo si falla el nombre del host (en LXC, por ejemplo).dbs_default_locale
: locale por defecto del sistema.dbs_locales
: lista de locales instaladas.dbs_timezone
: zona horaria del sistema. Si necesitas una zona horaria "estándar" como UTC, debes usar el prefijo "Etc/" (ej: "Etc/UTC").dbs_sysctl_config
: hash de parámetros del kernel, ver: default/main.yml.dbs_use_systemd
: eliminar systemd si se establece en false (persistente).dbs_use_dotfiles
: sobrescribir los dotfiles de root (bashrc, screenrc, vimrc).dbs_uninstall_packages
: lista de paquetes a desinstalar.
Alternativas
dbs_alternative_editor
dbs_alternative_awk
NTPd
dbs_ntp_hosts
: lista de nombres de servidores NTP.dbs_ntp_pkg
: paquete utilizado para proporcionar NTP: "openntpd" o "ntp".
Grupos
dbs_groups
: lista de grupos.
Cada fila tiene algunas claves:
name
: (M) nombre de usuario en el sistema.system
: (O) sí/no (por defecto: no).state
: (O) presente/ausente (por defecto: presente).
(M) Obligatorio
(O) Opcional
Usuario
dbs_users
: lista de usuarios.
Cada fila tiene algunas claves:
name
: (M) nombre de usuario en el sistema.password
: (O) contraseña con formato hash (ver documentación de ansible).clear_password
: (O) contraseña en formato claro (no recomendado).update_password
: (O) siempre / al_crear.shell
: (O) por defecto es /bin/bash.comment
: (O) por defecto es una cadena vacía.sudo
: (O) booleano (true = puede usar sudo).group
: (O) grupo principal (por defecto esname
sin contraseña).groups
: (O) lista de grupos separados por coma.createhome
: (O) sí/no.system
: (O) sí/no (por defecto: no).ssh_keys
: (O) lista de claves públicas SSH.state
: (O) presente/ausente (por defecto: presente).
(M) Obligatorio
(O) Opcional
Notas:
- si se especifica
password
, no se usaclear_password
. clear_password
no es idempotente conupdate_password
= siempre (por defecto).
Para más información, consulta documentación del módulo de usuario de ansible.
Variables de solo lectura
dbs_packages
: lista de paquetes a instalar.dbs_microcode_apt_distribution
: ubicación del paquete para instalar microcódigo.dbs_distro_packages
: lista de paquetes específicos para instalar (relacionados con la versión del SO).dbs_is_docker
: booleano. Es true si el actual es un contenedor docker.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: servers
roles:
- { role: HanXHX.debian_bootstrap }
Acerca de Docker
Debido a las limitaciones de Docker, estas características están deshabilitadas:
- Eliminar systemd
- Establecer el nombre del host
- Configurar sysctl
Cómo desarrollar y probar este rol
Método Vagrant
Instala vagrant + virtualbox o docker
vagrant up debian-bullseye # con virtualbox
vagrant up docker-debian-bullseye # con docker
Método Molecule
Instala:
pip install molecule molecule[docker]
Ejecuta:
molecule -vv -c molecule/_shared/base.yml converge -s ubuntu-22.04
Licencia
GPLv2
Donaciones
Si este código te ayudó, o si lo has utilizado para tus proyectos, siéntete libre de invitarme unas :cervezas:
- Bitcoin:
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
- Ethereum:
0x63abe6b2648fd892816d87a31e3d9d4365a737b5
- Litecoin:
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
- Monero:
45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ
¿No tienes criptomonedas? :estrella: ¡el proyecto también es una forma de agradecer! :sunglasses:
Información del autor
- Twitter: @hanxhx_
Acerca del proyecto
Normalize and prepare a Debian/Devuan/Ubuntu Linux server
Instalar
ansible-galaxy install HanXHX.debian_bootstrap
Licencia
gpl-2.0
Descargas
6.5k
Propietario
CEO/CTO/SRE triplestack.fr / daemonit.com