ich pack’s mal in’s »große« Forum, nachdem ja auch andere Communities mit Ansible, und auch speziell mit den Münsteraner Rollen, arbeiten.
Problem:
root@aux01:~/test-ansible-ffms.git# ansible-playbook -vv -i hosts gateways.yml -l fastd-gut01
[…]
TASK [backbone_gre_intern : Tunnels between backbones] *****************************************************************
task path: /root/test-ansible-ffms.git/roles/backbone_gre_intern/tasks/main.yml:2
fatal: [fastd-gut01]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'vm_id'"}
to retry, use: --limit @/root/test-ansible-ffms.git/gateways.retry
PLAY RECAP *************************************************************************************************************
fastd-gut01 : ok=51 changed=0 unreachable=0 failed=1
Das hat aber schon mal getan:
root@fastd-gut01 ~ # ls -la /etc/network/interfaces.d/42_gre_interbackbone.cfg
-rw-r--r-- 1 root root 2.4K Nov 17 15:13 /etc/network/interfaces.d/42_gre_interbackbone.cfg
root@aux01:~/test-ansible-ffms.git# ls -la /root/test-ansible-ffms.git/roles/backbone_gre_intern/tasks/main.yml /root/tst-ansible-ffms.git/roles/backbone_gre_intern/templates/gre_interbackbone.j2
-rw-r--r-- 1 root root 566 Nov 15 00:47 /root/test-ansible-ffms.git/roles/backbone_gre_intern/tasks/main.yml
-rw-r--r-- 1 root root 1101 Nov 15 01:29 /root/test-ansible-ffms.git/roles/backbone_gre_intern/templates/gre_interbackbne.j2
Ich verstehe zwar schon nicht, wo davm_id herkommt, aber es hat ja mal geklappt — warum aber jetzt nicht mehr?
Falls jemand 'ne Idee zum Debugging hat – ich bin Ansible-Noob –, oder gar eine Lösung – ich vermute ja, das ist ein Folgefehler, aber den eigentlichen zeigt Ansible mir nicht –, bitte her damit
Das initiale Problem kann ich nicht mehr nachstellen, aber auch die aktualisierten Sourcen tun nimmer:
Jan 15 03:21:37 l2tp-ham01 systemd[1]: tunneldigger@00.service: Main process exited, code=exited, status=1/FAILURE
Jan 15 03:21:37 l2tp-ham01 systemd[1]: tunneldigger@00.service: Failed with result 'exit-code'.
Jan 15 03:21:37 l2tp-ham01 systemd[1]: tunneldigger@00.service: Service hold-off time over, scheduling restart.
Jan 15 03:21:37 l2tp-ham01 systemd[1]: tunneldigger@00.service: Scheduled restart job, restart counter is at 4.
Jan 15 03:21:37 l2tp-ham01 systemd[1]: Stopped tunneldigger tunnelling network daemon using l2tpv3 for domain 00.
Jan 15 03:21:37 l2tp-ham01 systemd[1]: Started tunneldigger tunnelling network daemon using l2tpv3 for domain 00.
Jan 15 03:21:37 l2tp-ham01 python[25418]: Traceback (most recent call last):
Jan 15 03:21:37 l2tp-ham01 python[25418]: File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
Jan 15 03:21:37 l2tp-ham01 python[25418]: "__main__", fname, loader, pkg_name)
Jan 15 03:21:37 l2tp-ham01 python[25418]: File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
Jan 15 03:21:37 l2tp-ham01 python[25418]: exec code in run_globals
Jan 15 03:21:37 l2tp-ham01 python[25418]: File "/srv/tunneldigger/env_tunneldigger/lib/python2.7/site-packages/tunneldigger_broker-0.3.0-py2.7-linux-x86_64.egg/tunneldigger_broker/main.py", line 1, in <module>
Jan 15 03:21:37 l2tp-ham01 python[25418]: import configparser
Jan 15 03:21:37 l2tp-ham01 python[25418]: ImportError: No module named configparser
Jan 15 03:21:37 l2tp-ham01 systemd[1]: tunneldigger@00.service: Main process exited, code=exited, status=1/FAILURE
Jan 15 03:21:37 l2tp-ham01 systemd[1]: tunneldigger@00.service: Failed with result 'exit-code'.
Das Deployment fand auf frischen Ubuntu-18.04-VMs statt:
Was konkret meinst Du? Ansible läuft sauber durch jetzt, aber der Tunneldigger kotzt ins Essen, tut wohl nicht mehr mit Python2 (.7); wenn man ihn mit „import configparser as ConfigParser“ über jene Klippe bringt, crasht es später. Wie gesagt, frisch auf neuen 18.04-VMs deployed.
Wichtig ist das du die Rolle gateways_l2tp_slovenija und nicht gateways_l2tp ausrollst.
Du kannst auch z.B. mal /srv/tunneldigger verschieben oder löschen. Dann müsste die rolle den Tunneldigger nochmal komplett ausrollen. Lass ansible dann am besten mit --diff laufen damit man sieht was passiert.
root@l2tp-ham01 ~ # systemctl status tunneldigger@01
● tunneldigger@01.service - tunneldigger tunnelling network daemon using l2tpv3 for domain 01
Loaded: loaded (/etc/systemd/system/tunneldigger@.service; indirect; vendor preset: enabled)
Active: active (running) since Wed 2020-01-15 12:36:04 CET; 3s ago
Main PID: 6433 (python)
Tasks: 1 (limit: 1108)
CGroup: /system.slice/system-tunneldigger.slice/tunneldigger@01.service
└─6433 /srv/tunneldigger/env_tunneldigger/bin/python -m tunneldigger_broker.main /srv/tunneldigger/broker/l2tp_b
Jan 15 12:36:04 l2tp-ham01 systemd[1]: Started tunneldigger tunnelling network daemon using l2tpv3 for domain 01.
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Initializing the tunneldigger broker.
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Registered script '/srv/tunneldigger/broker/scripts/add
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Registered script '/srv/tunneldigger/broker/scripts/del
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Maximum number of tunnels is 1023.
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Tunnel identifier base is 2048.
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Tunnel port base is 20000.
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Namespace is domaene_01.
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Listening on 193.26.120.125:10001.
Jan 15 12:36:04 l2tp-ham01 python[6433]: [INFO/tunneldigger.broker] Broker initialized.
Ah okay. Danke
Dann warne ich schon mal vor.
In den Pull requests sind noch zwei weitere dicke Dinger.
Beides sollten non-breaking changes sein, aber das entfernen des NAT Konstruktes könnte vermutlich etwas Verschlankung der Ansible Rollen ermöglichen.
Falls jemand ein ähnliches Problem hat so wie ich gerade mit Puppet und der Neuinstallation von einem Gateway:
apt-get install python3-dev (wird ab python3 benötigt auf dem System)
virtualenv -p /usr/bin/python3 env_tunneldigger (laut Doku, auch bei der legacy Version)
git clone git://github.com/wlanslovenija/tunneldigger.git -b legacy (die Version ohne NAT)
Erst hing ich kurz an python2, bis ich diesen Beitrag hier gefunden habe. Dann hing es an dem python3-dev Paket. Jetzt geht alles wieder automatisch, danke
Der legacy branch ist derjenige, der noch den NAT hack enthält und daher auch auf älteren Kerneln noch funktioniert.
Python 2 wurde, wie du schon richtig erwähntest, sowohl bei dem legacy als auch dem aktuellen master Branch entfernt.