Методы взаимодействия с Cloudflare DNS: API, Terraform и CLI

  1. API Cloudflare:
    Cloudflare предоставляет комплексный API, который позволяет программно управлять записями DNS. Вы можете использовать API для создания, чтения, обновления и удаления записей DNS. Вот пример использования Python и библиотеки requests:
import requests
def update_dns_record(zone_id, record_id, record_type, name, content):
    endpoint = f"https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records/{record_id}"
    headers = {
        "Authorization": "Bearer YOUR_API_TOKEN",
        "Content-Type": "application/json"
    }
    data = {
        "type": record_type,
        "name": name,
        "content": content
    }
    response = requests.put(endpoint, headers=headers, json=data)
    if response.status_code == 200:
        print("DNS record updated successfully.")
    else:
        print("Failed to update DNS record.")
# Usage example
zone_id = "YOUR_ZONE_ID"
record_id = "YOUR_RECORD_ID"
record_type = "A"
name = "example.com"
content = "192.0.2.123"
update_dns_record(zone_id, record_id, record_type, name, content)
  1. Поставщик Cloudflare Terraform:
    Если вы предпочитаете инфраструктуру как код, вы можете использовать поставщика Cloudflare Terraform для управления записями DNS. Terraform — это инструмент с открытым исходным кодом, который позволяет вам определять и предоставлять ресурсы инфраструктуры. Вот пример использования Terraform:
provider "cloudflare" {
  email = "YOUR_EMAIL"
  api_key = "YOUR_API_KEY"
}
resource "cloudflare_record" "example" {
  zone_id = "YOUR_ZONE_ID"
  name = "example.com"
  type = "A"
  ttl = 300
  value = "192.0.2.123"
}
  1. Cloudflare CLI:
    Cloudflare также предоставляет инструмент интерфейса командной строки (CLI), который позволяет взаимодействовать со службами Cloudflare, включая управление DNS. Вот пример использования CLI Cloudflare:
# Install the Cloudflare CLI
$ curl -sL https://github.com/cloudflare/cloudflare-go/releases/latest/download/cloudflare-linux-amd64.tar.gz | tar xz
$ sudo mv ./cloudflare /usr/local/bin/
# Authenticate with Cloudflare
$ cloudflare login
# Update a DNS record
$ cloudflare dns update-record YOUR_ZONE_ID YOUR_RECORD_ID --type A --name example.com --content 192.0.2.123