Red Hat Training

A Red Hat training course is available for RHEL 8

49.4. Especificación de los comandos que se ejecutan antes o después de la emisión del certificado mediante la función de sistema de certificados

Con la función de sistema de certificados, puede utilizar Red Hat Ansible Engine para ejecutar un comando antes y después de la emisión o renovación de un certificado.

En el siguiente ejemplo, el administrador se asegura de detener el servicio httpd antes de que se emita o renueve un certificado autofirmado para www.example.com, y de reiniciarlo después.

Nota

Por defecto, certmonger intenta renovar automáticamente el certificado antes de que caduque. Puede desactivar esto estableciendo el parámetro auto_renew en el libro de jugadas de Ansible como no.

Requisitos previos

  • Tiene instalado Red Hat Ansible Engine en el sistema desde el que desea ejecutar el libro de jugadas.

    Nota

    No es necesario tener Ansible instalado en los sistemas en los que se desea desplegar la solución certificate.

  • Tienes el paquete rhel-system-roles instalado en el sistema desde el que quieres ejecutar el playbook.

    Para más detalles sobre los Roles de Sistema de RHEL y cómo aplicarlos, vea Introducción a los Roles de Sistema de RHEL.

Procedimiento

  1. Optional: Crear un archivo de inventario, por ejemplo inventory.file:

    $ touch inventario.archivo
  2. Abra su archivo de inventario y defina los hosts en los que desea solicitar el certificado, por ejemplo:

    [webserver]
    server.idm.example.com
  3. Cree un archivo de playbook, por ejemplo request-certificate.yml:

    • Configure hosts para incluir los hosts en los que desea solicitar el certificado, como por ejemplo webserver.
    • Establezca la variable certificate_requests para incluir lo siguiente:

      • Establezca el parámetro name con el nombre deseado para el certificado, como por ejemplo mycert.
      • Establezca el parámetro dns con el dominio que se incluirá en el certificado, como por ejemplo www.example.com.
      • Establezca el parámetro ca en la CA que desea utilizar para emitir el certificado, como por ejemplo self-sign.
      • Establezca el parámetro run_before con el comando que desea ejecutar antes de que se emita o renueve este certificado, como systemctl stop httpd.service.
      • Establezca el parámetro run_after con el comando que desea ejecutar después de que se emita o renueve este certificado, como systemctl start httpd.service.
    • Establezca la función rhel-system-roles.certificate en roles.

      Este es el archivo del libro de jugadas para este ejemplo:

      ---
      - hosts: webserver
        vars:
          certificate_requests:
            - name: mycert
              dns: www.example.com
              ca: self-sign
              run_before: systemctl stop httpd.service
              run_after: systemctl start httpd.service
      
        roles:
          - linux-system-roles.certificate
  4. Guarda el archivo.
  5. Ejecuta el libro de jugadas:

    $ ansible-playbook -i inventory.file request-certificate.yml

Recursos adicionales

  • Para obtener detalles sobre los parámetros utilizados en la variable certificate_requests e información adicional sobre la función del sistema certificate, consulte el archivo /usr/share/ansible/roles/rhel-system-roles.certificate/README.md.
  • Para obtener más información sobre el comando ansible-playbook, consulte la página de manual ansible-playbook(1).