Apprenez comment ajouter plusieurs sites (10+) dans Cloudflare d’un seul coup en utilisant l’API de Cloudflare, ou l’outil CLI de Cloudflare, flarectl.
Présentation
Si vous cherchez à ajouter plusieurs sites (+ de 10) à Cloudflare en une seule fois, vous pouvez le faire via l’API Cloudflare. Ajouter plusieurs sites peut être utile lorsque :
- 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 consultant en informatique IT et gérez plusieurs domaines pour le compte de vos clients (remarque : jetez un œil à notre programme partenaire !)
- Vous déplacez un ensemble de sites existant vers Cloudflare
L’utilisation de l’API vous permettra 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, il vous faudra :
- Un compte Cloudflare (s’inscrire/se connecter)
- Une connaissance basique de la ligne de commande
- cURL installé (par défaut sur macOS et Linux)
- Votre clé API Cloudflare
- Une liste des domaines que vous souhaitez ajouter, chacun sur une ligne séparée (par une nouvelle ligne) - p. ex. « domaines.txt »
Ajouter des domaines via l’API
Cloudflare possède une API entièrement équipée (documentation) qui vous permet d’automatiser la création de nouveaux domaines, mais aussi de configurer des enregistrements DNS, des Pages Rules ainsi que nos nombreux paramètres de sécurité. Nous utiliserons cette API pour automatiser l’ajout en une seule fois de plusieurs domaines.
Ouvrez votre application de terminal (Terminal ou Terminal.app) et configurez votre clé d’API et votre e-mail -
export [email protected]
export CF_API_KEY=abc123def456ghi789
Ensuite, nous écrirons une simple boucle FOR qui prendra 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
La clé « jump_start » forcera Cloudflare à rechercher automatiquement des enregistrements DNS communs (comme www, mail, blog et autres) pour vous éviter de les configurer manuellement (vous devrez quand même confirmer qu’ils ont tous été trouvés).
L’API renverra une réponse comprenant les serveurs de noms que vous devrez changer au niveau de votre registar (où vous avez enregistré le domaine).
{
"result": {
"id": "abc123def456ghi789",
"name": "exemple.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": [email protected]"
},
"account": {
"id": "abc123def456ghi789",
"name": [email protected]"
},
"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 registar.
Ajouter des domaines via flarectl (ILC de Cloudflare)
Vous pouvez également ajouter des domaines en utilisant 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 l’utiliser pour créer des domaines.
Vous devrez tout d’abord configurer les identifiants de votre API :
export [email protected]
export 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
Après cela, vous pourrez obtenir les serveurs de noms de 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 surviennent pendant ce processus, le domaine peut ne pas être enregistré (ou simplement enregistré), être un sous-domaine ou ne pas être valide. Les articles suivants présentent les cas les plus courants :