K

- Base de connaissances

Accueil > Projets Open Source > UpdatEngine > UpdatEngine - Installation du serveur (DEBIAN / UBUNTU - Apache2 / (...)

UpdatEngine - Installation du serveur (DEBIAN / UBUNTU - Apache2 / MySQL)

vendredi 29 novembre 2013, par webmestre

Qu’est-ce qu’UpdatEngine ?

Installation des paquets et de l’environnement

L’installation de l’application proposée dans cet aricle est basée sur une architecture WEB Apache2 et mod-wsgi avec pour base de données relationnelles MySQL. Celle-ci sera réalisée dans un environnement virtuel.

En premier lieu, il est nécessaire d’installer les différents paquets nécessaires au bon focntionnement de l’application :

apt-get install libapache2-mod-wsgi python-virtualenv python-pip libxml2-dev libxslt-dev python-dev libmysqlclient-dev git-core mysql-server

Ensuite, on crée l’environnement virtuel qui héberge le serveur UpdatEngine. Nous le créons directement sous /var/www dans le répertoire UE-environment :

virtualenv --distribute --no-site-packages /var/www/UE-environment

Installation des sources et des dépendances

Une fois fait, on se place dans le répertoire UE-environment pour y charger les sources :

cd /var/www/UE-environment/
git clone https://github.com/updatengine/updatengine-server.git

L’ensemble des fichiers du serveur UpdatEngine sont alors disponibles sous /var/www/UE-environment/updatengine-server.

Procédons maintenant à l’installation des dépendances nécessaires à UpdatEngine dans notre environnement virtuel.

Celles-ci sont détaillées dans le fichier pip-packages.txt. Et, pour les installer, on utilisra l’utilitaire /var/www/UE-environment/bin/pip qui permet d’installer uniquement les dépendances nécessaires dans notre environnement virtuel et dans les versions spécifiées :

/var/www/UE-environment/bin/pip install -r /var/www/UE-environment/updatengine-server/requirements/pip-packages.txt
PNG - 59.5 ko

Une erreur concernant la version de distribute peut se produire sous certaine distribution, lancez alors la commande suivante pour palier au problème :

/var/www/UE-environment/bin/pip install distribute==0.6.28

Il suffit alors de relancer la dernière commande en erreur pour que celle-ci s’exécute correctement :

/var/www/UE-environment/bin/pip install -r /var/www/UE-environment/updatengine-server/requirements/pip-packages.txt

Initialisation de l’application WEB et installation de la base de données MySQL

Nous allons créer une base de données dédiée à l’application :

mysqladmin -u root -p create updatengine

Puis, nous créons un utilisateur dédié à cette base de données :

mysql -u root -p -e "GRANT ALL PRIVILEGES ON updatengine.* TO 'updatengineuser'@'localhost' IDENTIFIED by 'unmotdepasse' WITH GRANT OPTION;"
PNG - 54.1 ko

Ensuite, nous modifions le fichier de configuration /var/www/UE-environment/updatengine-server/updatengine/settings.py pour y indiquer l’adresse de notre serveur et les paramètres de connexion à la base de données.
Pour se faire, on utilisera le model de fichier de configuration settings.py.model_mysql mis à disposition dans les sources en le copiant puis en le modifiant :

cp /var/www/UE-environment/updatengine-server/updatengine/settings.py.model_mysql /var/www/UE-environment/updatengine-server/updatengine/settings.py

On ouvre donc le fichier /var/www/UE-environment/updatengine-server/updatengine/settings.py et on renseigne les différentes variables :

  • PROJECT_URL avec l’adresse et le port de notre serveur
  • DATABASES avec les paramètres de connexion à la base de données
PROJECT_URL = 'http://apache3:1979'
...
...
...
DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
    'NAME' : 'updatengine',
    'USER': 'updatengineuser',            # Not used with sqlite3.
    'PASSWORD': '****',                  # Not used with sqlite3.
  # 'HOST': '',                           # Set to empty string for localhost. Not used with sqlite3.
  # 'PORT': '',                           # Set to empty string for default. Not used with sqlite3.
  # 'OPTIONS': {
  #                 'init_command': 'SET storage_engine=InnoDB',
  #            }
    }
}

Remarque : le port par défaut 1979 est définit dans le fichier de configuration apache-updatengine.

Avant de redémarrer le service apache2, nous devons copier le fichier de configuration standard du virtualhost d’UpdatEngine fournit dans les sources pour ensuite activer ce nouveau site :

cp updatengine-server/requirements/apache-updatengine /etc/apache2/sites-available/
a2ensite apache-updatengine
service apache2 restart
PNG - 24.7 ko

Problème connu sur mod_wgsi : Sous certaine distribution, l’installation du paquet libapache2-mod-wsgi n’est pas complète. Il manque le fichier de configuration permettant le chargement du module dans Apache2. Pour palier à ce problème, on créera le fichier mod_wsgi.load dans le répertoire /etc/apache2/mods-available/ :

cd /etc/apache2/mods-available/
nano mod_wsgi.load

Tel qu’il contienne la ligne suivante (Vérifier l’emplacement la librairie mod_wsgi.so) :

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

Enfin, on activera le module puis on relancera le serveur Apache2 :

a2enmod mod_wsgi
service apache2 restart
PNG - 72 ko

Une fois fait, on intialise Django et la base de données via la commande :

/var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py syncdb

L’installeur vous demande alors si vous souhaitez créer un nouvel utilisateur pour l’application, il faut répondre "Yes" (Oui ;) ) à la question sinon vous risquez de ne pas pouvoir vous connecter à l’interface WEB du serveur UpdatEngine.

La base de données est maintenant initialisée. Pour terminer sa configuration, nous mettrons à jour le schéma de la base de données en passant toutes les mises à jour effectuées depuis le début de son développement avec la commande migrate :

/var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py migrate

Remarque : le schéma de base de données est géré avec le module python South pour faciliter les évolutions et les migrations des bases de données entre versions.

Et, enfin, on chargera les données initiales de l’application (configuration par défaut) :

/var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py loaddata /var/www/UE-environment/updatengine-server/initial_data/configuration_initial_data.yaml

Il ne reste plus qu’à rendre l’utilisateur www-data propriétaire des deux répertoires static et media :

chown -R www-data:www-data /var/www/UE-environment/updatengine-server/updatengine/static/
chown -R www-data:www-data /var/www/UE-environment/updatengine-server/updatengine/media/

L’installation de l’application et l’initialisation de la base de données sont maintenant terminée.

Répondre à cet article

Plan du site | Suivre la vie du site RSS 2.0 | powered by NYSTEK-EDITIONS and NYSTEK-CONSULTING