Archive

Archive pour novembre 2011

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.