Dieser Client erlaubt es, seine beim Bawue.Net gehosteten Domains von der Kommandozeile aus zu administrieren. Somit kann auf einfache Weite ein Let'sEncrypt Zertifikat mit der DNS-01 Challenge erzeugt werden.
Am einfachsten direkt mit PIP:
pip install 'git+https://github.com/bawuenet/domainctl'
- Anzeigen aller Domains:
./domainctl.py --username=benutzer --password=geheim list_domains
- Anzeigen aller DNS Einträge einer Domain:
./domainctl.py --username=benutzer --password=geheim --domain=example.com list_domains
- Hinzufügen eines neuen DNS Eintrages:
./domainctl.py --username=benutzer --password=geheim --domain=example.com --host=_acme-challenge --type=TXT --rr="01234abcde" add_record
- Entfernen eines betehenden DNS Eintrages und warten, dass das Update der Zone erfolgt ist:
./domainctl.py --username=benutzer --password=geheim --domain=example.com --host=_acme-challenge --type=TXT --rr="01234abcde" remove_record --wait
- Username und Passwort entweder:
- --credentials als Datei mit den Zugangsdaten
- --username und --password
- --domain Domainname
- --host Hostname oder Subdomainname
- --type RR Type: A, AAAA, MX, CNAME, TXT, SRV
- --rr Resource Record
- --wait Auf den Abschluss der DNS Operation warten und erst beenden, wenn der DNS Eintrag erreichbar ist.
Eine .ini
Datei, die den Usernamen und das Passwort enthält, damit dieses nicht als Kommandozeilen-
Parameter übergeben werden muss:
[bawue]
username=benutzer
password=geheim
- TXT Records
- Diese sollten normalerweise von doppelten Anführungszeichen (
"
) umschlossen sein. - An der Kommandozeile am besten als
'"Dies ist ein Text"'
in einfachen Anführungszeichen ('
) umschliessen.
- Diese sollten normalerweise von doppelten Anführungszeichen (
- CNAME Records
- Der Ressource Record sollte immer auf einen "." enden. (Trailing dot)
Dieses Git-Repository kann auch als Ansible Collection benutzt werden:
mkdir -p ~.ansible/collections/ansible_collections/bawuenet
cd ~.ansible/collections/ansible_collections/bawuenet
git clone https://github.com/bawuenet/domainctl.git
# oder
git clone [email protected]:bawuenet/domainctl.git
cd
ansible-doc bawuenet.domainctl.bwnet_domains_info
Diese Collection bawuenet.domainctl
definiert die Modulen:
bwnet_domains_info
, um Domänen eines bestimmten Benutzers aufzulistenbwnet_records_info
, um Records in einer Domäne aufzulistenbwnet_record
, um ein Record aus einer Domäne zu löschen oder hinzuzufügen
Es sind auch zwei Playbooks vorhanden, um die Benutzung zu erläutern.