Документация Запланировать пилот

Добавление нескольких сайтов с помощью автоматизации

Чтобы добавить несколько сайтов в Cloudflare сразу и более эффективно, используйте Cloudflare API.

Добавление нескольких сайтов может быть полезно, если вы:

API позволяет быстро и эффективно добавлять несколько сайтов, особенно если вы уже знакомы с как изменить серверы имён или добавлять DNS-запись.

Это руководство предполагает, что домены будут добавляться с помощью основная настройка DNS (полная).


Предварительные требования

Чтобы добавить несколько сайтов в Cloudflare с помощью автоматизации, вам понадобится:


1. Добавьте домены

  1. Составьте список доменов, которые нужно добавить, каждый на отдельной строке (через перенос строки), и сохраните его в файл, например domains.txt.
  2. Создайте bash-скрипт add-multiple-zones.sh и добавьте следующее. Добавьте domains.txt в тот же каталог или соответствующим образом обновите его путь.
  for domain in $(cat domains.txt); do
    printf "Adding ${domain}:\n"

    curl https://api.cloudflare.com/client/v4/zones \
    --header "Authorization: Bearer <API_TOKEN>" \
    --header "Content-Type: application/json" \
    --data '{
      "account": {
        "id":"<ACCOUNT_ID>"
      },
      "name": "'"$domain"'",
      "type": "full"
    }'

    printf "\n\n"
  done
  1. Откройте командную строку и выполните:
bash add-multiple-zones.sh

После добавления домена он будет находиться в статусе Pending Nameserver Update состояние.

Дополнительные параметры

jq

jq ↗ это инструмент командной строки, который разбирает и форматирует вывод в формате JSON.

Этот инструмент необходим для выполнения любых дополнительных шагов в этом руководстве.

echo '{"foo":{"bar":"foo","testing":"hello"}}' | jq .

См. jq документация ↗, где это описано подробнее.

Быстрое сканирование

Cloudflare предлагает быстрое сканирование который помогает заполнить записи DNS зоны. Это сканирование выполняется по мере возможности на основе предопределенного списка часто используемых имен и типов записей.

Для этого вызова API требуется идентификатор домена. Его можно найти в следующих местах:

Использование jq с первым из указанных выше вариантов, измените свой скрипт add-multiple-zones.sh чтобы извлечь идентификатор домена и выполнить последующий вызов API для быстрого сканирования DNS-записей.

  for domain in $(cat domains.txt); do
    printf "Adding ${domain}:\n"

    add_output=`curl https://api.cloudflare.com/client/v4/zones \
      --header "Authorization: Bearer <API_TOKEN>" \
      --header "Content-Type: application/json" \
      --data '{
        "account": {
          "id":"<ACCOUNT_ID>"
        },
        "name": "'"$domain"'",
        "type": "full"
      }'`

    echo $add_output | jq .

    domain_id=`echo $add_output | jq -r .result.id`

    printf "\n\n"
    printf "DNS quick scanning ${domain}:\n"

    scan_output=`curl --request POST https://api.cloudflare.com/client/v4/zones/$domain_id/dns_records/scan \
      --header "X-Auth-Email: <EMAIL>" \
      --header "X-Auth-Key: <API_KEY>"`

    echo $scan_output | jq .

  done

2. Обновите серверы имён

Чтобы каждый домен стал активным в Cloudflare, его необходимо активировать либо Полная настройка или Частичная настройка. Приведённый ниже скрипт выведет список серверов имён, связанных с каждым доменом.

Серверы имён ваших зон можно найти в следующих местах:

  1. Измените свой скрипт add-multiple-zones.sh чтобы вывести CSV-файл с данными из Create Zone ответ в формате JSON.
  for domain in $(cat domains.txt); do
    printf "Adding ${domain}:\n"

    add_output=`curl https://api.cloudflare.com/client/v4/zones \
      --header "Authorization: Bearer <API_TOKEN>" \
      --header "Content-Type: application/json" \
      --data '{
        "account": {
          "id": "<ACCOUNT_ID>"
        },
        "name": "'"$domain"'",
        "type": "full"
      }'`

    # Create csv of nameservers
    echo $add_output | jq -r '[.result.name,.result.id,.result.name_servers[]] | @csv' >> /tmp/domain_nameservers.csv

    domain_id=`echo $add_output | jq -r .result.id`

    printf "\n\n"
    printf "DNS quick scanning ${domain}:\n"

    scan_output=`curl --request POST https://api.cloudflare.com/client/v4/zones/$domain_id/dns_records/scan \
      --header "X-Auth-Email: <EMAIL>" \
      --header "X-Auth-Key: <API_KEY>"`

    echo $scan_output | jq .

  done

  printf "name_servers are saved in /tmp/domain_nameservers"
  cat /tmp/domain_nameservers.csv
ID ZONE NAME SERVERS
<ZONE_ID> example.com arya.ns.cloudflare.com, tim.ns.cloudflare.com
  1. Используйте значения из NAME SERVERS столбец в обновить серверы имён у регистратора каждого домена.

Ограничения

Количество доменов, которые можно добавить за один раз, ограничено: вы можете зарегистрировать не более 25 доменов каждые 10 минут.

Кроме того, если у вас более 50 доменов и доменов в состоянии pending больше, чем активных, добавление новых доменов будет заблокировано. Рекомендуем дождаться активации доменов в состоянии pending, прежде чем добавлять новые.

Частые проблемы

Если в ходе этого процесса возникли ошибки, домен может быть не зарегистрирован (или зарегистрирован совсем недавно), являться поддоменом или быть недействительным по другой причине. Подробнее см. Не удалось добавить домен.

Запросите бесплатный пилот

Запланировать пилот