Cómo agregar varios sitios en Cloudflare mediante la automatización

Aprende cómo agregar varios sitios (más de 10) a la vez a Cloudflare con la API de Cloudflare o la herramienta CLI de Cloudflare, flarectl.


Descripción

Si deseas añadir varios sitios (más de 10) a Cloudflare de una sola vez, puedes hacerlo mediante la API de Cloudflare. La incorporación de varios sitios puede ser útil si se cumplen las siguientes condiciones:

Si intentas agregar más de 50 dominios a la vez, cualquier dominio adicional se bloqueará hasta que se procesen.
  • Tienes varios dominios que se asignan a un único dominio canónico, p. ej., dominios de diferentes países (.com.au, .co.uk, etc.) que deseas proteger con Cloudflare.
  • Es una agencia o un consultor de TI y gestiona varios dominios en nombre de tus clientes (nota: deberías considerar nuestro Programa de socios).
  • Estás trasladando un conjunto de sitios existentes a Cloudflare.

Con la API, podrás añadir varios sitios de forma rápida y eficiente, especialmente si ya conoces cómo cambiar tus servidores de nombres o añadir un registro DNS.


Requisitos previos

No puedes tener más sitios pendientes que sitios activos asociados con tu cuenta de Cloudflare. Recomendamos esperar hasta que los sitios pendientes se hayan procesado antes de agregar dominios adicionales.

Para agregar varios sitios en Cloudflare mediante la automatización

  • Una cuenta existente en Cloudflare (regístrate/inicia sesión)
  • Conocimiento básico de la línea de comandos
  • curl instalada (de forma predeterminada en macOS y Linux)
  • Tu clave de API de Cloudflare a mano
  • Una lista de dominios que desees añadir, cada uno en una línea separada (nueva línea separada), p. ej., “domains.txt”

Cómo incorporar dominios mediante la API

Cloudflare dispone de una API con todas las funciones (documentación) que te permiten automatizar la creación de nuevos dominios, además de configurar registros DNS, Page Rules y las distintas configuraciones de seguridad. Utilizaremos esta API para automatizar la incorporación de varios dominios de una sola vez.

Abre tu aplicación de terminal (p. ej., Terminal o Terminal.app) y configura tu clave de API y correo electrónico:

exportar CF_API_EMAIL=you@example.com
exportar CF_API_KEY=abc123def456ghi789

A continuación, escribiremos un bucle For de muestra que utiliza el nombre de cada dominio

para dominio en $(cat domains.txt); do \
curl -X POST -H "X-Auth-Key: $CF_API_KEY" -H "X-Auth-Email: $CF_API_EMAIL" \
-H "Content-Type: application/json" \
"https://api.cloudflare.com/client/v4/zones" \
--data '{"account": {"id": "id_of_that_account"}, "name":"'$domain'","jump_start":true}'; done

La clave “jump_start” intentará que Cloudflare escanee automáticamente registros DNS frecuentes, como “www”, “mail”, “blog” y muchos otros, por lo que no debes configurarlos manualmente (deberías confirmar que los hemos encontrado todos).

La API devolverá una respuesta, incluidos los servidores de nombres que deberás cambiar en el registrar (en el que ha registrado el dominio).

{
"result": {
"id": "abc123def456ghi789",
"name": "example.com",
"status": "pending",
"paused": false,
"type": "full",
"development_mode": 0,
"name_servers": [
"chad.ns.cloudflare.com",
"lucy.ns.cloudflare.com"
],
"original_name_servers": [
"ns-cloud-e1.googledomains.com",
"ns-cloud-e2.googledomains.com",
"ns-cloud-e3.googledomains.com",
"ns-cloud-e4.googledomains.com"
],
"original_registrar": null,
"original_dnshost": null,
"modified_on": "2018-02-12T01:42:13.827149Z",
"created_on": "2018-02-12T01:42:13.827149Z",
"meta": {
"step": 4,
"wildcard_proxiable": false,
"custom_certificate_quota": 0,
"page_rule_quota": 3,
"phishing_detected": false,
"multiple_railguns_allowed": false
},
"owner": {
"id": "abc123def456ghi789",
"type": "user",
"email": "you@example.com"
},
"account": {
"id": "abc123def456ghi789",
"name": "you@example.com"
},
"permissions": [
"#access:edit",
"#access:read",
"#analytics:read",
"#app:edit",
"#billing:edit",
"#billing:read",
"#cache_purge:edit",
"#dns_records:edit",
"#dns_records:read",
"#lb:edit",
"#lb:read",
"#logs:read",
"#member:edit",
"#member:read",
"#organization:edit",
"#organization:read",
"#ssl:edit",
"#ssl:read",
"#subscription:edit",
"#subscription:read",
"#waf:edit",
"#waf:read",
"#worker:edit",
"#worker:read",
"#zone:edit",
"#zone:read",
"#zone_settings:edit",
"#zone_settings:read"
],
"plan": {
"id": "0feeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"name": "Free Website",
"price": 0,
"currency": "USD",
"frequency": "",
"is_subscribed": true,
"can_subscribe": false,
"legacy_id": "free",
"legacy_discount": false,
"externally_managed": false
}
},
"success": true,
"errors": [],
"messages": []
}

Ten en cuenta la clave “name_servers” en la respuesta. Será el mismo par único para todos los sitios que añadas con tu cuenta, p. ej.:

"name_servers": [   "chad.ns.cloudflare.com",   "lucy.ns.cloudflare.com" ]

Copia los valores (¡no los de arriba!) y actualiza los servidores de nombres en el registrador.


Cómo agregar dominios mediante flarectl (herramienta CLI de Cloudflare)

También puedes añadir dominios con flarectl, la CLI oficial de Cloudflare. Puedes descargar un paquete previamente generado para el sistema operativo (Windows, macOS/Darwin, Linux) y crear dominios con este.

Deberás configurar tus credenciales de API primero:

exportar CF_API_EMAIL=you@example.com
exportar CF_API_KEY=abc123def456ghi789

... y, a continaución, ejecutar el siguiente comando en flarectl:

for domain in $(cat domains.txt); do flarectl zone create --zone=$domain --jumpstart=false; done

A continuación, puedes obtener los mismos servidores de nombres para cada dominio mediante “flarectl zone list”:

for domain in $(cat domains.txt); do flarectl zone info --zone=$domain; done

Busca ayuda o consejos dentro de la Comunidad Cloudflare.


Problemas frecuentes

En el caso de que se hayan mostrado errores en este proceso, es posible que no se haya registrado el dominio (o que se acabe de registrar), que sea un subdominio o que no sea válido. Los siguientes artículos abarcan la mayoría de los casos frecuentes:

¿No has encontrado una respuesta satisfactoria?

Nuestra herramienta de búsqueda puede contestar el 95% de las preguntas más comunes y es la mejor manera de conseguir una respuesta rápida.