- 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)
- Поставщик 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"
}
- 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