Использование API Cloudflare для заполнения DNS зоны домена (PHP)

Гость3 года в сервисе
Данные заказчика будут вам доступны после подачи заявки
13.12.2021

Задача: Заполнить ДНС зону созданную на CloudFlare данными из LDIF(текстовый формат). Скрипт должен быть написан на PHP.

Пример LDIF файла ниже. Для заполнения использовать CloudFlare Api 4ой версии.

О том как использовать готовую библиотеку взаимодействия с CloudFlare habr dot com /ru/company/otus/blog/498936/

Структура тестового файла:

Файл разбит на записи. Каждая запись это отдельный хостнейм.

associateddomain — имя хостнейма (домена или субдомена)

Записи (ldif => cloudflare):

arecord => A

mxrecord => MX

txtrecord => TXT

nsrecord => ns

cnamerecord =>cname

TTL для записей общий. Его значение вынести в константы.

Для основной записи (домена) nsrecord нужно заменить с тех что в файле на

НС cloudflera. Значения вынести в константы. Основную запись можно

идентифицировать по наличию soarecord

У домена может быть несколько записей одного типа, нужно добавить через API их все. У MX

записи формат

различных записей у одного хоста

В случае возникновения ошибки в процессе добавления записи такую запись нужно залогировать. Формат

записи в логе: associateddomain:\n Проблемная ресурсная

запись\Описание ошибки из API

Если у записи нету атрибутов objectclass: dNSDomain2 или objectclass: domainRelatedObject запись должна игнорироваться.

По завершению работы скрипта должен быть отчет сколько записей было

добавлено, сколько записей пропущено и сколько ошибок возникло:

added:

skipped:

errors:

Окружение:

Скрипт будет выполняться по крону раз в сутки, после того как для зоны

сформирован новый LDIF. Для того чтоб идентифицировать, что зона

изменилась и нужно заново заполнить на cloudflare записи, предлагаю

сделать отдельный файл в который записывать md5 хеш содержимого ldif

файла, который был внесен на cloudflare. Если текущий хеш отличается от

сохраненного нужно очистить зону на cloudflare, внести новые записи и

записать в файл новый хеш.

Для выполнения задания необходимо зарегистрировать новый аккаунт на cloudflare. Домен для тестирования дадим

Заявки фрилансеров