Django en serveur - Sommaire : Installer la version trunk de Django sur son serveur.

(Note: pour cet article, nous supposerons que vous avez déjà python et subversion d'installé (et accessoirement MySQL).)

Dans ma série de "faire mumuse avec python sur son serveur web", voici le premier épisode :

Installer Django (le framework Python) en version en développement sur sa machine.

Pour ce faire, c'est très simple.
D'ailleurs, le site officiel de django l'explique de manière très détaillée.

Tout d'abord, rendez-vous dans le répertoire ou vous déposerez la version en développement de Django.

Pour ma part, je l'ai mis dant /opt.

cd /opt

Ensuite, récupérez Django avec subversion :

svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk

Une fois la récupération terminée, vous devrez lier django dans les packages de python. Afin de connaître le chemin exact vers le site-packages de python, executez cette commande :

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Vous n'aurez plus ensuite qu'à faire un liens symbolique dans le site-packages depuis Django :

ln -s /opt/django-trunk/django [SITE-PACKAGES-DIR]/django

(pensez bien à remplacer la variable [SITE-PACKAGES-DIR] par le résultat de la commande précédente !)

Pour ma part, afin de bien faire fonctionner Django, j'ai du installer quelques modules supplémentaires :

Sous Debian, Vous pourrez récupérer ces deux librairies simplement en faisant un :

apt-get install python-mysqldb et python-imaging

Voilà, Django est prêt à fonctionner !

Filed under  //  Development   Projects   Python   django   server   serveur   subversion   trunk  
Posted by Cyril Nicodème 

Tutoriels sur l'installation d'un serveur Web : Mise en place

Bien, nous allons tout d'abord préparer l'environnement, histoire d'avoir quelque chose d'accueillant ! :)

Première chose, nous allons modifier le fichier /etc/apt/sources.list, afin qu'il prenne les fichiers de la version stable, et non le nom de la version que vous avez téléchargez (lenny). Ceci afin de toujours disposer des dernières versions stables.

Pour ce faire, éditez le fichier /etc/apt/sources.list et remplacez toutes les occurences de lenny en stable ! :) C'est tout !

Ensuite, mettez à jour la liste des paquets :

apt-get update

Puis installez les éventuelles mises à jours :

apt-get upgrade && apt-get dist-upgrade

Ensuite, nous allons créer un petit fichier qui va s'avérer utile, .email. Ce fichier ne contiendra qu'un email, ne sera visible que par vous, et permettra à des services tels que cron de vous envoyer un email en cas de problème. (Bon, ca ne fonctionnera pas tout de suite puisque nous avons encore aucun serveur mail, mais pour la suite, ce sera vraiment utile !).

Voici la commande :

echo "votre_email@example.org" > .email

Ensuite, nous allons nommer correctement le serveur. Pour cela, plusieurs éléments à modifier :
/etc/hosts, rajoutez le nom de domaine sur l'ip publique :

127.0.0.1       localhost webserv
192.168.0.8     example.org

/etc/hostname, donnez lui le nom voulu :

WebServ

Ensuite, exécutez le script /etc/init.d/hostname.sh, afin de mettre à jour votre nom de serveur. Le changement sera effectué lors de la prochaine connection.

/etc/init.d/hostname.sh

Pour ceux qui auraient des problèmes d'accents dans leur console, il faut modifier le fichier .bashrc, et y ajouter cette ligne :

echo "export LANG=fr_FR.UTF-8" >> ~/.bashrc

La configuration basique est terminée !

Maintenant, prêt pour attaquer le gros du travail ? :)

Filed under  //  .email   Howtos   Scripts   Unix/Linux   apt-get   hostname   mise en place   server   serveur   sources.list   web  
Posted by Cyril Nicodème 

Script d'auto montage des partages Serveurs

Voici un petit script que j'ai mis dans le répertoire /etc/NetworkManager/dispatcher.d/, et qui porte le joli nom de 06-localmount.

Que fait ce script ?

Il vérifie mon ip afin de déterminer si je suis chez moi (auquel cas il montera les partitions de mon serveur privé) ou ailleur. On peux le personnaliser encore plus pour l'adapter en fonction de ses besoins (montage des partitions du serveur de l'école, du boulot, etc).

Voici le script en question :

#!/bin/bash
#===============================================================#
disconnect() {
   echo "Unmounting Samba mounts"

   types="nfs cifs smbfs"
   for type in ${types}
   do
      mnts=`mount | grep -i mnt | grep -i ${type} | cut -d " " -f3`
      for mnt in ${mnts}
      do
         echo "Unmounting ${mnt}"
         umount ${mnt}
         rmdir  ${mnt}
      done
   done
}

#===============================================================#
getIp() {
   ip=$(/sbin/ifconfig | grep -a1 ${1} | grep inet | cut -d ':' -f2 | cut -d ' ' -f1)
   echo "${ip}"
}
#===============================================================#
isInterfaceActive() {
   ip=$(getIp "${1}")
   if [ "${ip}" != "" ] ; then
      echo "1"
   else
      echo "0"
   fi
}

#===============================================================#
home() {
   /sbin/service iptables stop
   /sbin/service sshd restart

   mounts="192.168.1.1/donnee 192.168.1.1/prive 192.168.1.1/public"
   for mount in ${mounts}
   do
       host=$(echo $mount | cut -d'/' -f1)
       share=$(echo $mount | cut -d'/' -f2)
       if [ ! -d "/mnt/${host}/${share}" ] ; then
          mkdir -p "/mnt/${host}/${share}"
       fi
       mount -t cifs -o credentials=/etc/NetworkManager/credentials,uid=500,gid=500
//${host}/${share} /mnt/${host}/${share}
   done
}

#===============================================================#
nothome() {
   /sbin/service iptables restart
   /sbin/service sshd  stop
}

#===============================================================#
connect() {
   ip=$(getIp "${1}")

   if [ "${ip}" = "192.168.1.2" ] ; then
      home
   else
      nothome
   fi
}

eth="$1"
if [ "$2" = "up" ] ; then
   if [ $(isInterfaceActive "${eth}") -ne 0 ] ; then
       echo "$eth is active. Using it"
       connect "${eth}"
   fi
fi
if [ "$2" = "down" ] ; then
   disconnect
fi

N'oubliez pas le fichier contenant les informations sensibles (Identifiant/Mot de passe), à mettre dans un fichier dit credential. Pour ma part je l'ai mis à cette adresse : /etc/NetworkManager/credentials, et voici sa structure :

username=mon_login
password=mon_pass

Pas d'espaces entre le = !!!

Filed under  //  Development   Scripts   Unix/Linux   auto   dispatcher   localhmount   manager   montage   mount   network   partition   serveur  
Posted by Cyril Nicodème 

Migration Successful !

Mais quelle agréable surprise de voir que la migration s'est effectuée sans AUCUN problèmes !

A tel point que je pensais que les DNS n'avaient pas été mis à jours et que je pointais toujours sur l'ancien serveur :p

Bon et bien voilà ! La nouvelle est tombée, ReFlectiv.Net et toute sa structure tourne sur un serveur RPS hébergé chez OVH et maintenu par mes soins !

C'est la fête !

Filed under  //  Projects   migration   reflectiv   rps   serveur   structure  
Posted by Cyril Nicodème