Bonding : Agrégation de plusieurs Interfaces réseaux

Article publié le 12 Mai 2013
Ce petit tuto peut vous être utile si votre prod est (encore) hébergé sur des serveurs physique.
En effet le bonding  vous permet d’avoir une haute disponibilité au niveau de vos interfaces réseau ( 2 carte réseau physique pour une IP).
Cela vous permettra également de multiplier votre bande passante par le nombre d’interface que vous allez utiliser.
Dans ce petit tuto nous allons faire la manip avec seulement 2 cartes réseaux:
Tous d’abord créez le fichier /etc/modprobe.d/aliases-bonde.conf  et

 ajoutez les lignes suivantes:
alias bond0 bonding
options bond0 mode=1 miimon=100 max_bonds=4
 Il ne vous reste plus qu’à éditer votre fichiers interface ( Syntaxe différente sur une Red hat/CentOS)
auto bond0
iface bond0 inet static
pre-up modprobe bond0
address x.x.x.x.
netmask x.x.x.x
gateway x.x.x.x.
       # Interface utilisé dans notre exemple eth0 et eth4
up ifenslave bond0 eth0 eth4
up ethtool -s eth0 autoneg on
up ethtool -s eth4 autoneg on
down ifenslave -d bond0 eth0 eth4
Enjoy!



Tutoriel Installation et configuration Red Hat Enterprise Virtualization (RHEV)

Article publié le 12 Mai 2013

1      Présentation de la solution RED HAT Entreprise Virtualization

 

RHEV offre  une solution complète de gestion de la virtualisation de serveurs. Red Hat Enterprise Virtualization a été conçu à partir de la plate-forme Red Hat Enterprise Linux, dont il étend les fonctionnalités, pour faire tomber les barrières élevées face à l’omniprésence de la virtualisation au sein des centres de données. Red Hat Enterprise Linux a su gagner la confiance de milliers d’entreprises et est installé sur des millions de systèmes dans le cadre de charges de travail stratégique.

 

 

rhev

 

 

 

Installation de la console de management RHEVM

Avant de procéder à l’installation de la console management sur le serveur, il faut vérifier que les prérequis suivant soit bien respecté :

 

–      Le système d’exploitation : Windows Serveur 2003 R2 ou Windows Serveur 2008 (recommandé)

–      Le service IIS doit être installé

–      Si vous êtes sous Windows Serveur 2003 vous devez installer Powershell 2.0 disponible sur Windows Update ou sur le site de Microsoft.

–      Microsoft Frameworks 3.5.1

 

 

Une fois le fichier d’installation lancer cliquez sur suivant et accepté les conditions d’utilisation.

 

 

Arrivé à l’écran ci-dessus vérifiez que toutes les cases sont cochées et cliquez sur Next.

 

 

 

 

Cocher « install a SQL Server 2005 Express Locally » et cliquez sur next.

Vérifier le répertoire d’installation et cliquez sur next.

 

 

 

Décocher la case force SSL et cliquez sur next

 

 

 

Renseignez les informations demandées

 

Cliquez sur next

 

 

 

 

Port Number: 25285

 

 

 

 

 

 

 

 

 

Cliquez sur next

 

 

 

 

Cliquez sur ignore, l’installation du Manager commence.

 


 Administration de RHEVM

 

 

Cette partie montre la marche à suivre afin se connecter à la console de management de RHEVm

 

 

 

Ouvrez votre navigateur est entrez dans la barre d’adresse :

 

http://[adresse ip  ou nom]/RHEVmanager

 

 

 

Si ce n’est pas le cas installez le certificat en cliquant sur le lien correspondant.

 

 

 

 

L’écran ci-dessus correspond à l’interface d’authentification de RHEVm.

 

1    Installation d’un  hyperviseur RHEV.

 

 

Bootez sur l’ISO de l’hyperviseur. Après le chargement l’interface suivante doit apparaitre :

 

 

 

 

Appuyer sur 1 et entrée.

 

 

 

Selectionnez « configure » grave à la touche 1 puis valider avec entrée

Selectionnez le disque ou l’hyperviseur sera installer et validez.

Une fois la tâche terminée validez la en selectionnant la 3ème entrée (commit configuration).

 

Une fois le formattage terminer l’assistant vous réaffichera le menu principal.

Appuyez sur 2 (configure authentification)

 

 

 

 

Selectionnez la 1er entré et entrez le mot de passe root de l’hyperviseur.

Faites la même chose pour la 2ème entrée.

Une fois configurer selectionnez la 3ème entrée pour revenir au menu principal.

 

Configurer le hostname en appuyant sur 3 puis entrée.

Quand l’interface vous le demandera tapez le nom complet de l’hyperviseur

 

Une fois le hostname configuré tapez 4 pour configurer le réseau.

 

Selectionnez l’interface réseau configuré (généralement ETH0)

 

 

 

Tapez n puis entrer

 

 

 

 

Tapez n puis entrer.

 

 

 

Tapez S puis entrer

 

 

Configurer la configuration IP de l’hyperviseur en suivant les instructions à l’écran.

 

Configurer ensuite votre serveur DNS de la même façon en selectionnant DNS sur le menu principal de la configuration réseau de votre hyperviseur.

Faites de même pour le serveur NTP.

 

Selectionnez Save And Return To Menu pour revenir au menu principal.

 

 

Enregistrez ensuite votre machine au RHN en tapant 5.

Selectionnez 1) Register to public RHn

Procédez à l’enregistrement avec votre compte Red Hat

 

Une fois l’enregistrement RHN terminé appuyez sur 6 (Configure the host for red hat entreprise).

 

 

 

 

 

 

 

 

Tapez [ip de votre serveur RHEVm]:80

 

Puis appuyer sur entrer

 

Si la communication s’établit correctement entre les 2 machines l’hyperviseur doit renvoyer le message suivant :

 

 

« The RHEV Manager’s address is set »

« The RHEV Manager’s port is set. »

 

 

Tapez [ip de votre serveur RHEVm]:25285

Puis appuyer sur entrer.

 

Une fois la configuration effectuée vous serez de nouveau au menu principal.

 

Selectionnez 8 (install locally and reboot).

Une fois l’installation effectuée retournons sur notre console de management.

 

 

Si la configuration a bien été effectuée, un nouvel HOST doit être en attente dans votre interface RHEVM.

Pour l’activer, faites un clique droit dessus et cliquez sur approve. Le Host va être rajouté au cluster.

Si aucun host est en attente, allez sur l’hyperviseur concerné et redémarré le service vdsm-reg grâce à la commande service vdsm-reg restart.

 

 

2    Configuration du Cluster

 

Configuration de l’espace de stockage

 

 

 

Une fois vos hyperviseurs ajoutés dans votre cluster, il faut créer un DATASTORE pour hébergé vos VMs.

RHEV est capable de gérer le MULTIPATHING en fibre channel.

Pour cela allez dans l’onglet storage puis cliquez sur le bouton new domain :

 

 

 

 

Domain Function : DATA

Storage type : FCP

La liste des VMFS va apparaitre. (N’oubliez pas de faire la procédure de création et de présentation de VMFS sur l’interface de la baie). Cochez le VMFS converné et cliquez sur le bouton ADD.

Retournez ensuite sur l’onglet DATASTORE et selectionnez sur en bas l’onglet STORAGE puis cliquez sur le bouton attach storage.

 

 

 

 

Selectionnez ensuite le VMFS que vous venez de paramétrer précedemment.

Cette procédure permet d’affecter à un DataCenter un esspace de stockage.

 

 

Renouveler la procédure en créant un espace de stockage avec les paramètres suivants :

 

–       Domain function : ISO

–       Storage Type : NFS

et rattachez le à votre Data Center. Cette espace de stockage permettra de stocker les ISO et les templates.

L’inconvénient est que le protocole de stockage doit etre absolument du NFS.

 

 

 

6   Gestion des ISOs

Comme nous l’avons vu ci-dessus la bibliothèque des ISOs doit posséder son propre DATASTORE dédié  utilisant uniquement le protocole NFS.

Pour uploader les ISOs de façons sécurisé, REDHAT fournit un outil installé avec le Manager nommé ISO UPLOADER

 

ISO UPLOADER detecte automatiquement votre DATACENTER est se paramètre de manière autonome pour être connecter avec votre Serveur NFS.

Pour ajouter une image ISO, cliquez sur ADD et selectionnez les images ISO que vous voulez UPLOADER. Une fois votre liste complété, cliquez sur UPLOAD. ISO UPLOADER se chargera d’incorpérer les ISOs directement dans votre bibliothèque. Nous verrons ci-dessous comment l’exploiter.

 

En ligne de commande vous pouvez également uploader une ISO:

 

rhevm-iso-uploader –iso-domain=ISODomain upload <fichier iso>

 

7   Gestion des VMs

 

 

La gestion des machines virtuelles est indentique par rapport aux autres produits de virtualisations.

 

Créer une nouvelle VM :

 

 

Cliquez sur l’onglet Virtual Machines puis sur New Server :

 

 

 

Vous pouvez ici paramétrer ici la configuration « matériel » de votre VM.

 

 

Dans cette section, vous pouvez paramétrer le système de haute disponibilté en cochant « highly Available »

Les choix « low », « Medium », « High » permet de définir

 

 

 

 

Dans cette section, vous pourez paramétrer le boot séquence et affecter à votre VM une ISO que vous aurez eventuellement uploadé grâce à l’outil ISO UPLOADER.

 

 

Une fois cette tâche effectuée, cliquez sur OK.

Une fois la tâche de création de la vm terminé, il faudra lui créer un disque et une interface réseau  virtuel. Pour cela cliquez sur votre VM fraichement créée et cliquez sur « guide me ».

 

 

Cliquez ensuite sur « configure Network Interfaces ». Une fois les paramètres renseignées comme ci-dessous cliquez sur OK.

 

 

Cliquez sur Configure Virtual Disks

 

 

 

Paramétrer les paramètres ci-dessous soigneusement.

Size : Définit la taille du disque

Disk type : définit si le disque hébergera un système ou de la DATA (très important pour les performances à venir)

Interface : interface virtuel qui gère les I/O des disques

Format : Pre allocated : taille de disque figé

Thin provisionning : taille de disque variable.

 

 

Une fois le disque paramétré, cliquez sur OK pour valider.

Pour ouvrir une console sur la VM cliquez sur l’icône suivant :

 

Pour susprendre une vm                               Pour arréter à chaud une VM

 

Migration d’une nouvelle VM :

 

 

La migration d’une machine (équivalent Vmotion) permet de transférer d’un hyperviseur à l’autre (sans interruption de service) une VM. Pou cela cliquez droit sur la VM concerné puis sur « migrate » :

 

 

 

 

Si « select Host Automatically » est cochez, RHEVm se chargera de migrer la VM vers l’hyperviseur le plus disponible (très pratique pour les grosses architectures), vous pouvez sinon selectionnez manuellement l’hyperviseur cible en cochant « Select Destination host ».

Créer un Template:

 

Pour créer un template la VM doit être arréter

Cliqez droit sur la VM puis « make a template ».

Une fenètre apparait ou vous devrez renseigner le nom du template et sa description.

Valider en cliquant sur OK

 

 

 

 

 

 

 

 

 




Logguer toutes les commandes exécutées dans une base Mysql

Article publié le 12 Mai 2013

 

Une problématique qui se pose souvent, lorsqu’un serveur Linux tombe (souvent à cause d’un humain) comment savoir les dernières commandes qui ont été tapées et surtout par qui??

Si vous mettez ça en place dans votre entreprise on risque de vous prendre pour Big Brother mais en même temps je pense que ce petit système peu vous épargner bien des ennuis.

La procédure ci dessous ne fonctionne que sur la distribution Debian et sur les versions antérieur à Red HAT 5.3. Les versions supérieurs à RED HAT 5.3 pose problème lorsque vos partitions sont en LVM, je n’ai jamais pu trouver une solution à ce problème, si l’un de vous trouve je suis preneur :). Je vous suggère de déployer cette solution d’abord sur un serveur de test avant la mise en prod. Merci à la personne qui à conçu cette solution!

 

 

1) Création du serveur Bashlog

 

Installons une petite base de donnée MySQL:

#apt-get install mysql-server-5.0

Ensuite connectez vous à votre base:

#mysql -u root -p <votre mot de passe> -h <votre serveur>

On crée la database:

#create database shell_bash;

#use shell_bash

 

 

On crée les tables:

CREATE TABLE `logs`

(`rowid` mediumint(8) NOT NULL auto_increment,

`host` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default  »,

`user` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default  »,

`as_user` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default  »,

`ip` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default  »,

`ut_line` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default  »,

`command` text character set utf8 collate utf8_unicode_ci NOT NULL,

`ts` timestamp NOT NULL default CURRENT_TIMESTAMP,

PRIMARY KEY (`rowid`))

ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

 

Voila votre serveur bashlog est prêt, rien ne vous empêche de vous coder une petite interface en PHP afin que cela soit plus sexy.

Nous allons maintenant passer à la partie cliente.

 

2) Client

Nous allons recompiler le bash avec des librairies mysql pour que celui ci soit en mesure de se connecter  une base MySQL. La compilation fonctionne jusqu’à la version 4.2 (c’est à dire la dernière version du bash à l’époque de l’écriture de ce tuto).

Tous d’abord télécharger ce fichier zip comportant 2 patchs qui seront appliqués sur votre bash et une librairie mysql à insérer dans le répertoire /usr/lib:

 

outils

 

 

Installez ensuite les outils de compilations et un package de librairie mysql:

apt-get  install libmysqlclient-dev autoconf patch make

 

Maintenant on compile!

wget http://ftp.gnu.org/gnu/bash/bash-3.1.tar.gz

patch -p0 < bash-paranoia.patch (fichier présent dans l’archive zip joint à cette article)

patch -p1 < bash-mysql.patch  (fichier présent dans l’archive zip joint à cette article)

autoconf

./configure –enable-paranoia –prefix=/usr

make

 

Voila vous avez votre bash recompilez pret à envoyer toutes les commandes qui seront tapées sur une base MySQL!!

N’oubliez pas de créer un fichier de configuration ou vous aller rentrer les paramètres de connexions à la Base de donnée!

#touch /etc/bash.conf

Ensuite insérez les lignes suivantes:

 

SERVER=<votre serveur de base de donnée>

USER=shell_bash

PASS=<le mot de passe du user>

DB=shell_bash

 

Enfin il ne reste plus qu’à écraser l’ancien bash par votre bash modifié! (sans oubliez de faire un petit backup)

 

# cp /bin/bash /bin/bash.old

#cp /<votre repertoire de compilation>/bash /bin/bash

 

Ensuite déloguer vous et reloguez vous.

Enjoy!