Termux sur Android : Installation de Ansible entre autres choses

Déjà le 4ème article sur Termux (1, 2, 3) où nous allons principalement voir l’installation de Ansible. J’ai horreur de vendre du rêve alors je préviens tout de suite, il s’agit de la version 1.8 de Ansible et je n’ai pas vu de moyen pour utiliser ansible.cfg. Il est possible d’installer une version plus récente de Ansible mais dès que vous le lancerez ça partira en erreur. Apparemment ça vient de l’absence de /dev/shm qui pose problème (1, 2). Si vous êtes root sur le téléphone vous pourrez résoudre le problème mais je considère que ce n’est pas le cas.

Installation de pycrypto

Je détaille déjà l’installation de pycrypto car c’est là où réside la difficulté. J’ai ouvert une issue pour ça parce que c’était pas simple. Les commandes suivantes s’exécutent sur le téléphone pour ceux qui ne sont pas encore bien réveillés.

apt update && apt upgrade # On met à jour les packages
apt install autoconf gcc make libgmp-dev python-dev # On installe les packages nécessaires
export CONFIG_SHELL=$PREFIX/bin/sh # On exporte la variable qui va bien, c'était le point difficile
pip install pycrypto # On installe pycrypto

Installation de Ansible et premier test

A noter que Termux utilise Python 3 par défaut par conséquent pip correspond à pip3. Si on veut utiliser pip2 (de Python 2 donc) il faudra faire pip2 install monjolipackage.

apt install libffi-dev openssl-dev python2-dev # On installe les packages nécessaires
pip2 install ansible==1.8 # On installe précisément la version 1.8 de Ansible avec pip2

Voilà Ansible est installé, vous pouvez faire un petit ansible -h pour voir si vous n’avez pas de message d’erreur. On va passer maintenant à notre premier test.

apt install openssh # On installe le package openssh sur Termux
ssh-keygen -t rsa -b 4096 # On génère nos clés
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2222 "babar@192.168.1.50" (on peut faire plus simplement avec ssh-copy-id -p 2222 "babar@192.168.1.50") # On copie notre clé sur notre server@home

On va maintenant créer un fichier hosts dans notre $HOME donc cd && nano hosts où l’on met monjoliserveur ansible_ssh_host=192.168.1.50 ansible_ssh_port=2222 ansible_ssh_user=babar. On fait un test via le module ping ansible monjoliserveur -i hosts -m ping.

Un retour sur le clavier Bluetooth

Ma chère et tendre m’a donc offert ce clavier Bluetooth pour la fête des pères. A 18 euros ça fait le job mais il ne faut pas s’attendre à une qualité extraordinaire. Je trouve la frappe agréable mais le clavier étant en plastique et très léger, il a tendance à légèrement sursauter quand on tapote dessus. Je prends la touche Ctrl (à droite) pour la touche Alt Gr et je n’arrive pas à sortir les touches > et <, ce sont les deux principaux reproches que j’ai à faire. A l’heure actuelle c’est un compagnon de choix dans mon sac et c’est bien pour ça que je l’ai pris : Petit, léger, pratique.

J’ai un peu galéré lors de la première connexion, je tapais sur la touche a et c’était q qui apparaissait. J’ai cherché à tort dans Termux, c’était au niveau d’Android. Afin de passer le clavier Qwerty en Azerty, il faut aller dans Réglages, Langue et saisie puis Clavier physique et choisir Français – Clavier Android.

Installation de youtube-dl

Oui évidemment on peut installer youtube-dl alors on va pas se gêner ;)

apt install ffmpeg python-dev # On installe les packages nécessaires
pip install youtube-dl # On installe youtube-dl qu'on mettra à jour ainsi pip install --upgrade youtube-dl

C’est installé !

Jouons avec youtube-dl

L’option -a est la même chose que --batch-file (voir ici), elle permet de donner une liste de vidéos à télécharger à youtube-dl. L’option -o est la même chose que --output, elle permet de préciser le format/template de sortie des noms des fichiers (voir ici les options et les exemples).

youtube-dl --batch-file /sdcard/Download/liste.txt --output "/sdcard/Download/%(title)s.%(ext)s"
youtube-dl -a /sdcard/Download/liste.txt -o "/sdcard/Download/%(title)s.%(ext)s" # Exactement la même chose mais écrit en plus concis

Ci-dessus on va prendre la liste des vidéos à télécharger dans /sdcard/Download/liste.txt et placer les vidéos téléchargées dans /sdcard/Download. Pour ce lien ça donnera comme nom de fichier en sortie Meutres au paradis – Une mort rock’n’roll.mp4 par exemple.

Mais bon… on va faire plus sexy.

wget -qO - http://www.cascador.net/liste.txt | youtube-dl --batch-file - --output "/sdcard/Download/%(title)s.%(ext)s"
wget -qO - http://www.cascador.net/liste.txt | youtube-dl -a - -o "/sdcard/Download/%(title)s.%(ext)s" # Exactement la même chose mais écrit en plus concis

Qu’est-ce qu’on fait ? On va « lire » wget -qO - le fichier http://www.cascador.net/liste.txt et envoyer | la liste des vidéos à télécharger en entrée de youtube-dl --batch-file -.

De cette manière on peut mettre notre liste des vidéos à télécharger n’importe où (par exemple sur notre server@home) tant qu’elle est accessible publiquement. Je vais évidemment combiner cette petite astuce avec celle-ci hé hé hé afin de centraliser dans un seul fichier toutes les vidéos que je veux récupérer puis les télécharger avec la ligne de commandes ci-dessus à partir de n’importe quel appareil (téléphone, pc, tablette, server@home).

Vus : 4654
Publié par blog-libre : 133