Category Archives: Virtualisation

Exécuter des binaires compilés pour une autre architecture

Besoin de tester les cartes SD ou clés USB de vos environnements embarqués (pour RaspberryPi, OlinuXino, Pogoplug…) depuis votre poste de travail habituel sous GNU/Linux ?

C’est possible.

Pour des binaires « linkés » en statique, ce n’est pas trop compliqué. Il suffit d’installer le paquet « qemu-user-static » et de laisser agir « binfmt-support ».

Pour des binaires « linkés » dynamiquement, ca demande quelques opérations supplémentaires, mais tout est expliqué là, pour Debian GNU/Linux.

Réaliser des opérations sur toutes vos VM (VMWare) GNU/Linux

Vous n’avez pas encore d’outil comme puppet, cfengine, salt & co ? Dommage. Heureusement, vous avez pensé à déployer votre clé publique ssh sur les comptes root de chacune de vos VM GNU/Linux.

« Facile » donc, de réaliser des opérations de masse sur toutes ces machines.

  • 1ere étape, récupérer les couples IP/nom de ces VM (pourquoi pas). Nécessite d’installer la vSphere CLI.
# login administrateur vmware
ADMLOGIN="adm@domain"

# Fichier resultat
FICRES="liste_all_vm_linux.txt"

# dossier temporaire
TMP="/tmp"

# Suppression de la verification SSL qui bloque la commande
export PERL_LWP_SSL_VERIFY_HOSTNAME=0

# Récupération de la liste de toutes les vm avec le SE client (guestFullName...), le nom de vm (vmname), et l'adresse IP
echo "Recupération de la liste des vm. L'operation peut prendre 1 minute..."
/usr/lib/vmware-vcli/apps/vm/vminfo.pl --server host_vsphere --username $ADMLOGIN --fields guestFullName,vmname,ipAddress --out $TMP/liste_vm.xml

# On conserver uniquement les vm Linux et on affiche le nom (sans le commentaire entre parenthese) suivi de son IP
grep -A2 "<guestOS>" $TMP/liste_vm.xml | egrep -A2 -E -i "linux|centos" \
| egrep -E "Name|ipAddress" | sed -n 's#<Name>\([^(]*\).*</Name>#\1#p;s#<ipAddress>\(.*\)</ipAddress>#\1#p' > $TMP/liste_vm.txt

# On reorganise les données : un couple nom vm + IP par ligne
num=0
while read line
do
    if [ "$num" -eq "0" ] 
    then
        echo -n "$line "
        num=1
    else
        echo "$line"
        num=0
    fi
done < $TMP/liste_vm.txt > $FICRES

rm $TMP/liste_vm.xml $TMP/liste_vm.txt

echo "fichier genere : $FICRES"

On obtient un fichier contenant :

mavm001 192.168.1.2
mavm002 192.168.1.3
  • 2e étape, se servir du fichier généré (pour vérifier s’il existe un process « postgres » par exemple)
# Nom du process a chercher
process="[p]ostgres"

# fichier contenant des lignes du type  : mavm001 192.168.1.2
# eventuellement avec quelques "Not known" qui trainent
LISTE="liste_all_vm.txt"

while read line
do
    set -- $line
    name=$1
    ip=$2

    if [ "$ip" != "Not" ]
    then
        echo "################ Traitement $name $ip"
        # Récuperation de la sortie de mount
        PROCESS=$(ssh -oStrictHostKeyChecking=no -n root@$ip "ps aux" | grep -i $process)
        if [ ! "x$PROCESS" == "x" ]
        then
            echo "####### $name $ip"
            echo $PROCESS
        fi
    fi
done < $LISTE

Les défis cachés de la virtualisation

Virtualization.info a publié une série d’articles concernant un autre aspect de la virtualisation : Les défis relatifs à l’introduction et l’implémentation de la virtualisation dans votre environnement, d’un point de vue opérationnel et culturel. Ces articles présentent l’expérience de ceux qui ont déjà réussi à mettre en place une telle technologie. Ils abordent :

La sécurité des infrastructures virtuelles, dans le monde réel

Virtualization.info a publié une série d’articles concernant la sécurité des plateforme de virtualisation.
Contrairement à ce que l’on peut lire habituellement dans des articles sur les bonnes pratiques de sécurité, d’autres aspects sont ici abordés. Ces articles font plutôt référence à des problèmes auxquels on ne pense pas immédiatement lors du déploiement d’une infrastructure virtuelle :