Maniatux's Blog

Welcome to the internet

Sysadmin

VirtualBox : P2V

Rédigé par Xavier - - Aucun commentaire

Un P2V (Physical to Virtual) est une opération qui consiste à transférer le système d'exploitation d'un ordinateur physique vers une machine virtuelle. C'est très pratique lorsque le hardware est défaillant ou sous-dimensionné et que vous souhaitez redonner un peu de patate à un serveur ou un poste de travail. Dans mon cas il s'agit d'un poste sous Windows XP que je souhaite virtualiser afin de l'utiliser sur une autre machine plus récente équipée de Windows 7. Voici la procédure.

Etape 1 : Génération du fichier VHD

Téléchargez l'utilitaire Disk2vhd sur la machine cible et exécutez-le en administrateur. Pensez à stopper l'antivirus et tous les services pouvant ralentir l'opération. Sélectionnez votre disque C:\ puis décochez la case "Use VhdX" (VirtualBox supporte mal) et sélectionnez l'emplacement du fichier cible (qui peut très bien être en local).

Exécutez l'opération, et patientez. Pour information, 40GB de vhd prennent à peu près 1 heure. Lorsque le fichier est complète généré, transferez-le sur votre machine qui va exécuter VirtualBox. Privilégiez un réseau 1000Mbps sinon cela risque d'être long (quasiment 1h20 pour mon fichier vhd de 40GB!).

Etape 2 : Création de la VM

Sur la machine qui exécute VirtualBox cliquez sur le bouton pour créer une nouvelle VM. Donnez-lui un nom, sélectionnez le type d'OS adapté dans la liste, allouez de la RAM (2GB pour XP 32 bits est suffisant) et sélectionnez "Utiliser un fichier de disque dur virtuel existant" et allez chercher votre fichier vhd. Pour finir, cliquez sur "créer".

Etape 3 : Configuration

Pour ma machine virtuelle en Windows XP j'ai du activer IO-APIC et PAE/NX. Pour cela sélectionnez votre VM puis cliquez sur "Configuration". IOi-APIC se situe dans la catégorie "Système" puis onglet "Carte mère". PAE/NX se situe dans l'onglet "Processeur".

Exécuter la VM

Plus qu'à cliquer sur le bouton "Démarrer" ! Attention si votre Windows XP était enregistré sur un domaine, pensez à le renommer pour éviter les conflits sur l'A.D.

FreeNAS + dlna (BBox)

Rédigé par Xavier - - Aucun commentaire

Je stocke mes données sur un serveur maison qui tourne sur FreeNAS. Il est équipé de deux disques de 1TB membres d'un pool ZFS en mode miroir. L'accès se fait via un partage SMB, solution retenue car la majorité des accès se fait depuis un PC sous Windows (mais c'est également possible sous Linux avec smb://).

La BBox dispose d'un lecteur multimédia censé pouvoir lire les contenus des NAS. Mais de base cela ne fonctionne pas, mon partage SMB n'est pas visible. Après une petite recherche sur le web j'ai découvert qu'elle ne fonctionne qu'avec le dlna, en gros c'est un standard qui qui fourni plusieurs composants pour diffuser des contenus sur un réseau domestique. Mais FreeNAS n'offre pas la possibilité de faire serveur dlna. Heureusement, c'est possible avec un plugin.

Pré requis

FreeNAS doit être configuré et avoir accès à internet. Nous ne traiterons pas la mise en place des partages et le stockage des données. Dans l'exemple je stocke mes films dans /mnt/DATA/Films.

Configurer les jails

Comme FreeNAS est bien conçu, il utilise les jails de FreeBSD pour stocker ses plugins :) il faut donc commencer par les configurer. Rendez-vous dans Jails > Configuration. Entrez un chemin de stockage pour les jails, dans mon cas j'ai mis /mnt/DATA/jls. Pour la partie réseau assurez-vous qu'il s'agit du même que celui utilisé. Par exemple si votre NAS a l'IP 192.168.0.30, vous pouvez spécifier une start adress de 192.168.0.40 et une end adress de 192.168.0.50. Faites attention à la disponibilité de ces adresses (elles sont attribuées en statique, non par DHCP).

Installation du plugin dlna

Rendez-vous dans Plugins et sélectionnez "DLNA / UPnP" dans la liste. Cliquez sur "Install".

Au bout de quelques secondes, le plugin est installé.

Configuration du plugin dlna

Il va falloir voir deux points :

  1. Le plugin étant dans une jail, il n'a pas accès aux données, il faut donc définir un point de montage.
  2. Il faut indiquer au plugin où trouver les média

Allez dans Jails > dlna_1 > Stockage > Add Storage. Dans Source indiquez /mnt/DATA/Films (là où sont stockés les films). Dans Destination indiquez /mnt (l'emplacement dans la jail où vont apparaitre les films).

Allez dans Modules > MiniDLNA. Options à ajouter :

  • Friendly Name : FreeNAS (ou autre, c'est le nom qui sera visible sur le réseau)
  • Media directory : /mnt (correspondant au point de montage défini précédemment)
  • Cocher Rescan on (re)start

Validez.

Maintenant dans la page des Modules, vous pouvez passer l'interrupteur sur ON pour MiniDLNA :D

Test

Il faut utiliser un appareil ou un logiciel capable de visualiser les périphériques DLNA. Une BBox fait l'affaire, mais vous pouvez aussi utiliser une application android pour tester :D si vous détectez votre périphérique "FreeNAS" tout en ayant la possibilité de voir les films dessus, c'est gagné :)

Bon visionnage !

Se faire une "IPv6 Box"

Rédigé par Xavier - - Aucun commentaire

Dans un article précédent j'ai cité un moyen d'utiliser IPv6 à travers un tunnel IPv4. Or il faut répéter la manipulation sur chaque machine, ce qui n'est pas très pratique, encore moins pour les appareils mobiles (Android).

Est-il possible de "déporter" cette passerelle sur une machine (serveur) et pousser automatiquement la configuration aux machines du réseau ? Oui ! Nous allons voir comment mettre en place une "IPv6 Box".

Comme le montre le schéma ci-dessus, la passerelle ne nécessite pas de structure particulière du réseau, elle se branche simplement sur le routeur (*box) comme n'importe quel autre périphérique. Aucune configuration ne sera nécessaire (c'est la magie de l'IPv6) sur les autres machines du réseau.

Le serveur

Il peut être physique ou virtuel (réseau bridge). Il n'y a besoin que d'une interface réseau ce qui simplifie amplement les choses. Ce serveur va :

  • Établir et maintenir une connexion au tunnel IPv6
  • Faire office de passerelle pour les machines du réseau
  • Utiliser le daemon RADVD pour manifester sa présence sur le réseau (les machines s'auto configureront)

Le tutoriel est fait avec Debian, mais devrait fonctionner sur Ubuntu.

Demander un préfixe /48

Commencez par vous inscrire sur le site de Hurricane Electric, et créer un nouveau tunnel. Vous allez pouvoir choisir votre point de sortie (Paris) et spécifier votre adresse IP. Par la suite demandez un préfixe /48 en cliquant sur le bouton Assign, sur la page qui récapitule les paramètres de votre tunnel.

Voici ce que vous devriez obtenir :

Configuration de Debian

Le serveur dispose d'une interface réseau eth0 avec les paramètres suivants :

  • Adresse IP fixe, 192.168.0.10/24
  • Passerelle IPv4 (*Box) : 192.168.0.254
  • Adresse IPv6 du tunnel : 2001:470:c851:10::1/64
  • Adresse IPv6 eth0 : 2001:470:c851:192::1/64

Les adresses IPv6 choisies font partie du préfixe /48 attribué (2001:470:c851::). Aidez-vous du calculateur IPv6 Calculator si besoin.

Ouvrez et modifiez /etc/network/interfaces comme ceci :

auto lo

iface lo inet loopback



# The primary network interface

allow-hotplug eth0

iface eth0 inet static

        address 192.168.0.10

        netmask 255.255.255.0

        gateway 192.168.0.254

iface eth0 inet6 static

        address 2001:470:c851:192::1

        netmask 64



auto he-ipv6

iface he-ipv6 inet6 v4tunnel

        address 2001:470:c851:10::1

        netmask 64

        endpoint 216.66.84.42

        ttl 255

        gateway 2001:470:c851::1

Puis relancez le réseau avec la commande suivante (ou redémarrez le serveur) :

# service networking restart

Pour vérifier que le tunnel est bien en place, tapez la commande suivante :

# ping6 google.com

Ou alors :

# apt-get update

(Si vous utilisez les dépôts Debian par défaut, ils sont accessibles en IPv6...).

Radvd

Un réseau en IPv6 n'a pas besoin de serveur DHCP. En effet, le routeur va manifester sa présence sur le réseau, et les machines vont s'auto-configurer (Stateless Address Autoconfiguration, SLAAC). On va donc installer Radvd :

# apt-get install radvd

Créez le fichier /etc/radvd.conf et ajoutez :

interface eth0 {

        IgnoreIfMissing on;

        AdvSendAdvert on;

        MinRtrAdvInterval 30;

        MaxRtrAdvInterval 60;

        prefix 2001:470:c851:192::/64 {

                AdvOnLink on;

                AdvAutonomous on;

                AdvRouterAddr on;

        };

};

Lancez ensuite le service :

# service radvd start

Vérifications

Redémarrez une des machines de votre réseau, et vérifiez si elle récupère bien une IPv6. Attention, si cette machine utilise network-manager, il se peut que l'IPv6 soit désactivé par défaut ! Dans ce cas, éditez votre connexion réseau, et dans l'onglet "Paramètres IPv6" sélectionnez "Automatique". La capture d'écran ci-dessous montre le paramétrage sur CentOS6 + Gnome2 mais reste similaire sur Fedora et KDE.

Allez sur le site test-ipv6.com. Si vous obtenez un 10/10, c'est bon !

Dedibox Classic + gen2 (Dell R210)

Rédigé par Xavier - - Aucun commentaire

J'ai en ce moment l'occasion d'utiliser une Dedibox Classic + gen2, soit un Dell R210 chez online.net. Bien que je ne compte pas le garder longtemps, je vais décrire mon expérience et mes impressions.

Caractéristiques

Les détails sont présentés sur cette page. Dans les grandes lignes : un Intel Xeon 4 coeurs 3,1GHz de dernière génération, 8 GB de ram, deux disques de 1TB 7k2 en RAID matériel, une carte IDRAC accessible via internet. Pour le prix c'est assez raisonable et cela permet de s'amuser avec la virtualisation.

La carte IDRAC dispose d'un accès distant fonctionnant comme un KVM sur IP. Il est donc possible de suivre le boot du serveur et même accéder aux paramètres du bios ou de la carte RAID. Très pratique pour effectuer la configuration si le système est en panne ou si le réseau est coupé (par exemple à cause d'une mauvaise manipulation sur le parefeu). La maitrise sur le matériel est totale.

Systèmes d'exploitation

Les systèmes proposés sont :

  • Debian
  • Ubuntu Server ainsi que Ubuntu et ses variantes Kubuntu et Xubuntu
  • Windows 2008R2
  • CentOS
  • Proxmox
  • VMware ESXi
  • Plesk, une distribution maison avec un Webui poussé

Ayant envie d'utiliser la virtualisation avec KVM, je suis parti sur une CentOS (à priori la distribution qui l'intègre le mieux et qui suit les mises à jour). J'ai donc demandé l'installation de CentOS sur le serveur et une page permettant de définir le partitionnement m'a été proposé. Il n'y a pas grand chose : pas d'ext4 (ext3 ou xfs), pas de lvm... ce qui est quand même dommage.

Heureusement la carte IDRAC, qui se comporte comme un KVM sur IP, permet de monter une ISO et booter dessus. Explications ici. J'ai donc pu démarrer avec une ISO officielle de Centos 6.4 et l'installer à ma sauce (partitionnement ext4!!!). L'accès à la carte IDRAC est un énorme avantage sur ce point.

Virtualisation

Une fois ma CentOS installée j'ai ajouté les paquets kvm et libvirt puis ait établi une connexion via virt-manager à travers SSH depuis ma Fedora locale (oui, j'utilise les deux derniers chiffres de l'IP et le tableau périodique des éléments pour nommer les VM...).

J'utilise pour le moment uniquement des VM debian, avec les pilotes virtio pour le réseau et le stockage. J'ai remplacé les images RAW par du QCOW2, afin d'occuper moins d'espace disque et faciliter les prochaines sauvegardes. Virt-manager n'est pas pleinement au point et plante si on le contrarie. Mieux vaut aller jusqu'au bout des assistants de création de VM, puis la stopper et modifier la configuration à froid. Aller trop vite peut provoquer un plantage, ou une situation pire dans laquelle la VM est éteinte mais considérée comme en marche, donc totalement bloquée (la solution consiste à redémarrer le serveur...). Très mauvais point pour virt-manager.

Les performances des VM sont très correctes, l'hyperviseur est correctement dimmensionné pour cela (Xeon + cache de la carte RAID). On peut empiler les VM sans souci et le CPU reste toujours à des niveaux très bas.

Réseau

Pour ne pas avoir à gérer du NAT et des redirection de port, j'ai pris une IP failover afin de l'utiliser sur la VM. J'ai configuré la carte réseau de cette VM en macvtap sur l'interface du serveur hôte (em1). Il faut faire attention à préalablement déclarer l'adresse MAC de la carte réseau de la VM dans l'interface de gestion des IP failover sur l'espace client. Car du trafic réseau généré par une adresse MAC inconnue provoque la déconnexion du serveur. Ceci est probablement une mesure de sécurité, mais il faut faire attention.

Concernant l'IPv6, il est surprenant de constater que cela n'est pas encore mis en place. Bien que le "catalogue" cite un préfixe /48, l'interface client affirme que cette fonctionalité "arrive prochainement". Donc, contrairement à ce qui est annoncé, il n'y a pas d'IPv6. Le catalogue est donc purement et simplement mensonger, si vous avez loué une Dedibox pour l'IPv6 il va falloir patienter...

Mes impressions

Mis à part l'IPv6 qui est annoncé mais non disponible, je suis plutot satisfait de cette Dedibox. Le prix est raisonnable par rapport à la configuration fournie, et l'accès à la carte IDRAC offre une souplesse incroyable sur la configuration du serveur et le choix des systèmes d'exploitation. Pour le moment je ne peux que recommander cette Dedibox Classic.

(Note : article non sponsorisé).

GLPI et les comptes ldap renommés

Rédigé par Xavier - - Aucun commentaire

GLPI est capable d'importer ses comptes utilisateurs depuis un annuaire LDAP (openldap, Active Directory, etc...). Malheureusement si les comptes utilisateurs sont renommés il ne les reconnait plus et créé alors des doublons. L'accès est toujours possible pour les utilisateurs, mais ils ne retrouvent pas leurs données.

C'est ce qui nous est arrivé, car dans le cadre d'un grand ménage et d'une mise aux normes, nous avons changé les logins A.D des utilisateurs. Après de longues recherches sur le web, demandes sur IRC, coups d’œils aux rapports de bug, j'en suis arrivé à la conclusion qu'on ne pouvait pas y faire grand chose. La solution est de modifier les comptes utilisateurs à la main. Or si les utilisateurs sont synchronisés sur un annuaire ldap, le login est impossible à modifier ! Il faut donc ruser.

Il n'est pas forcément nécessaire de migrer tous les comptes utilisateur, uniquement ceux qui ont travaillé sur des tickets. Pour les autres on peut accepter la création de doublon et supprimer l'ancien compte car il n'y a pas de perte de données.

Solution 1 : Interface graphique

Le cheminement à suivre est le suivant :

  • Aller dans Administration > Utilisateurs
  • Cliquer sur le compte utilisateur à migrer
  • Dans l'onglet Synchronisation modifier la méthode d'authentification sur Authentification sur la base GLPI
  • Valider.
  • Changer l'identifiant de l'utilisateur pour le mettre en conformité avec l'annuaire ldap.
  • Remettre la méthode d'authentification sur Authentification sur un annuaire LDAP et sélectionner votre connecteur.

L'utilisateur doit maintenant être capable d'accéder à GLPI avec son nouvel identifiant et retrouver ses tickets.

Solution 2 : SQL

Note : Il est recommandé de procéder à un export (sauvegarde) de la base de données avant de continuer.

Attaquer directement la base de données peut être plus rapide car on peut modifier directement le login. Pour vous faciliter les choses vous pouvez utiliser phpmyadmin si votre serveur le permet. Dans l'exemple suivant la base de données de GLPI s'appelle dbglpi ainsi que l'utilisateur associé. Imaginons que pour l'utilisateur "Xavier C", qui porte l'id 6*, je veux indiquer le login "cx49".

mysql -u dbglpi -h localhost dbglpi -p

update glpi_users set name = 'cx49' where id = '6';

*Pour visualiser les id utilisateurs :

  • Soit passer la souris sur la liste des utilisateurs dans GLPI (l'id apparait dans l'url)
  • Visualiser la table glpi_users sur phpmyadmin
  • Utiliser la commande select name, id from glpi_users order by id;

Conclusion

Les comptes utilisateurs de GLPI ont été remis en conformité avec l'annuaire LDAP, le login est donc à nouveau possible et les tickets préservés.