INTEGRITY Документация

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

Чтобы добавить несколько сайтов в 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, прежде чем добавлять новые.

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

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