Archive

Archive de la Catégorie ‘Linux’

Renommer une interface réseau eth1 en eth0

Vous avez remplacer une carte réseau sur votre ordinateur, mais celle-ci se trouve nommer en eth1 alors que vous avez configuré tous vos services en eth0.

Vous voulez la renommer en eth0, rien de plus simple. Vous devrez simplement modifier le fichier /etc/udev/rules.d/70-persistant-net.rules.

Fichier d’origine :

# vi /etc/udev/rules.d/70-persistant-net.rules
...
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:2e:d0:59:b8:37", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:e9:67:dc:97", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

On va inverser les 2 noms.
Fichier finale :


# vi /etc/udev/rules.d/70-persistant-net.rules
...
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:2e:d0:59:b8:37", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:e9:67:dc:97", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Eviter de mettre le même nom pour les 2 cartes, on ne sait jamais si un jour vous voulez remettre l’ancienne …

Mise en place de LVM sur Debian 6

Si vous vous demandez pourquoi utiliser LVM voir ici.

Cette article traite de l’installation de LVM sur une Debian 6.

La première étape consiste en l’installation du paquet lvm2:

# apt-get install lvm2

Ensuite, nous allons spécifier les partitions (pv : Physical Volume) que nous désirons utiliser pour LVM, même si je vous conseille de ne faire qu’une partition par disque.
ATTENTION : ceci effacera l’ensemble des données contenu dans la partition.

# pvcreate /dev/md0
# pvcreate /dev/md1

Une fois, nos partitions converties au format LVM, nous allons passer à la conception de notre espace de stockage globale (vg : volume group).
Celui que nous allons utiliserons pour mettre l’ensemble de nos volumes.

# vgcreate vg0 /dev/md0 /dev/md1

Ici, j’utilise 2 partitions qui sont en RAID1 pour plus de sécurité (si un disque de votre volume tombe, l’ensemble de vos données sont perdues), mais vous pouvez aussi utiliser directement les partitions disques.

Pour voir vos différents groupes de volume, faites :

# vgdisplay
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 931,51 GiB
PE Size 4,00 MiB
Total PE 238466
Alloc PE / Size 0 / 0
Free PE / Size 238466 / 931,51 GiB
VG UUID Xpq7wL-cnF3-zK89-JUkO-RYR2-brF0-WQt74v

Une fois notre espace de stockage créé, nous allons créer nos différents volumes de stockage (lv : Logical Volume):

# lvcreate -n Photos -L 100g vg0
# lvcreate -n Documents -L 100g vg0

Pour voir l’ensemble de vos volumes :

# lvdisplay
--- Logical volume ---
LV Name /dev/vg0/Photos
VG Name vg0
LV UUID eFyO1q-AbIj-u2GM-VOov-3tBE-qcbk-cZV6jp
LV Write Access read/write
LV Status available
# open 1
LV Size 100,00 GiB
Current LE 25600
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

Nos volumes sont créés, il ne nous reste plus qu’à les formater en ext4 ou autre:

# mkfs -t ext4 /dev/vg0/Photos
# mkfs -t ext4 /dev/vg0/Documents

Dernière étape, monter nos volumes pour les remplir :

# mkdir -p /data/Photos
# mount /dev/vg0/Photos /data/Photos

Pour un montage automatique au démarrage de la machine, voila un exemple de configuration via fstab :

# vi /etc/fstab
...
/dev/vg0/Photos /data/Photos ext4 rw,nouser,auto 0 2
/dev/vg0/Documents /data/Documents ext4 rw,nouser,auto 0 2

Pourquoi utiliser LVM (Logical Volume Manager) ?

La principale raison d’utiliser le LVM par rapport au système de partition est le fait de pouvoir dimensionner son espace de stockage à sa guise sans avoir à se préoccuper de la taille de chaque disque.

Exemple :

Vous avez une machine avec 2 disques de 250 Go sans RAID, sur cette machine vous désirez mettre 150 Go de Photos, 150 Go de Documents, 150 Go de Films (de vacances) et utilisez 20 Go pour le système.

  • Avec le système de partitions standard :
    • Sur le disque 1, vous allez mettre le système (20 Go) et votre espace Photos (150 Go). Il vous reste donc 80 Go sur ce disque.
    • Sur le disque 2, vous allez mettre votre espace Documents (150 Go) et une partie de votre espace Films (100 Go)

Vous ne pouvez donc pas mettre votre espace Films en intégralité, vous devrez en mettre une partie sur chaque disque (100 + 50), et l’utilisation de vos disques n’est pas optimale.

  • Avec le système LVM :
    • Vous allez créer un espace de stockage (vg : Volume Group) de 500 Go qui couvre l’ensemble des disques (pv : Physical Volume).
    • Sur cette espace vous allez créer 3 volumes (lv : Logical Volume) de 150 Go et 1 volume de 20 Go pour votre système.

Vous avez donc vos 4 volumes avec le dimensionnement que vous désiriez.

 
Le deuxième gros avantage est le fait de pouvoir étendre la taille de ses volumes comme on le souhaite.

Exemple :

Au bout d’un an d’utilisation, vous avez besoin d’augmenter la taille de votre espace Films de 15 Go et la taille de votre espace Documents de 10 Go.

  • Avec le système de partitions standard, vous devez créer 2 nouvelles partitions et donc fragmenter vos espaces de stockage (Films1, Films2).
  • Avec LVM, vous pouvez augmenter la taille de chacun de vos volumes en prenant soin de ne pas dépasser la taille totalement de votre espace disque (500 Go).

 
Le troisième avantage, pour moi, est de pouvoir ajouter des disques à son groupe de volume afin ensuite utiliser le deuxième avantage ;) .

Wake on LAN, comment réduire sa consommation …

J’ai fait l’acquisition récemment d’une nouvelle machine afin d’avoir enfin un serveur maison pour des services internes (Bref je vais pas épiloguer).

Ce serveur a besoin d’être allumé uniquement lorsque j’en ai besoin ou une autre personne de la maison, pour ce fait nous allons utiliser le Wake On LAN” ou encore “Wake on by PME” (je ne vois toujours pas pourquoi PME …).

La première étape consiste à activer ce service dans le BIOS de l’ordinateur à contrôler, exemples pour la carte ASUS E35M1-I DELUXE:

  1. Passer en “Mode avancé”,
  2. Cliquer sur l’onglet “Avancé”,
  3. Cliquer sur le menu “Gestion de l’alimentation avancée”
  4. Activer “Démarrage système par périphérique PME”

La seconde étape est de trouver des clients pour les différents équipements qui nous serviront à allumer cette machine.

  • Linux — wakeonlan (debian)
  • Android — Wake On Lan

Pour la configuration du client, il vous faut l’adresse MAC de l’ordinateur, le port de destination qui devrait être normalement le port 9 et ne renseigner pas le champ IP, ce champ, je pense, doit servir pour un accès depuis un réseau autre que votre réseau local.

Voila, maintenant vous avez de quoi allumer vos serveurs à distance.

Xen role : serveur postgresql

Voici mon role Xen pour l’installation d’une machine virtuelle servant de serveur postgreSQL. Pour plus d’explication sur l’installation de postgres : voir ici.

Les étapes :

  1. Execution du role default
  2. Installation des paquets postgresql
  3. Déménagement du cluster postgresql
  4. Configuration de postgresql

Le rôle :

#!/bin/sh
prefix=$1

# Source our common functions - this will let us install a Debian package.
if [ -e /usr/lib/xen-tools/common.sh ]; then
 . /usr/lib/xen-tools/common.sh
else
 echo "Installation problem"
fi

# Execute default
. /etc/xen-tools/role.d/default

# Installation des paquets
installDebianPackage ${prefix} postgresql
installDebianPackage ${prefix} postgresql-client

# Démangement du cluster maitre
chroot ${prefix} pg_dropcluster 8.4 main
chroot ${prefix} pg_createcluster -d /home/postgres/data 8.4 main

# Configuration 
cp /etc/xen-tools/skel/pg_hba.conf ${prefix}/etc/postgresql/8.4/main/pg_hba.conf
chroot ${prefix} cp -p /etc/postgresql/8.4/main/postgresql.conf            \
                       /etc/postgresql/8.4/main/postgresql.conf.1
sed s/"#listen_addresses = 'localhost'"/"listen_addresses = '*'"/          \
                 ${prefix}/etc/postgresql/8.4/main/postgresql.conf.1       \
                 > ${prefix}/etc/postgresql/8.4/main/postgresql.conf

Ce qu’il reste à faire :

  1. Création des utilisateurs postgresql : createuser
  2. Création des base de données.

PS: désolé pour les multi-lines j’ai pas trouvé de solutions.

Catégories:Mes roles Tags:, ,

Les roles Xen – script de post-installation de machine virtuelle

Cette article traitera de l’utilisation des rôles dans la création de machine virtuelle Xen, il fait suite à mes 2 précedents articles sur Xen traitant de l’installation puis de la création d’un domU.

Les roles Xen sont en quelque sorte des scripts de post-installation que xen-create-image utilisera pour finaliser l’installation de vos machines virtuelles.
Pour utiliser les rôles, rien de plus simple :

# xen-create-image --hostname=machine --ip 192.168.1.100 --role=default

L’ensemble des rôles sont stockés dans /etc/xen-tools/role.d/ et vous pouvez en ajouter autant que vous le souhaitez.
La création des rôles est assez simple, pour vous le prouver vous trouverez ci-dessous mon rôle default :

#!/bin/sh
prefix=$1

# Import de fonction d’installation de paquets debian
if [ -e /usr/lib/xen-tools/common.sh ]; then
. /usr/lib/xen-tools/common.sh
else
echo “Installation problem”
fi

# Installation des paquets qui me sont nécessaires par defaut
chroot ${prefix} /usr/bin/apt-get update
chroot ${prefix} /usr/bin/apt-get -y -f upgrade
installDebianPackage ${prefix} openssh-server
installDebianPackage ${prefix} bash-completion
installDebianPackage ${prefix} vim
installDebianPackage ${prefix} less
installDebianPackage ${prefix} ntp
installDebianPackage ${prefix} sudo

# Création de monutilisateur
chroot ${prefix} useradd -d /home/monutilisateur -p “mon mot de passe crypter” -m -s /bin/bash -U monutilisateur

# Configuration de ssh
cp /etc/xen-tools/skel/sshd_config ${prefix}/etc/ssh/
mkdir ${prefix}/home/monutilisateur/.ssh
cp /etc/xen-tools/skel/ssh/domU_keys ${prefix}/home/monutilisateur/.ssh/authorized_keys
chroot ${prefix} chmod -R 600 /home/monutilisateur/.ssh
chroot ${prefix} chmod 700 /home/monutilisateur/.ssh

# Personnalisation de mon utilisateur
cp /etc/xen-tools/skel/.bashrc_user ${prefix}/home/monutilisateur/.bashrc
cp /etc/xen-tools/skel/.vimrc ${prefix}/home/monutilisateur/
chroot ${prefix} chown -R monutilisateur:monutilisateur /home/monutilisateur

# Personnalisation de charlie root
cp /etc/xen-tools/skel/.bashrc_root ${prefix}/root/
cp /etc/xen-tools/skel/.vimrc ${prefix}/root/
chown -R root:root ${prefix}/root

# Install and configuration de sudo en utilisant le role sudoers
. /etc/xen-tools/role.d/sudoers
chroot ${prefix} usermod -a -G sudo monutilisateur

Une fois ce rôle exécuté, je me retrouve avec une machine offrant un serveur SSH avec authentification par clef et mon environnement tout prêt pour de nouvelles aventures.

Postgresql: Installation et configuration

Installation à partir du paquet de votre distribution

# pacman -S postgresql       // Pour archlinux
# apt-get install postgresql // Pour debian

Par défaut, l’ensemble des bases de données seront enregistrées dans /var/lib/postgres (qui est partition assez limité chez moi), nous allons donc la changer pour les mettre dans /home/postgres :

  • Sous archlinux, créer /home/postgres, affecter le path à l’utilisateur postgres puis modifier la variable PGROOT du fichier /etc/conf.d/postgres tels que :

    # mkdir /home/postgres
    # chown postgres:postgres /home/postgres
    # vi /etc/conf.d/postgres
    PGROOT="/home/postgresql"

  • Sous debian, il faut supprimer le cluster (espace de données) créer par l’installation du paquet puis en créer un à l’emplacement désiré, /home/postgres.

    # pg_dropcluster 8.4 main
    # pg_createcluster -d /home/postgres 8.4 main

Configuration de l’interface d’écoute listen_addresses.

  • Sous Archlinux : /var/lib/postgres/data/postgresql.conf
  • Sous Debian : /etc/postgresql/8.4/main/postgresql.conf

listen_addresses = '192.168.1.*'

Configuration des droits et modes de connexions.

  • Sous Archlinux : /var/lib/postgres/data/pg_hba.conf
  • Sous Debian : /etc/postgresql/8.4/main/pg_hba.conf

local   all         postgres                          ident
local   all         all                               md5
host    all         all         127.0.0.1/32          md5
host    all         all         192.169.1.0/24        md5

Lors de l’installation, un user postgres a été créé lors de l’installation  du paquet. Il ne nous reste qu’à nous connecter sur cet utilisateur pour créer notre nouvel utilisateur.

# su - postgres
$ createuser -s monadmin -P

L’option -s permet de spécifier que c’est un superuser. Lorsque vous créez des utilisateurs non administrateur ne mettez pas cette option.

Création d’un domU Xen

Cette article fait suite à l’article installation de Xen.

La création d’un domU s’appuie sur le paquet xen-tools qui fournit un outil que l’on va utiliser xen-create-image.

On va tout d’abord mettre les valeurs désirées par défaut pour nos prochaines machines virtuelles dans le fichier /etc/xen-tools/xen-tools.confs

dir = /home/xen # Emplacement des fichiers sur l’hôte
install-method = debootstrap # Methode d’installation (Debian)
size = 4Gb # Taille de disque
memory = 128Mb # RAM
swap = 128Mb # SWAP
fs = ext3 # Filesystem EXT3
dist = `xt-guess-suite-and-mirror –suite` # Selectionne la version Debian de l’hôte
image = sparse # Attribut l’espace disque en fonction du besoin.
gateway = 192.168.1.1
netmask = 255.255.255.0
broadcast = 192.168.1.255
passwd = 1 # Demande le mot de passe a attribuer au root
kernel = /boot/vmlinuz-`uname -r`
initrd = /boot/initrd.img-`uname -r`
mirror = `xt-guess-suite-and-mirror –mirror`
ext3_options = noatime,nodiratime,errors=remount-ro
serial_device = hvc0 # accès à la console
disk_device = xvda #

Toutes les valeurs mises dans le fichier précédent peuvent être modifiées dans la ligne de commande de création de la machine.

Nous allons maintenant passé à la création de notre première machine virtuelle

# xen-create-image –hostname=machine –ip 192.168.1.100

Pour démarrer la machine :

# xm create machine.cfg

Pour accédez à la console de la machine :

# xm console machine

Pour sortir de la console, CTRL + ] ou CTRL + ALT GR + ).

Pour arreter la machine correctement :

# xm shutdown machine

Pour arreter la machine brutalement :

# xm destroy machine

Une machine arrêtée ne consomme aucune ressource sur le système hôte, hormis de l’espace disque. Si vous avez besoin de cette place vous pouvez supprimer complètement une machine avec la commande suivante :

# xen-delete-image machine

Catégories:Xen Tags:, , , , ,

Installation de Xen

Xen est outils de virtualisation, il permet sur le même serveur hôte (dom0) de créer x machines virtuelles domU (x dépendant de votre serveur hôte).

Nous allons tout d’abord commencer par l’installation des paquets nécessaires, les dépendances requises seront installées automatiquement.

xen-hypervisor-4.0-i386 Outils gérant les ressources des machines virtuelles
xen-linux-system-2.6.32-5-xen-686 Noyau du dom0
xen-tools Outils d’aide à la création des machines virtuelles

# apt-get install xen-hypervisor-4.0-i386 xen-linux-system-2.6.32-5-xen-686 xen-tools

Une fois l’installation des paquets effectuée, nous allons dire à Xen d’utiliser notre machine hôte (aussi appelé dom0) en mode bridge. Décommentez dans /etc/xen/xend-config.sxp la ligne suivante :

(network-script network-bridge)

Une petite modification est à effectuer si vous avez grub2  / grub-pc d’installé. Nous allons modifier l’ordre de recherche des noyaux.

# mv /etc/grub.d/10_linux /etc/grub.d/20_linux
# mv /etc/grub.d/20_linux_xen /etc/grub.d/10_linux_xen
# update-grub
# reboot

Voila notre serveur est prêt à recevoir des machines virtuelles, voir Création d’un domU Xen.

Catégories:Xen Tags:, , , ,

Mes bashrc

Le bashrc est un script lancé automatiquement au début d’une nouvelle session bash.
Vous devez les enregistrer dans votre /$HOME/.bashrc

Voici mon bashrc utilisateur :

# If not running interactively, don’t do anything
[[ $- != *i* ]] && return

eval `dircolors -b`
alias ls=’ls -h –color=auto’
alias ll=’ls -l’

export GREP_COLOR=”1;33″
alias grep=’grep –color=auto’
set show-all-if-ambiguous on

PS1=’\[\e[m\][\[\e[1;34m\]\u@\h\[\e[m\] \[\e[0;34m\]\w\[\e[m\]\[\e[m\]]\[\e[1;32m\]\$\[\e[m\] ‘

Pour le root vous prenez le même et on remplace la ligne PS1:

PS1=’\[\e[m\][\[\e[1;34m\]\u@\h\[\e[m\] \[\e[0;34m\]\w\[\e[m\]\[\e[m\]]\[\e[1;34m\]\$\[\e[m\] ‘

Ces fichiers vont certainement évoluer avec le temps, je tacherai donc de les mettre à jour régulièrement.
Si vous aussi vous voulez partager vos bashrc, les commentaires sont ouverts.

Catégories:Linux Tags:, , ,
Suivre

Get every new post delivered to your Inbox.