Skip to main content
Certplane incluye dos roles de Ansible en el directorio ansible/ del repositorio:
  • certplane_broker — instala el binario del broker, prepara la configuración y el material TLS, despliega la política y gestiona el servicio de systemd.
  • certplane_agent — instala el binario del agente, despliega bundles de CA y configuración, hace el registro inicial con un token y gestiona el timer de systemd.
Ambos roles soportan Debian Bookworm y Ubuntu Jammy/Noble out of the box.

Layout

Añade los roles a tu repositorio de control (roles/ enlazado o vendoreado). Play mínimo:
site.yml

Role certplane_broker

Variables obligatorias

group_vars/certplane_broker.yml

Variables útiles (con sus defaults)

Con certplane_broker_secrets_provider = vault/openbao, define además certplane_broker_vault_address y uno entre certplane_broker_vault_token / certplane_broker_vault_token_file.

Qué hace el role

  1. Crea el grupo y usuario de sistema certplane.
  2. Copia el binario del broker a certplane_broker_binary_dest.
  3. Crea /etc/certplane, /etc/certplane/tls, /etc/certplane/ca, /var/lib/certplane y /var/lib/certplane/acme.
  4. Despliega TLS cert/key, bundle de CA de agentes, clave de cuenta ACME (si se pasa) y el archivo de política.
  5. Renderiza broker.yml desde templates/broker.yml.j2.
  6. Instala y arranca certplane-broker.service. Cambios en TLS, política o configuración disparan reinicio.

Role certplane_agent

Variables obligatorias

host_vars/edge01.yml

Variables útiles (con sus defaults)

Qué hace el role

  1. Crea grupo y usuario certplane.
  2. Instala el binario en certplane_agent_binary_dest.
  3. Despliega el bundle de CA del emisor, el bundle de CA del broker y opcionalmente la raíz de step-ca.
  4. Renderiza agent.yml desde templates/agent.yml.j2.
  5. Registra el host una vez. Si no existe identity.crt y certplane_agent_bootstrap_token está definido, escribe el token (no_log: true) y ejecuta certplane-agent ... enroll como usuario certplane. Tras el éxito, el binario borra el token.
  6. Instala certplane-agent.service (oneshot, check y luego run) y certplane-agent.timer (1min tras boot, cada 6h con jitter de 5min).
  7. Habilita y arranca el timer.
El registro es idempotente: una vez existe identity.crt, las siguientes ejecuciones saltan ambos pasos.

Manejo recomendado de secretos

  • Pasa certplane_agent_bootstrap_token desde inventario con Ansible Vault o un lookup en tiempo de ejecución (step ca token).
  • Nunca commitees tokens crudos — son single-use, pero igual.
  • Para los tokens DNS que consume el broker, usa secrets.provider: vault. Ver Secretos en Vault y OpenBao.