3.2. Aplicación de los parámetros del núcleo seleccionados mediante la función de configuración del núcleo

Siga estos pasos para preparar y aplicar un playbook de Ansible para configurar remotamente los parámetros del kernel con efecto persistente en varios sistemas operativos gestionados.

Requisitos previos

  • Su suscripción a Red Hat Ansible Engine está adjunta al sistema, también llamado control machine, desde el cual desea ejecutar el rol kernel_settings. Consulte el artículo Cómo descargar e instalar Red Hat Ansible Engine para obtener más información.
  • El repositorio del motor Ansible está habilitado en la máquina de control.
  • El motor Ansible está instalado en la máquina de control.

    Nota

    No es necesario tener instalado el motor de Ansible en los sistemas, también llamados managed hosts, en los que se desea configurar los parámetros del kernel.

  • El paquete rhel-system-roles está instalado en la máquina de control.
  • En la máquina de control hay un inventario de hosts gestionados y el motor Ansible puede conectarse a ellos.

Procedimiento

  1. Opcionalmente, revise el archivo inventory a modo de ilustración:

    #  cat /home/jdoe/<ansible_project_name>/inventory
    [testingservers]
    pdoe@192.168.122.98
    fdoe@192.168.122.226
    
    [db-servers]
    db1.example.com
    db2.example.com
    
    [webservers]
    web1.example.com
    web2.example.com
    192.0.2.42

    El archivo define el grupo [testingservers] y otros grupos. Permite ejecutar el motor Ansible de forma más eficaz contra un conjunto específico de sistemas.

  2. Crear un archivo de configuración para establecer los valores predeterminados y la escalada de privilegios para las operaciones del motor Ansible.

    1. Cree un nuevo archivo YAML y ábralo en un editor de texto, por ejemplo:

      #  vi /home/jdoe/<ansible_project_name>/ansible.cfg
    2. Inserte el siguiente contenido en el archivo:

      [defaults]
      inventory = ./inventory
      
      [privilege_escalation]
      become = true
      become_method = sudo
      become_user = root
      become_ask_pass = true

      La sección [defaults] especifica una ruta al archivo de inventario de los hosts gestionados. La sección [privilege_escalation] define que los privilegios de usuario sean cambiados a root en los hosts administrados especificados. Esto es necesario para la configuración exitosa de los parámetros del kernel. Cuando se ejecute el playbook de Ansible, se le pedirá la contraseña del usuario. El usuario cambia automáticamente a root mediante sudo después de conectarse a un host gestionado.

  3. Cree un libro de jugadas de Ansible que utilice el rol kernel_settings.

    1. Cree un nuevo archivo YAML y ábralo en un editor de texto, por ejemplo:

      #  vi /home/jdoe/<ansible_project_name>/kernel_roles.yml

      Este archivo representa un libro de jugadas y normalmente contiene una lista ordenada de tareas, también llamadas plays, que se ejecutan contra hosts gestionados específicos seleccionados de su archivo inventory.

    2. Inserte el siguiente contenido en el archivo:

      ---
      - name: Configure kernel settings
        hosts: testingservers
      
        vars:
          kernel_settings_sysctl:
            - name: fs.file-max
              value: 400000
            - name: kernel.threads-max
              value: 65536
          kernel_settings_sysfs:
            - name: /sys/class/net/lo/mtu
              value: 65000
          kernel_settings_transparent_hugepages: madvise
      
        roles:
          - linux-system-roles.kernel_settings

      La clave name es opcional. Asocia una cadena arbitraria a la obra como etiqueta e identifica para qué sirve la obra. La clave hosts en la obra especifica los hosts contra los que se ejecuta la obra. El valor o los valores de esta clave pueden proporcionarse como nombres individuales de hosts gestionados o como grupos de hosts definidos en el archivo inventory.

      La sección vars representa una lista de variables que contienen los nombres de los parámetros del núcleo seleccionados y los valores a los que deben ajustarse.

      La clave roles especifica qué rol del sistema va a configurar los parámetros y valores mencionados en la sección vars.

      Nota

      Puede modificar los parámetros del núcleo y sus valores en el libro de jugadas para adaptarlos a sus necesidades.

  4. Opcionalmente, verifique que la sintaxis de su obra es correcta.

    #  ansible-playbook --syntax-check kernel-roles.yml
    
    playbook: kernel-roles.yml

    Este ejemplo muestra la verificación exitosa de un libro de jugadas.

  5. Ejecuta tu libro de jugadas.

    #  ansible-playbook kernel-roles.yml
    BECOME password:
    
    PLAY [Configure kernel settings]  ... PLAY RECAP **
    fdoe@192.168.122.226       : ok=10   changed=4    unreachable=0    failed=0    skipped=6    rescued=0    ignored=0
    pdoe@192.168.122.98        : ok=10   changed=4    unreachable=0    failed=0    skipped=6    rescued=0    ignored=0

    Antes de que el motor de Ansible ejecute su libro de jugadas, se le pedirá su contraseña y para que un usuario en los hosts administrados pueda ser cambiado a root, lo cual es necesario para configurar los parámetros del kernel.

    La sección de recapitulación muestra que la reproducción ha finalizado con éxito (failed=0) para todos los hosts gestionados, y que se han aplicado 4 parámetros del kernel (changed=4).

  6. Reinicie sus hosts gestionados y compruebe los parámetros del kernel afectados para verificar que los cambios se han aplicado y persisten a través de los reinicios.

Recursos adicionales

  • Para obtener más información sobre las funciones del sistema RHEL, consulte Introducción a las funciones del sistema RHEL.
  • Para más información sobre todas las variables actualmente soportadas en kernel_settings, consulte los archivos README.html y README.md en el directorio /usr/share/doc/rhel-system-roles/kernel_settings/.
  • Para más detalles sobre los inventarios de Ansible, consulte la documentación sobre el trabajo con el inventario en Ansible.
  • Para más detalles sobre los archivos de configuración de Ansible, consulte Configuración de Ansible en la documentación de Ansible.
  • Para más detalles sobre los playbooks de Ansible, consulte Trabajar con playbooks en la documentación de Ansible.
  • Para más detalles sobre las variables de Ansible, consulte la documentación sobre el uso de variables en Ansible.
  • Para más detalles sobre los roles de Ansible, consulte la documentación de Roles en Ansible.