Schmerzen mit Ansible

Der Arbeits­tag heu­te kann weg.
Mein Ansi­ble-Play­book, das seit Jah­ren funk­tio­niert, funk­tio­niert auf ein­mal nicht mehr:

Ja groß­ar­tig! So eine wun­der­ba­re Feh­ler­mel­dung! Nicht. Gesucht, gesucht, gesucht, kei­nen Feh­ler gefun­den. Der Feh­ler kommt übri­gens nur bei Opensuse.
Die ein­zi­ge Ände­rung: Ich hat­te kürz­lich auf mei­nem Ansi­ble-Con­trol­ler (ein Mac) ansi­ble upge­da­ted, auf dem andern Mac nicht, und da lief das Play­book auch noch durch. WTF?

Um es abzu­kür­zen: Hier ist der root cause:

SyntaxError: future feature annotations is not defined

Stellt sich raus: annotations gibt es seit Python 3.7, Open­su­se, auch die aktu­el­le 15.6, kommt aber mit Python 3.6. Will man was neue­res haben, muß man das Paket python311instal­lie­ren, und das im Inven­to­ry auch bekanntgeben:

[all:vars]
ansible_python_interpreter=/usr/bin/python
ansible_ssh_common_args="-F {{ lookup('env', 'HOME') }}/.ssh/config.ansible"
ansible_ssh_private_key_file="{{ lookup('env', 'HOME') }}/.ssh/ansible-work"

[suse:vars]
ansible_python_interpreter=/usr/bin/python3.11

[suse]
suse1.example.com
[…]

Gut, Pro­blem erkannt. Nur wie bekom­me ich das Paket python311 auf die gan­zen Susen? Aus dem Alter ssh auf die Kis­ten und dann mit zypper nach­in­stal­lie­ren bin ich defi­nitv raus. Aber da ist ja noch der ande­re Rech­ner mit einem funk­tio­nie­ren­den Ansible.
Das ist eiin ein­fa­ches ad-hoc-Kom­man­do, dafür braucht man kein Playbook:

❯ ansible suse -i ~/Projekte/work/git/ansible/Rainer/cfg/linux -m zypper -a "name=python311 state=present"

regelt. Und die Schei­ße geht wieder!

Übri­gens: Alles mit der Hand wäre wesent­lich schnel­ler gew­sen. Aber auch wesent­lich uncooler 😉

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert