vbotka.linux_postinstall
linux_postinstall
Rol de Ansible. Configura Linux: acpi, alias, apparmor, apt, claves autorizadas, autofs, actualizaciones automáticas, bluetooth, cron, debsums, dnsmasq, fstab, gpg, gpsd, grupos, grub, nombre de host, hosts, chrony, iptables, kvm, latex, libvirt, tapa, logrotate, administrador de módem, módulos, netplan, networkd, networkmanager, nfsd, paquetes, contraseñas, pm-utils, postfix, rc.local, repos, resolvconf, servicio, smart, speech-dispatcher, ssh, sshd, sudoers, swap, sysctl, systemd, timesyncd, zona horaria, tlp, udev, ufw, usuarios, virtualbox, wpa_gui, wpa_supplicant, xen, xorg.conf.d, zfs, (en desarrollo ...)
Documentación en readthedocs.io
Este rol y la documentación están en progreso. Si falta la documentación de una tarea, es necesario revisar el código fuente para aprender a usarlo. Si falta una funcionalidad, considera el rol config_light. Consulta varios ejemplos. Si config_light no puede hacer lo que deseas, crea nuevas tareas.
No dudes en compartir tus comentarios e informar problemas.
Las contribuciones son bienvenidas.
Plataformas soportadas
Este rol ha sido desarrollado y probado en
- Versiones soportadas de Ubuntu
- Armbian 5.90
El soporte para otras plataformas está en progreso. Algunas tareas son también soportadas por Centos. Se te anima a personalizar las variables en vars/defaults y probar las tareas por tu cuenta.
Requisitos
Roles
Colecciones
- ansible.posix
- ansible.utils
- community.general
Variables del rol
Consulta los valores predeterminados y ejemplos en vars.
Flujo de trabajo
- Instala los roles y colecciones
Instalar roles
shell> ansible-galaxy role install vbotka.linux_postinstall
shell> ansible-galaxy role install vbotka.ansible_lib
shell> ansible-galaxy role install vbotka.linux_lib
Las colecciones ansible.posix y community.general están incluidas en los paquetes principales de ansible. Si faltan, instálalas.
shell> ansible-galaxy collection install ansible.posix
shell> ansible-galaxy collection install ansible.utils
shell> ansible-galaxy collection install community.general
- Cambia las variables, por ejemplo en vars/main.yml
shell> editor vbotka.linux_postinstall/vars/main.yml
- Consulta las variables específicas del sistema operativo en vars/defaults
- Consulta ejemplos en vars/main.yml.sample
- Personaliza y/o agrega variables específicas de sabor en vars/flavors
- Opcionalmente, habilita lp_flavors_enable: true. Esto ralentizará el playbook.
- Opcionalmente, coloca variables personalizadas específicas del SO en el directorio vars
- Consulta tasks/vars.yml para las convenciones de nombres y precedencia
- Las variables específicas del SO sobrescribirán las variables en var/main.yml
- Crea el inventario
shell> cat hosts
[group1]
host1.example.com
[group1:vars]
ansible_user=admin
ansible_connection=ssh
ansible_python_interpreter=/usr/bin/python3.8
ansible_perl_interpreter=/usr/bin/perl
- Crea el playbook
shell> cat lp.yml
- hosts: group1
become: yes
become_user: root
become_method: sudo
roles:
- vbotka.linux_postinstall
- Ejecuta el playbook
shell> ansible-playbook lp.yml
Mejores prácticas
Verifica la sintaxis del playbook
shell> ansible-playbook lp.yml --syntax-check
Revisa las variables. Opcionalmente, detecta y guarda sabores.
shell> ansible-playbook lp.yml -t lp_vars
Ejecuta el playbook en modo de comprobación
shell> ansible-playbook lp.yml --check
Si todo está correcto, ejecuta el playbook dos veces. En la segunda ejecución, todas las tareas deben estar OK y sin cambios, inalcanzables o fallidas.
shell> ansible-playbook lp.yml
Instalación automática de paquetes
Los paquetes listados en las variables lp_*_packages
serán instalados automáticamente por las tareas/packages.yml si se habilitan mediante las variables lp_*_install
. Por ejemplo,
lp_libvirt_install: true
lp_libvirt_packages:
- libvirt0
- libvirt-bin
- libvirt-daemon
- libvirt-daemon-driver-storage-rbd
- libvirt-daemon-system
- virtinst
Los paquetes listados en lp_libvirt_packages
se incluirán en los paquetes instalados por
shell> ansible-playbook lp.yml -t lp_packages_auto -e lp_packages_auto=true
Consulta:
- capítulo Paquetes
- código fuente packages.yml
Gestión automática de servicios
La variable lp_service_auto
contiene una lista de servicios gestionados automáticamente por la tarea service.yml. Un servicio será gestionado por la tarea service.yml si
lp_<service>: true
. Establecer lp_<service>: false
desactivará
la gestión del servicio por la tarea
service.yml. Las variables lp_<service>_enable
y
lp_<service>_state
controlan la habilitación y el estado del
servicio. Por ejemplo, el servicio udev, si se establece lp_udev: true,
será
habilitado y comenzado porque está listado entre lp_service_auto
y por defecto (precedencia 2.):
lp_udev: true
lp_udev_enable: true
lp_udev_state: started
Ejecuta el siguiente comando para ver qué servicios serán gestionados.
shell> ansible-playbook lp.yml -e lp_service_debug=true -t lp_service_debug
Consulta:
- capítulo Servicio
- código fuente service.yml
Configuración recomendada tras la instalación del SO
- Configura usuarios, sudoers e interfaces de red persistentes
ansible-playbook lp.yml -t lp_vars
ansible-playbook lp.yml -t lp_hostname
ansible-playbook lp.yml -t lp_groups
ansible-playbook lp.yml -t lp_users
ansible-playbook lp.yml -t lp_sudoers
ansible-playbook lp.yml -t lp_udev
ansible-playbook lp.yml -t lp_netplan
ansible-playbook lp.yml -t lp_wpasupplicant
ansible-playbook lp.yml -t lp_reboot -e 'lp_reboot=true lp_reboot_force=true'
- Configura el firewall. Por ejemplo, iptables
shell> ansible-playbook lp.yml -t lp_iptables
- Prueba la instalación de los paquetes
shell> ansible-playbook -t lp_packages -e 'lp_package_install_dryrun=true' lp.yml
- Instala los paquetes
shell> ansible-playbook -t lp_packages lp.yml
- Verifica, instala y configura otras tareas
shell> ansible-playbook lp.yml --check
shell> ansible-playbook lp.yml
Ansible lint
Usa el archivo de configuración .ansible-lint.local al ejecutar ansible-lint. Algunas reglas pueden estar desactivadas y algunas advertencias pueden ser ignoradas. Consulta las notas en el archivo de configuración.
shell> ansible-lint -c .ansible-lint.local
Licencia
Información del autor
Referencias
Dnsmasq - DNS, DHCP, publicidad de enrutador y arranque de red
Chrony - Blog de Ubuntu: Bionic: Usando chrony para configurar NTP
Chrony - Guía del administrador del sistema RHEL 7: CAPÍTULO 3. CONFIGURANDO LA FECHA Y HORA
Cómo implementar una plantilla básica de firewall con Iptables en Ubuntu 14.04 - Tutorial de DO
LaTeX Cómo instalar LaTeX en Ubuntu 22.04 Jammy Jellyfish - LinuxConfig
módulos - Deshabilitar y poner en lista negra módulos de Linux
Networkd Administrando WPA inalámbrica con systemd-networkd - BBS de ArchLinux
Paquetes - ¿Cómo prevenir la actualización de un paquete específico? - Pregunta de Ubuntu
Password(store) - pasar el gestor de contraseñas estándar de Unix
rc.local - Pregunta de AskUbuntu: ¿Cómo puedo hacer que /etc/rc.local se ejecute al inicio?
UFW - ¿Cómo hago que ufw se inicie al arrancar? - Pregunta de AskUbuntu
VirtualBox - Instalar Oracle VM VirtualBox en Ubuntu - eLinuxBook
ansible-galaxy install vbotka.linux_postinstall