Como adicionar vários sites à Cloudflare via automação
Saiba como adicionar vários sites (+10) à Cloudflare de uma só vez usando a API da Cloudflare ou a ferramenta de CLI da Cloudflare, flarectl.
Neste artigo
- Visão geral
- Pré-requisitos
- Adicionar domínios por meio da API
- Adicionar domínios por meio do flarectl (ferramenta de CLI da Cloudflare)
- Problemas comuns
Visão geral
Se você precisar adicionar vários sites (+10) à Cloudflare de uma só vez, poderá fazê-lo por meio da API da Cloudflare. Adicionar vários sites pode ser útil quando você:
- Tiver vários domínios mapeados de volta para um único domínio canônico — por exemplo, domínios em diferentes países (.com.au, .co.uk etc) que você deseja proteger com a Cloudflare
- For uma agência ou consultoria de TI e gerenciar vários domínios em nome de seus clientes (observação: nesse caso você deve avaliar o programa de Parceiros da Cloudflare)
- Estiver transferindo um conjunto existente de sites para a Cloudflare
O uso da API permitirá que você adicione vários sites de forma rápida e eficiente, especialmente se já souber como alterar seus nameservers ou adicionar um registro de DNS.
Pré-requisitos
Para adicionar vários sites à Cloudflare via automação, você precisará de:
- Uma conta existente na Cloudflare ( cadastrar-se / entrar))
- Conhecimento básico de linhas de comando
- curl instalado (por padrão no macOS e Linux)
- Sua chave de API da Cloudflare à mão
- Uma lista de domínios que você deseja adicionar, cada um em uma linha separada (nova linha separada) — por exemplo “dominios.txt”
Adicionar domínios por meio da API
A Cloudflare tem uma API com muitos recursos ( documentação) que lhe permite automatizar a criação de novos domínios, além de configurar registros de DNS, regras de página e nossas muitas configurações de segurança. Usaremos essa API para automatizar o acréscimo de vários domínios ao mesmo tempo.
Abra o aplicativo do seu terminal (por exemplo, Terminal ou Terminal.app) e configure a chave e o e-mail da sua API:
export CF_API_EMAIL=voce@exemplo.comexport CF_API_KEY=abc123def456ghi789
Em seguida, escreveremos um loop for simples que leva cada nome de domínio
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
A chave “jump_start” fará com que a Cloudflare tente automaticamente fazer uma triagem de registros DNS comuns — por exemplo, “www”, “mail”, “blog” e muitos outros — para que você não precise configurá-los manualmente (você ainda precisará confirmar que encontramos todos). a id_dessa_conta pode ser encontrada no aplicativo Overview da Cloudflare, na guia ID da conta.
A API retornará uma resposta, incluindo os nameservers que você precisará alterar no seu registrar (onde você registrou seu domínio).
{ "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" ], "name_servers_originais": [ "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": []}
Observe a chave “name_servers” na resposta. Esse par único será o mesmo para todos os sites adicionados à sua conta — por exemplo,
"name_servers": [ "chad.ns.cloudflare.com", "lucy.ns.cloudflare.com" ]
Copie seus valores (não os listados acima!) e atualize os nameservers no seu registrar.
Adicionar domínios por meio do flarectl (ferramenta de CLI da Cloudflare)
Você também pode adicionar domínios usando o flarectl, a CLI oficial da Cloudflare. Você pode baixar um pacote pré-desenvolvido para o seu sistema operacional (Windows, macOS/Darwin, Linux) e criar domínios com ele.
Você precisará primeiro configurar suas credenciais da API:
export CF_API_EMAIL=voce@exemplo.comexport CF_API_KEY=abc123def456ghi789
… e, em seguida, execute o seguinte comando no flarectl:
for domain in $(cat domains.txt); do flarectl zone create --zone=$domain --jumpstart=false; done
Depois disso, você poderá obter os nameservers para cada domínio por meio da “flarectl zone list”:
for domain in $(cat domains.txt); do flarectl zone info --zone=$domain; done
Procure ajuda ou encontre dicas na Comunidade da Cloudflare.
Problemas comuns
Se algum erro foi retornado nesse processo, o domínio pode não ser registrado (ou ser apenas registrado), ser um subdomínio ou ser inválido de alguma outra forma. Os seguintes artigos abrangem os casos mais comuns: