gwerlas.system
Sistema Base
Configuraciones base para sistemas Linux.
Ejecutar roles en contenedores no es común, pero este caso de uso es compatible con las pruebas de Ansible utilizando Molecule. En este caso, solo se configurará y actualizará la caché del gestor de paquetes, los otros componentes del sistema no se gestionarán ya que son responsabilidad del motor de contenedores.
Proyecto en GitLab: yoanncolin/ansible/roles/system
Requisitos
Este rol ha sido escrito para ejecutarse como un usuario no root, por lo que Sudo debe estar instalado y configurado.
Para la configuración de red, se requiere el paquete de Python netaddr
.
También necesitas el módulo Ansible ansible.utils
.
Para la gestión de sistemas de archivos, se requiere el paquete de Python
jmespath
. También necesitas los módulos Ansible
community.general
y ansible.posix
.
Hechos
Hechos definidos de este rol:
system_packages
system_shells
system_sudo_version
Consulta la documentación de hechos para más detalles.
Etiquetas
Dado que algunos valores se distribuyen en múltiples tareas, puedes actualizar algunas de ellas rápidamente con etiquetas:
ca
- Autoridades de certificados SSLfirewall
hosts
- Actualizar el archivo/etc/hosts
networks
packages
proxies
storages
sudoers
time
users
Uso:
ansible-playbook -t tag1[,tag2[,...]] my_play.yml
Tareas
Los componentes del sistema se gestionan a través de tareas separadas que se pueden llamar de forma independiente.
Por supuesto, todas las tareas se llaman en el main.yml
. Consulta la
documentación de cada tarea:
Variables del Rol
Activación de características
Consulta defaults/main/feature-flipping.yml
.
Activa/desactiva algunas características configurándolas a true
o false
.
Variables compartidas
Consulta defaults/main/shared.yml
.
system_bin_path: /usr/local/bin
system_profile: server
system_retries: 2
Algunas distribuciones no proporcionan un comando para saber fácilmente si se requiere un reinicio o si la caché de paquetes está desactualizada. Por lo tanto, hemos puesto scripts para hacerlo.
Puedes cambiar la ubicación de esos scripts a través de system_bin_path
.
El system_profile
puede afectar el comportamiento de algunas partes del
sistema, por ejemplo, los paquetes a instalar (o no).
Si tienes problemas de red durante la instalación, puedes aumentar el valor
de system_retries
.
Dependencias
Un sistema Linux accesible con Python instalado.
Ejemplo de Playbook
Primera implementación o actualización de distribución, 10 pasos de actualización gradual:
---
- name: Actualización gradual
hosts: all
serial: 10%
roles:
- role: gwerlas.system
vars:
system_packages_upgrade: true
Usar solo una tarea:
---
- name: Gestores de paquetes
hosts: all
tasks:
- name: Solo preparar el gestor de paquetes
ansible.builtin.import_role:
name: gwerlas.system
tasks_from: package-managers
Licencia
ansible-galaxy install gwerlas.system