#macports

rainerhgw@diasp.org

Schmerzen mit Ansible

Der Arbeitstag heute kann weg.

Mein Ansible-Playbook, das seit Jahren funktioniert, funktioniert auf einmal nicht mehr:

Ja großartig! So eine wunderbare Fehlermeldung! Nicht. Gesucht, gesucht, gesucht, keinen Fehler gefunden. Der Fehler kommt übrigens nur bei Opensuse.

Die einzige Änderung: Ich hatte kürzlich auf meinem Ansible-Controller (ein Mac) ansible upgedated, auf dem andern Mac nicht, und da lief das Playbook auch noch durch. WTF?

Um es abzukürzen: Hier ist der root cause:

SyntaxError: future feature annotations is not defined

Stellt sich raus: annotations gibt es seit Python 3.7, Opensuse, auch die aktuelle 15.6, kommt aber mit Python 3.6. Will man was neueres haben, muß man das Paket python311installieren, und das im Inventory 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, Problem erkannt. Nur wie bekomme ich das Paket python311 auf die ganzen Susen? Aus dem Alter ssh auf die Kisten und dann mit zypper nachinstallieren bin ich definitv raus. Aber da ist ja noch der andere Rechner mit einem funktionierenden Ansible.

Das ist eiin einfaches ad-hoc-Kommando, 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!

Übrigens: Alles mit der Hand wäre wesentlich schneller gewsen. Aber auch wesentlich uncooler 😉

#ansible #macports

rainerhgw@diasp.org

Er hat Jehova gesagt!

Ich mag ja #macports auf meinem Mac:

~$ port variants ffmpeg
ffmpeg has the variants:
   darwinssl: Enable https support using Apple built-in TLS library instead of
              GNU TLS
[+]gpl2: Enable GPL code, license will be GPL-2+
   gpl3: Enable GPL code, license will be GPL-3+
     * requires gpl2
   jack: Enable jack library and indev support
   libdc1394: Enable IIDC-1394 frame grabbing using libdc1394 (experimental)
   librtmp: Use librtmp (from rtmpdump) as rtmp[t][es]:// protocol handler
   nonfree: enable nonfree code, libraries and binaries will not be
            redistributable
   universal: Build for multiple architectures
   x11: Enable X11 support
~$

Das (ich kann mir aussuchen, welche Features eines Paketes ich haben möchte) kann kaum ein Linux (außer #Gentoo und #LFS)

Jehova!