CLI: DNS Management

Manage DNS zones and records with the agentmetal dns subcommand.

CLI: DNS Management

Overview

The agentmetal dns subcommand manages DNS zones and records. It supports zone creation with optional DNSSEC and full record lifecycle management for A, AAAA, CNAME, MX, TXT, SRV, and NS record types.

Zone Operations

Create a Zone

agentmetal dns zone create --domain example.com
FlagRequiredDescription
--domainYesDomain name for the zone
--dnssecNoEnable DNSSEC (default: false)
### List Zones
agentmetal dns zone list
ID            DOMAIN           RECORDS   STATE
zone-a1b2c3   example.com      5         active
zone-d4e5f6   internal.dev     3         active

Get / Delete Zone

agentmetal dns zone get zone-a1b2c3
agentmetal dns zone delete zone-a1b2c3

Record Operations

Create a Record

agentmetal dns record create \
  --zone zone-a1b2c3 \
  --name www \
  --type A \
  --value 203.0.113.42 \
  --ttl 300
FlagRequiredDescription
--zoneYesZone ID
--nameYesRecord name (e.g., www, @, api)
--typeYesRecord type: A, AAAA, CNAME, MX, TXT, SRV, NS
--valueYesRecord value (IP, domain, or text)
--ttlNoTime to live in seconds (default: 3600)
--priorityNoPriority for MX/SRV records
### List Records
agentmetal dns record list --zone zone-a1b2c3
ID            NAME   TYPE    VALUE            TTL
rec-abc123    www    A       203.0.113.42     300
rec-def456    @      MX      mail.example.com 3600
rec-ghi789    api    CNAME   lb.example.com   300

Get / Delete Record

agentmetal dns record get rec-abc123
agentmetal dns record delete rec-abc123

Examples

Set up a full domain:

# Create zone
agentmetal dns zone create --domain myapp.com --dnssec

Add records

agentmetal dns record create --zone zone-xyz --name @ --type A --value 203.0.113.42 --ttl 300 agentmetal dns record create --zone zone-xyz --name www --type CNAME --value myapp.com --ttl 300 agentmetal dns record create --zone zone-xyz --name @ --type MX --value mail.myapp.com --ttl 3600 --priority 10 agentmetal dns record create --zone zone-xyz --name @ --type TXT --value "v=spf1 include:_spf.google.com ~all" --ttl 3600