8.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.
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.
NotaNo 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
Optional: Crear un archivo de inventario, por ejemplo
inventory.file
:$ touch inventario.archivo
Abra su archivo de inventario y defina los hosts en los que desea solicitar el certificado, por ejemplo:
[webserver] server.idm.example.com
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 ejemplowebserver
. Establezca la variable
certificate_requests
para incluir lo siguiente:-
Establezca el parámetro
name
con el nombre deseado para el certificado, como por ejemplomycert
. -
Establezca el parámetro
dns
con el dominio que se incluirá en el certificado, como por ejemplowww.example.com
. -
Establezca el parámetro
ca
en la CA que desea utilizar para emitir el certificado, como por ejemploself-sign
. -
Establezca el parámetro
run_before
con el comando que desea ejecutar antes de que se emita o renueve este certificado, comosystemctl 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, comosystemctl start httpd.service
.
-
Establezca el parámetro
Establezca la función
rhel-system-roles.certificate
enroles
.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
-
Configure
- Guarda el archivo.
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 sistemacertificate
, 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 manualansible-playbook(1)
.