Skip to main content

Referencia CLI

Comando​

./infra remote dns cloudflare <host|ordinal> --zone <dominio> [opciones]

El comando invoca deployment/scripts/python/cloudflare_dns_sync.py.

Defaults​

  • modo: dry-run;
  • estrategia: endpoints;
  • proxy: desactivado;
  • TTL: automatico (1);
  • timeout de propagacion: 120 segundos;
  • target: ansible_host del inventario.

Flags​

FlagFuncion
--zone <dominio>Zona exacta; requerida para preflight/apply
--zone-id <id>ID opcional, validado contra nombre y estado
--target-ip <ip>Sobrescribe ansible_host
--strategy endpoints|wildcard|bothSelecciona nombres
--include-statusIncluye REMOTE_STATUS_PAGE_DOMAIN
--ttl <n>1 para auto o 60..86400
--name <host>Gestiona solo ese hostname (repetible)
--list-recordsLista los registros A, AAAA y CNAME sin modificarlos
--replace-existingLimpieza limitada de conflictos revisados
--preflightValida token, zona, DNS read e IP
--applyEscribe cambios
--proxied (con --name)Habilita el proxy solo para hosts explicitos (nunca mqtt o SSH)
--waitEspera propagacion; requiere --apply
--wait-seconds <n>Timeout global
--allow-non-public-ipPermite IP no publica solamente para tests

--proxied sin --name se rechaza; con --name se permite solo para esos hosts y nunca para mqtt ni nombres de host SSH. La recomendación sigue siendo DNS-only.

Variables​

VariableUso
CLOUDFLARE_API_TOKENToken Bearer
CLOUDFLARE_ZONEAlternativa a --zone
CLOUDFLARE_ZONE_IDAlternativa a --zone-id
CLOUDFLARE_DNS_TARGET_IPAlternativa a --target-ip
CLOUDFLARE_DNS_STRATEGYEstrategia predeterminada
CLOUDFLARE_DNS_TTLTTL predeterminado
CLOUDFLARE_DNS_WAIT_SECONDSTimeout de --wait
REMOTE_STATUS_PAGE_HOSTLabel de la pagina de estado
PUBLIC_BASE_DOMAINDominio base usado por endpoints y deploy

Comportamiento de registros​

  • crea A para IPv4 y AAAA para IPv6;
  • actualiza un registro existente del mismo tipo;
  • conserva MX, TXT, CAA y tipos coexistentes;
  • detiene la operacion ante un CNAME incompatible;
  • detiene la operacion ante multiples registros del mismo tipo;
  • omite y reporta hostnames fuera de la zona;
  • valida que una IP sea publica;
  • valida que host y zona coincidan;
  • valida un --zone-id contra el nombre y estado de la zona.

Ejemplos​

# Preflight
./infra remote dns cloudflare sd2.aitha.es --zone aitha.es --preflight

# Plan
REMOTE_STATUS_PAGE_HOST=sd2 ./infra remote dns cloudflare sd2.aitha.es \
--zone aitha.es --strategy endpoints --include-status

# Apply y wait
REMOTE_STATUS_PAGE_HOST=sd2 ./infra remote dns cloudflare sd2.aitha.es \
--zone aitha.es --strategy endpoints --include-status --apply --wait

# Gestionar solo hosts explicitos, con proxy
./infra remote dns cloudflare --zone desarrolloselectronicos.com \
--target-ip 51.170.37.215 \
--name things.desarrolloselectronicos.com --name cs.desarrolloselectronicos.com \
--proxied --apply

# Auditar los registros de una zona
./infra remote dns cloudflare --zone aitha.es --list-records

# Verificacion del registry
PUBLIC_BASE_DOMAIN=aitha.es REMOTE_STATUS_PAGE_HOST=sd2 \
./infra remote domains sd2.aitha.es