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.
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.com
export 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.com
export 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: