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_editordbs_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 esnamesin 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_passwordno 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_bootstrapLicencia
gpl-2.0
Descargas
6.5k
Propietario
CEO/CTO/SRE triplestack.fr / daemonit.com
