Tag: Administration Systèmes

Lorsque l’on fait du déploiement de poste (ou de serveur) à grande échelle, un des moyen les plus simple est de mettre en place un serveur PXE. Je ne reviendrais pas ici sur la façon de configurer un tel serveur, le net fourmillant de tutoriaux expliquant comment les mettre en place. Cette méthode fonctionne dans beaucoup de cas, mais peut vite devenir galère lorsqu’on utilise des équipements qui ne sont pas standard, comme des cartes réseaux vmware (vmxnet) ou alors des cartes HBA pour installer son système sur une baie de disque fibre, ou bien tout autre périphérique que l’on souhaite utiliser durant l’installation du système.
Je vais prendre pour exemple dans cet article l’ajout de pilotes pour les cartes vmware, sur une distribution CentOS, mais cet exemple est facilement transposable à n’importe quel driver, et à n’importe quelle distribution.
Pour commencer, on va se mettre sur une machine déjà installée avec la distribution que l’on souhaite déployer et les drivers que l’on souhaite ajoutés installés sur le système.
Tout d’abord, il faut récupérer le fichier initrd.img, qui se trouve dans les fichiers liés au PXE sur le CD ou DVD de la distribution (ou sur le serveur PXE). dans le cas d’un DVD CentOS, le fichier se trouve dans “images/pxeboot”.
On va commencer par préparer notre espace de travail :

mkdir /tmp/pxe
cd /tmp/pxe
cp /mnt/dvd/images/pxeboot/initrd.img .
mkdir initrd

Ensuite, on va décompresser le RAMDISK, afin d’avoir accès aux drivers.

cd initrd
zcat ../initrd.img | cpio -id

Maintenant, il convient de repérer le code du périphérique :

$ lspci
[...]
03:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)

puis, pour repérer le code :

$ lspci -n
[...]
03:00.0 0200: 15ad:07b0 (rev 01)

on utilise donc le code 03:00.0 pour repérer le code du périphérique qui nous intéresse : 15ad:07b0
Après avoir gardé ce code en mémoire, on va maintenant décompresser l’archive des modules du noyau PXE :

mkdir /tmp/pxe/modules
cd /tmp/pxe/modules
zcat ../initrd/modules/modules.cgz  | cpio -id

Puis, nous allons récupérer les drivers sur le système pour les inclure au module. Le chemin vers les drivers ainsi que celui du noyau PXE est à adapter en fonction de votre distribution et des drivers que vous souhaitez intégrer :

cd /tmp/pxe/modules/2.6.18-194.17.1.el5/x86_64
cp /lib/modules/2.6.18-194.el5/misc/vmxnet*.ko .
chmod 744 vmxnet*

il faut maintenant recompresser l’archive des modules :

cd /tmp/pxe/modules
find . | cpio -o -H crc | gzip -9 > /tmp/pxe/initrd/modules/modules.cgz

Puis, on édite le fichier des identifiants pci pour y ajouter nos modules :

cd /tmp/pxe/initrd/modules
vim pci.ids

et on cherche l’entrée correspondant au premier chiffre trouvé dans le lspci -n (ici 15ad pour vmware).
Si l’entrée n’existe pas, il faut la rajouter en lui donnant un nom. Puis, il faut rajouter une sous-entrée avec le deuxième chiffre. Dans mon cas, cela va donner ceci :

15ad  VMware Inc
        0405  Abstract SVGA II Adapter
        0710  Abstract SVGA Adapter
        07b0  VMware Adapter

ensuite, on édite le fichier modules-info afin de rajouter nos deux drivers, comme ceci :

vmxnet
      eth
      "VMware vmxnet ethernet driver"
vmxnet3
      eth
      "VMware vmxnet3 ethernet driver"

Puis, on rajoute les alias présent dans le système pour nos drivers au fichier modules.alias :

grep vmxnet /lib/modules/2.6.18-194.17.1.el5/modules.alias >> /tmp/pxe/initrd/modules/modules.alias

enfin, il ne reste plus qu’a ré-empaqueter le ramdisk :

cd /tmp/pxe/initrd
find . | cpio -o -H newc | gzip -9 > /tmp/pxe/initrd.img.vmxnet

et à le mettre sur le serveur PXE :

cp /tmp/work/initrd.img.vmxnet /tftpboot/centos/centos5.5/x86_64

Et voilà, le tour est joué. Dans ce cas précis, cela permet de déclarer directement des machines virtuelles avec des drivers vmxnet, au lieu de faire l’installation avec des drivers e1000, puis de modifier la carte réseau une fois le système installé.

Tags: , , , ,

Certains d’entre vous l’aurons peut-être remarqué, il existe un paquet thunderbird-3.0 dans la dernière Ubuntu.

Thunderbird 3 m’intéresse, car il a été très remanié au niveau du look, et il supporte les onglets.

Malheureusement, lorsque j’ai essayé d’installer ce paquet, j’ai eu le droit à un “pas de version candidate”.

J’ai donc cherché un peu, et j’ai découvert ubuntuzilla.

Ubuntuzilla est un script écrit en python, qui permet d’installer les dernières versions des logiciels firefox, thunderbird et seamonkey.

Pour l’installer, il suffit d’ajouter un dépot :
echo "deb http://switch.dl.sourceforge.net/project/ubuntuzilla/apt all main" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C1289A29
sudo apt-get update

Puis, d’installer le paquet :
sudo apt-get install ubuntuzilla

Ensuite, il faut lancer le script :
ubuntuzilla.py -a install -p thunderbird

à noter qu’on peut remplacer thunderbird dans la commande par firefox ou seamonky

Le script pose des questions comme la langue, si l’on veut sauvegarder…

Une fois le script terminé, thunderbird est disponible, et le thunderbird de la distribution (2.5) est renommé en /usr/bin/thunderbird.ubuntu

Si vous souhaitez revenir en arrière, il suffit de taper :
ubuntuzilla.py -a remove -p thunderbird

et si vous voulez lire en détail toutes les possibilités du script, je vous renvoie au site du projet.

Tags: , , , ,

Selon Wikipédia, un tunnel est :

“une encapsulation de données d’un protocole réseau dans un autre, situé dans la même couche du modèle en couches, ou dans une couche de niveau supérieur. En sécurité, on crée souvent des tunnels chiffrés, par exemple comme le fait SSH. Les données peuvent alors y circuler sans craindre d’être écoutées. Les tunnels peuvent être utilisés pour créer des réseaux privés virtuels (VPN).”

Il existe un logiciel pour faciliter  la mise en place des tunnels et il s’appelle gSTM (Gnome SSH Tunnel Manager).

pour l’installer il suffit de taper :

sudo aptitude install gstm

puis il se trouve dans Applications -> Internet.

L’interface est assez simple :

gstm-accueil

une fois dans l’interface, vous n’avez plus qu’a “Ajouter” votre tunnel.

il faut d’abord donner un nom à votre tunnel :

gstm-tuname

puis définir les propriétés du tunnel :

gstm-tunprop

à savoir l’hôte vers lequel se connecter en SSH et le login, mais aussi si vous souhaitez que la connexion s’établisse automatiquement au lancement du logiciel, et éventuellement une clée privé.

Enfin, il ne reste plus qu’a configurer les redirections à mettre en place.

Il y a trois type de redirections :

gstm-tunredirect-local gstm-tunredirect-stat
gstm-tunredirect-dyn

Vous pouvez donc par exemple rediriger un port vers une autre machine et un autre port.

Ainsi dans l’exemple ci-dessus, lorsque l’on a activé le tunnel et que l’on tape http://localhost:1080 dans son navigateur, on se connecte depuis la machine foo.com à la machine intranet.foo.com sur le port 80…

Il peut y avoir des tas d’applications aux tunnels, comme par exemple, accéder facilement à des machines fermées de l’extérieur en ayant juste un point d’entrée SSH au réseau de ces machines, ou alors tout simplement, surfer de chez soi alors qu’on est au bureau. En plus, tout est crypté, donc, “ni vu, ni connu”.

En conclusion, je pense que tout le monde peut trouver une application concrète à ce petit logiciel…

Tags: , , , ,

Cet été, j’étais en vacances. et en vacances, on ne réfléchit pas trop.

Bref, à un moment, une personne de ma famille m’a amené son portable en me demandant de supprimer Ubuntu de son disque dur afin de redonner de l’espace à Windows. J’aurais préféré faire le contraire, mais là n’est pas le propos.

Ayant toujours un live cd de Ubuntu sur moi, j’ai démarré l’ordinateur sur le cd, et à l’aide du gestionnaire de partitions, j’ai supprimé les partitions / et swap, et redonné l’espace à la partition Windows.

Au redémarrage, je me suis retrouvé avec une belle erreur de grub (qui est placé sur le master boot record) me disant qu’il ne trouve plus la partition racine (normale, puisque je l’avait effacée). Impossible donc de démarrer l’ordinateur avec ce MBR défectueux.

Voulant réparer le MBR, j’ai redémarré sur le livecd, et j’ai cherché un moyen de refaire le MBR. Ma deuxième erreur a été de lire trop vite le manuel de fdisk. En effet, j’ai lu le paragraphe suivant :

The  bottom  line is that if you use cfdisk or fdisk to change the size
of a DOS partition table entry, then you must also use dd to  zero  the
first 512 bytes of that partition before using DOS FORMAT to format the
partition.  For example, if you were using cfdisk to make a DOS  parti‐
tion table entry for /dev/hda1, then (after exiting fdisk or cfdisk and
rebooting Linux so that the partition table information is  valid)  you
would  use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to
zero the first 512 bytes of the partition.

par contre, j’ai complètement ignoré le paragraphe suivant :

BE EXTREMELY CAREFUL if you use the dd command, since a small typo  can
make all of the data on your disk useless.

J’ai donc lancé un :

dd if=/dev/zero of=/dev/hda1 bs=512 count=1

qui ne m’a pas du tout réparé le MBR, mais qui a flingué les 512 premiers bits de ma partition Windows.

Après avoir réfléchi un peu à la situation, je me suis dit : MAIS QUEL CRÉTIN CE GARS !!!

Après avoir chercher un peu dans la mallette du portable, j’ai trouvé un beau CD de Windows XP, qui m’a donné la solution à mon premier problème :

Restauration du Master boot Record Windows

Afin de restaurer le MBR pour Windows, il suffit de lancer l’installation de Windows, puis de passer en mode réparation (R). Il s’ouvre alors une console, où il suffit de taper :

fixmbr c:

Une fois le PC redémarré, cela fonctionne correctement, lorsqu’on a pas flingué les partitions.

J’ai donc ensuite cherché comment réparer une partition NTFS cassée, et là, j’ai retrouvé mon couteau suisse : l’outil testdisk (évoqué dans la restauration de données dans un article précédent).

Restauration d’une partition NTFS abimée

lancer testdisk en tant que root.

Au démarrage, le programme propose trois choix :

[ Create ]  Create a new log file
[ Append ]  Append information to log file
[ No Log ]  Don't record anything

c’est juste pour les logs, donc, on choisit ce qu’on veux.

Puis choisir son disque, puis l’entrée [ Intel ]  Intel/PC partition.

Ensuite il faut aller dans [ Advanced ]  Filesystem Utils.

On se retrouve alors devant la liste des partitions du disque.

Il suffit alors de choisir la partition NTFS cassée, et de lancer le menu [Repair MFT]. TestDisk va alors récupérer la sauvegarde de la table principale des fichiers (Master File Table Mirror), et écrase ensuite la MFT avec.

Une fois fini, j’ai quand même été obligé de reprendre le cd d’installation de XP et de repasser en mode réparation, puis de taper la commande fixboot c:

Voilà pour mes aventures de l’été…

moralité, toujours réfléchir à deux fois avant de faire une connerie.

Et du coup, je me pose la question : Est-ce qu’un utilisateur lambda est vraiment libre de sortir du monde libre ? Ca n’est pas si facile que ça de supprimer Linux… Moins facile que d’y entrer… Moralité :  Il faut pas en sortir !

Tags: , , , , , ,

J’ai découvert screen il n’y a pas longtemps, mais depuis, je m’en sers tous les jours. Vous me direz : ” Oui, c’est très bien tout ça, mais c’est quoi, screen ?”.

Screen est un terminal que l’on ouvre sur un serveur, et qui peut être détaché et ré-attaché à volonté. Cela permet donc de lancer un processus assez long, comme une compilation, de détacher le terminal, couper la connexion au serveur, éteindre l’ordinateur, rentrer chez soi. Le lendemain, lorsque l’on reviens, et que l’on se reconnecte sur le serveur, on retrouve son terminal dans l’état où on l’avais laissé la veille.

Pour installer screen, sous Ubuntu, il suffit de taper :

sudo apt-get install screen

ensuite, pour ouvrir ce terminal, il suffit de taper :

screen

après un écran d’accueil, on se retrouve avec un terminal. on peut ensuite faire ce que l’on veut dans ce terminal. puis lorsque l’on veut s’en détacher, il suffit de faire :

[Ctrl]+a d

on peut ensuite fermer son gnome-terminal (ou autre).

Lorsque l’on souhaite récupérer le terminal détaché, il suffit de taper :

screen -r

Lorsque l’on a plusieurs screen, le -r demande l’identifiant de celui qu’on veut ré-attacher. on peut avoir la liste des processus screen ouverts avec screen -ls

Lorsque l’on veut avoir plusieurs terminaux dans screen, il faut éditer le fichier ~/.screenrc et y mettre :

bindkey T title
hardstatus on
hardstatus string "%{.bW}%-w%{.rW}%f%n %t%{-}%+w %=%{..G}[%H %l] %{..Y} %m/%d %c"
hardstatus alwayslastline "%{=b}%{G} Screen(s): %{b}%w %=%{kG}%C%A  %D,%M/%d/%Y "

Dès lors, on obtient une barre en bas du terminal, permettant de naviguer entre les différents onglets.

Les commandes utiles sont :

[Ctrl]+a c              pour créer un nouvel onglet
T (et non t)          pour renommer un onglet
[Ctrl]+a [0..9]    pour mettre tel ou tel onglet au premier plan
[Ctrl]+a S              pour spliter le terminal à la vertical
[Ctrl]+a s              pour verrouiller le terminal
[Ctrl]+a [TAB]      pour se déplacer entre les zones splitées
[Ctrl]+a X              pour détruire une région splittée

On peut voir ci-dessous un screenshot d’un Screen splitté en 3 avec 3 commandes s’exécutant :

Voilà pour ce petit outil, qui peut s’avérer très utile lorsque l’on a des processus longs à lancer, ou que l’on veut garder ses terminaux toujours ouverts.

Tags: , , ,
« Articles précédents