Passer au contenu principal

code. grind. sleep.

Étiquette: unix

Memento Cloud Init

Cloud Init permet de configurer des machines virtuelles au boot, en utilissant des méta données provenant de la plateforme ou tourne la VM (AWS, Azure, GCP, KVM Local, etc). Pour une installation sur KVM avec libvirt, il faut utiliser le module NoCloud :

  1. Installer le système dans un KVM, avec virt-manager et une image ISO
  2. Installer le paquet cloud-init (et le paquet sudo pour que le reste fonctionne)
# yum install cloud-init sudo
  1. Eteindre la VM
  2. Créer un répertoire de travail et s’y déplacer
  3. Créer les 3 fichiers :
  • user-data : contient la configuration pour ajouter son user, sa clé SSH, configurer sudo, configurer le mot de passe root
  • meta-data : contient la configuration de la machine, le hostname, etc
  • network-config : contient la configuration du réseau
  1. Créer l’image ISO :
$ genisoimage -output cloudinit_la_vm.iso -volid cidata -joliet -rock user-data meta-data network-config
  1. Attacher l’image ISO
  2. Démarrer la VM

Configuration réseau pour virtualiser chez OVH

Sur mon serveur chez OVH, j’ai un ensemble de machines virtuelles KVM et (bientôt) de conteneurs LXC. Pour fournir du réseau à tout ce petit monde, j’utilise de l’IPv4 et de l’IPv6, voici comment c’est configuré. Pour l’IPv4, on a un nombre limité d’IP publiques parce que ça vaut de la thune et que ça va être de plus en tendu de multiplier les adresses, il nous faut un réseau privé (beurk), du NAT (rebeurk) et des redirections à base d’iptables (re-rebeurk).

Rediriger stdout/stderr depuis un script avec du pipe

Pour rediriger stdout/stderr à l’interieur vers l’entrée standard d’un commande, il faut utiliser exec et du sous-shell. Cette astuce est un bashisme a priori. L’objectif est de renvoyer tous les messages du script dans syslog sans mettre de redirection sur la ligne de commande. Le principe général est : exec FD> >(COMMAND) FD est le numéro du file descriptor, 1 pour stdout, 2 pour stderr COMMAND est la commande a exécuter, elle doit bien sûr lire les données en entrée.

Combiner des PDF en un seul

Pour combiner des pdf en un seul, on peut essayer pdfjoin fournit par le projet pdfjam. En attendant que les 250 Mo de dépendances (Latex principalement) s’installent, on peut utiliser ghostscript : gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -sOutputFile=../combined_doc.pdf *.pdf Merci à perlmonks.org.

Insérer des tabulations dans sa ligne de commande bash

Il y a longtemps que je me demandais comment faire ça, sans prendre la peine de rechercher ou lire le man. C’est chose faite, pour insérer une tabulation, il faut contourner la complétion de commandes avec le combo suivant : C-v TAB C’est simple, mais ça ne s’invente pas. Pour le coup, c’est utile quand on veut voir un fichier de configuration sans les commentaires, par exemple postgresql.conf :