gwerlas.system

Sistema Base

estado de la tubería

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 SSL
  • firewall
  • 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

Licencia BSD de 3 cláusulas.

Acerca del proyecto

Linux systems management

Instalar
ansible-galaxy install gwerlas.system
Licencia
bsd-3-clause
Descargas
5.6k
Propietario
DevOps Engineer