- Der Gateway ist erreichbar?
- Dort läuft eine aktuelle Debian-Version?
- Der user
ansible
exestiert und darfsudo
ausführen? - Der SSH Public-Key deiner Maschine ist in diesem ansible git repository unter
files/admin_ssh_keys/
hinterlegt? - Der SSH Public-Key deiner Maschine ist auf dem neuen System beim User
ansible
im~/.ssh/authorized_keys
file?
- Unter
ansible/hosts
ist der neue Gateway eingetragen?
- Gegebenenfalls DNS Eintrag setzen
hostvars/$hostname
enthält alle host-spezifischen Angaben für das neue Gateway?$hostname.yml
enthält das neue Playbook für den neuen Gateway?- Die Netzwerk Interface Konfiguration ist unter
roles/network/files/interfaces_$hostname.conf
hinterlegt? - Ansible ausführen! per
ansible-playbook $hostname.yml
- Mögliche auftretende Fehler beheben und zurück melden
Um einen neuen Gateway aufzusetzen ist einiges zu tun. Wir gehen mal davon aus, dass es sich bei dem Gateway um ein Debian handelt. Zum Beispiel ein Debian 9 (Stretch). Auf deinem Computer ist ein beliebiges Linux mit einer relativ aktuellen Version von Ansible.
Der neue Gateway ist bestimmt schon im DNS hinterlegt? Sonst können L3D oder Mart das auch noch kurz machen! Dieser Gateway braucht dann sein eigenes .yml
File. Dieses kann man zum Beispiel von anderen Gateways kopieren und anpassen. Auch die hostvars
müssen für jeden host angegeben sein. Es kommt natürlich gut, wenn man dem Gateway selber auch diesen Hostname gibt. Dieser wird unter /etc/hostname
gespeichert. Und natürlich muss dieser Host auch unter ansible/hosts
unter der Gruppe freifunk
hinzugefügt werden.
hostname.yml
erstellen oder kopieren und anpassenhostvars/hostname
erstellen oder kopieren und anpassen- Host unter
ansible/hosts
hinzufügen
Auf dem Gateway selber muss von Hand nicht viel gemacht werden. Am einfachsten für das Ansible ist es, wenn es den Benutzer ansible
gibt. Dieser Benutzer soll kein Passwort haben.
adduser --disabled-password --shell /bin/bash --gecos "" ansible
Er sollte aber Superkräfte (sudo/root) haben. Und unter ~/.ssh/authorized_keys
sollte selbstverständlich dein SSH Public-Key liegen.
apt update
apt install sudo curl
echo 'ansible ALL=NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo
mkdir /home/ansible/.ssh
curl "https://raw.githubusercontent.com/ffbsee/ansible/master/files/admin_ssh_keys/l3d_id.pub" > /home/ansible/.ssh/authorized_keys # Add your SSH Key
chmod -R 700 /home/ansible/.ssh
chown -R ansible.ansible /home/ansible/.ssh
Und um Ansible wirklich auf dem Gateway benutzen zu können, muss dort Python installiert sein. Dies alles kann zum Beispiel so gemacht werden:
apt install python
Natürlich möchte das Netzwerk auch verwaltet werden. Hier ist es ratsam sich die Datei /etc/network/interfaces
als Vorbild zu nehmen und diese (ggf. leicht modifiziert) hier im Ansible unter roles/network/files/interfaces_hostname
ablegen.
Nun muss eigendlich nur noch das Ansible ausgeführt werden. Im idealfall funktioniert das reibungslos. Andernfalls hat man meistens eine Fehlerbeschreibung die einem sagt, was man vergessen hat. Beim Ausführen von Ansible wird unter Anderem das authorized_key
file aller hinterlegten User wie root
, ansible
o.ä. geändert. Achte also darauf, dass du dich dabei nicht aussperrst!
Um das Ansible zu starten gib folgendes ein:
ansible-playbook hostname.yml
Bei Fragen oder Unsicherheiten frag einfach auf Hackint im Channel #ffbsee nach. Am besten du pingst dort direkt den L3D oder mart.