Ajout de plusieurs sites à Cloudflare via Automation
Apprenez comment ajouter plusieurs sites (10 et plus) à la fois à Cloudflare avec l’API Cloudflare ou l’interface de ligne de commande de Cloudflare, flarectl.
Dans cet article
- Aperçu
- Conditions préalables
- Ajout de domaines via l’API
- Ajout de domaines via flarectl (interface de ligne de commande de Cloudflare)
- Problèmes fréquents
Aperçu
Si vous devez à ajouter plusieurs sites (10 et plus) à la fois dans Cloudflare, vous pouvez le faire via l’API Cloudflare. Ajouter plusieurs sites peut être utile dans les cas de figure suivants :
- Vous avez plusieurs domaines mappés vers un domaine canonique unique, par exemple, des domaines dans différents pays (.com.au, .co.uk, etc.) que vous souhaitez protéger avec Cloudflare
- Vous êtes une agence ou un professionnel de conseil en informatique et vous gérez plusieurs domaines pour le compte de vos clients (remarque : informez-vous sur le programme de partenariat de Cloudflare !)
- Vous transférez un ensemble de sites existant vers Cloudflare
L’utilisation de l’API permet d’ajouter plusieurs sites rapidement et efficacement, en particulier si vous savez déjà comment changer vos serveurs de noms ou ajouter un enregistrement DNS.
Conditions préalables
Pour ajouter plusieurs sites à Cloudflare via Automation, vous devez disposer :
- D’un compte Cloudflare ( inscription/ connexion)
- D’une connaissance de base de la ligne de commande
- D’une installation de cURL (par défaut sur macOS et Linux)
- De votre clé Cloudflare API
- D’une liste des domaines que vous souhaitez ajouter, chacun sur une ligne séparée (nouvelle ligne), par exemple, « domaines.txt »
Ajout de domaines via l’API
Cloudflare dispose d’une API dotée de fonctionnalités complètes ( documentation) qui vous permet d’automatiser la création de nouveaux domaines, mais également de configurer des enregistrements DNS, des règles Page Rules et les nombreux paramètres de sécurité de la solution. Nous utiliserons cette API pour automatiser l’ajout de plusieurs domaines à la fois.
Ouvrez votre application de terminal (par exemple, Terminal ou Terminal.app), puis configurez votre clé d’API et votre adresse e-mail :
export CF_API_EMAIL=you@example.comexport CF_API_KEY=abc123def456ghi789
Ensuite, nous écrirons une simple boucle FOR pour traiter chaque nom de domaine
for domain in $(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
Avec la commande « jump_start », Cloudflare tentera automatiquement de rechercher des enregistrements DNS courants, par exemple « www », « mail », « blog » et bien d’autres, afin que vous n’ayez pas à les configurer manuellement (vérifiez néanmoins que nous les avons tous trouvés). id_of_that_account se trouve dans l’application Cloudflare Overview sous la rubrique Account ID.
L’API renverra une réponse contenant les serveurs de noms que vous devrez modifier au niveau de votre serveur d’inscription (sur lequel vous avez enregistré le domaine).
{ "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": []}
Notez la clé « name_servers » dans la réponse. Ce seront les mêmes paires uniques pour tous les sites que vous ajoutez avec votre compte - exemple
"name_servers": [ "chad.ns.cloudflare.com", "lucy.ns.cloudflare.com" ]
Copiez vos valeurs (pas celles ci-dessus !) et mettez à jour les serveurs de noms au niveau de votre serveur d’inscription.
Ajout de domaines via flarectl (interface de ligne de commande de Cloudflare)
Vous pouvez également ajouter des domaines avec flarectl, l’interface en ligne de commande officielle de Cloudflare. Vous pouvez télécharger un package préconstruit pour votre système d’exploitation (Windows, macOS/Darwin, Linux) et créer des domaines avec celui-ci.
Vous devez tout d’abord configurer les identifiants de votre API :
export CF_API_EMAIL=you@example.comexport CF_API_KEY=abc123def456ghi789
…puis exécuter la commande suivante dans flarectl :
for domain in $(cat domains.txt); do flarectl zone create --zone=$domain --jumpstart=false; done
Vous pouvez ensuite obtenir les serveurs de noms pour chaque domaine via « flarectl zone list » :
for domain in $(cat domains.txt); do flarectl zone info --zone=$domain; done
Demandez de l’aide ou des conseils à la communauté Cloudflare.
Problèmes fréquents
Si des erreurs apparaissent pendant ce processus, le domaine peut ne pas être enregistré (ou avoir été enregistré à l’instant), ne pas être un sous-domaine ou ne pas être valide. Les articles suivants présentent les cas les plus courants :