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.
NotaNo 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
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.Crear un archivo de configuración para establecer los valores predeterminados y la escalada de privilegios para las operaciones del motor Ansible.
Cree un nuevo archivo YAML y ábralo en un editor de texto, por ejemplo:
# vi /home/jdoe/<ansible_project_name>/ansible.cfg
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 aroot
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 aroot
mediantesudo
después de conectarse a un host gestionado.
Cree un libro de jugadas de Ansible que utilice el rol
kernel_settings
.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
.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 clavehosts
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 archivoinventory
.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ónvars
.NotaPuede modificar los parámetros del núcleo y sus valores en el libro de jugadas para adaptarlos a sus necesidades.
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.
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
).- 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 archivosREADME.html
yREADME.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.