-
Notifications
You must be signed in to change notification settings - Fork 0
Operationeel beheer
Maak een bestand aan met de credentials:
sudo nano /etc/azure-ddns.envInhoud:
AZURE_TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
AZURE_CLIENT_ID=11112222-bbbb-3333-cccc-4444dddd5555
AZURE_CLIENT_SECRET=A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u
AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
AZURE_RESOURCE_GROUP=rg-dns
DNS_ZONE_NAME=example.com
DNS_RECORD_NAME=home
Beveilig het bestand:
sudo chmod 600 /etc/azure-ddns.env
sudo chown root:root /etc/azure-ddns.envsudo crontab -eVoeg toe (elke 5 minuten):
*/5 * * * * . /etc/azure-ddns.env && /usr/local/bin/azure-ddns >> /var/log/azure-ddns.log 2>&1
Uitleg:
-
. /etc/azure-ddns.env— laadt de environment variables -
/usr/local/bin/azure-ddns— draait het script -
>> /var/log/azure-ddns.log 2>&1— schrijft stdout + stderr naar logbestand
| Interval | Cron expressie | Geschikt voor |
|---|---|---|
| 1 minuut | * * * * * |
Kritieke services, veel IP-wijzigingen |
| 5 minuten | */5 * * * * |
Aanbevolen voor de meeste gevallen |
| 15 minuten | */15 * * * * |
Stabiele verbindingen |
| 30 minuten | */30 * * * * |
Niet-kritieke services |
Let op: Azure DNS heeft een rate limit van 40 PUT requests per minuut. Bij elke 5 minuten doe je maximaal 12 PUT's per uur (ruim onder de limiet). GET requests zijn gelimiteerd tot 1000/min.
# Laatste 20 regels
tail -20 /var/log/azure-ddns.log
# Live meekijken
tail -f /var/log/azure-ddns.log
# Alleen errors
grep ERROR /var/log/azure-ddns.log
# Alleen IP-wijzigingen
grep "IP gewijzigd\|DNS record bijgewerkt" /var/log/azure-ddns.logVoorkom dat het logbestand onbeperkt groeit:
sudo nano /etc/logrotate.d/azure-ddnsInhoud:
/var/log/azure-ddns.log {
weekly
rotate 4
compress
missingok
notifempty
}
Dit houdt 4 weken aan logs bij en comprimeert oude bestanden.
# Check cron logs
grep azure-ddns /var/log/syslog | tail -5
# Check of het process recent gedraaid heeft
ls -la /tmp/azure-ddns.lock# Via dig (installeer met: sudo apt-get install dnsutils)
dig +short home.example.com
# Via nslookup
nslookup home.example.comcurl -s https://icanhazip.comVergelijk dit met het DNS record — ze moeten gelijk zijn.
Voor extra debug output bij problemen:
# Eenmalig met debug
VERBOSE=1 ./azure-ddns --force
# In crontab (tijdelijk voor debugging)
*/5 * * * * . /etc/azure-ddns.env && VERBOSE=1 /usr/local/bin/azure-ddns >> /var/log/azure-ddns.log 2>&1Let op: Zet
VERBOSE=1weer uit na debugging — het genereert veel extra logregels. DeAZURE_CLIENT_SECRETwordt bewust NIET getoond in verbose output.
Om het DNS record geforceerd bij te werken (ook als het IP niet gewijzigd is):
. /etc/azure-ddns.env && /usr/local/bin/azure-ddns --force# Via git
cd /pad/naar/azure-ddns
git pull
sudo cp azure-ddns /usr/local/bin/azure-ddns
# Of direct downloaden
sudo curl -o /usr/local/bin/azure-ddns \
https://raw.githubusercontent.com/geertvanzoest/azure-ddns/main/azure-ddns
sudo chmod +x /usr/local/bin/azure-ddnsAzure client secrets verlopen. Plan een herinnering voor vernieuwing:
- Genereer een nieuw secret:
az ad app credential reset --id <appId> --years 1 - Update
/etc/azure-ddns.envmet het nieuweAZURE_CLIENT_SECRET - Test:
. /etc/azure-ddns.env && /usr/local/bin/azure-ddns --force - De eerstvolgende cron run gebruikt automatisch het nieuwe secret