Installer Ansible sur Android/Termux, ça reste chiant

closeCet article a été publié il y a 1 an 1 mois 3 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Il y a quelques années Cascador avait partagé comment installer Ansible sur Android, via termux. Parce que déjà à l’époque c’était compliqué en termes de compatibilité. On est en 2023 et j’ai pu passer une partie d’un trajet récent en TGV (mon premier trajet en train en 10 ans) à galérer pour refaire ça sur un Android 11. Comme quoi c’est toujours pas magique l’informatique.

Eh oui, naïf comme je suis, j’ai pensé qu’avec python 3 et un Android récent, ça se passerait mieux, et qu’on serait pas obligé d’utiliser une version dépassée. C’était sans compter sur certaines dépendances, et notamment l’une d’entre elles qui est cryptography. Il s’avère que cette dépendance compile du code Rust, et c’est cette compilation qui demande de l’attention.

Au départ, on fait comme d’habitude et on installe/update python. A noter que Python 3 étant le seul présent, les packages s’appellent juste python-*. Donc on vérifie/installe python et python-pip, et on peut attaquer le travail :

Et là, PAF ! pendant la première installation, cryptography me claque une erreur qui semble liée à Rust (évidemment, je n’ai pas pensé à conserver le log, même pas une capture d’écran…). En fait, rust n’est tout simplement pas installé, en même temps on s’attend pas à devoir compiler du Rust en installant un package python hein… Donc on l’ajoute, et on en profite pour quelques dépendances en plus :

Mais ce n’est pas suffisant, nouvel essai, nouvel échec. Cette fois, ce sont les options de compilation de Rust qui demandent à être adaptées. Fort heureusement, ça peut se faire avec des variables d’environnement. Dans mon cas, les deux suivantes étaient requises :

Et là, en relançant mon pip install ansible, il a fini par terminer la compilation et donc l’installation effective d’ansible.

Au passage je déconseille fortement de faire ce genre de choses pendant un déplacement, le besoin d’accéder au réseau de manière stable est loin d’être garanti et j’ai perdu un peu de temps avec des coupures spontanées de connexion pendant les installs de paquets, aussi bien de pkg/apt (parce que oui, pkg dans termux dans la pratique c’est apt), que de pip.

Bon à savoir également, starship est disponible directement dans les packages, je n’ai pas encore déployé ma config perso, mais c’est cool et moins chiant que de jouer avec asdf. Même si ça asdf fera partie des choses que je compte installer aussi dans mon environnement mobile 🙂