Несколько записей TXT с PowerDNS API
Я пытаюсь добавить записи SPF, DMARC и DKIM для моего домена через HTTP-API PowerDNS. Вот пример кода, который я нашел:
curl -X PATCH --data '{"rrsets": [ {"name": "example.org.", "type": "TXT", "ttl": 86400, "changetype": "REPLACE", "records": [ {"content": "Example text", "disabled": false } ] } ] }' -H 'X-API-Key: changeme' http://127.0.0.1:8081/api/v1/servers/localhost/zones/example.org. | jq .
Это работает, но когда я пытаюсь вставить другую текстовую запись, меняя только содержимое, PowerDNS удаляет старую запись и вставляет новую. Это вызвано аргументом "changetype": "REPLACE" в curl, но в соответствии с документами я могу использовать два типа change: REPLACE (с этим эффектом) и DELETE (который просто удалит запись).
у кого-нибудь есть решение?
1 ответ
Помните, что в DNS мы говорим о RRset, который является набором записей ресурсов, что означает, возможно, более одного результата для данного типа ресурса.
Как видно из https://doc.powerdns.com/md/httpapi/api_spec/, многоточие означает, что вы можете поместить несколько элементов в элемент "records", поэтому вы должны поместить все свои TXT записи сразу есть.
Так что-то вроде (отформатировано для наглядности)
"records":
[
{
"content": "Example text 1",
"disabled": false,
},
{
"content": "Example text 2",
"disabled": false,
},
{
"content": "Example text 3",
"disabled": false,
},
],
и т.п.
Текст документации после него ясно говорит:
записи: список новых записей (замена старых).