INSTALLATION UPDATENGINE SERVEUR (CENTOS - APACHE2 / MYSQL) - CHRISTOPHE GENESTE 2014/02/26 10:05

 
DIAPOSITIVES SUIVANTES
Installation UpdatEngine serveur
  (CentOs – apache2 / MySQL)
            Christophe Geneste

            2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

Table des matières
Introduction ................................................................................................................................................................................    3
Installation de l’environnement et des dépendances nécessaires .................................................................................................                                 3
Environnement virtuel ................................................................................................................................................................           3
  Création ...................................................................................................................................................................................   3
  Dépendances de l'environnement virtuel .................................................................................................................................                       4
Installation de la base de données MySQL ...............................................................................................................................                         4
Configuration de l'environnement ..............................................................................................................................................                  4
Paramétrage du service Apache .................................................................................................................................................                  5
  Génération du certificat SSL pour Apache ..............................................................................................................................                        6
    Création du Certificat Serveur pour l'application ..................................................................................................................                         6
  Adaptation de la configuration de Apache (httpd.conf) ..........................................................................................................                               6
Initialisation de la base de données ...........................................................................................................................................                 6
Récapitulatif des commande pour créer une instance Update Engine (A VALIDER) ................................................................                                                    7
Configuration des clients ............................................................................................................................................................           8

                                 Page 2 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

    • Introduction
    • Installation de l’environnement et des dépendances nécessaires
    • Environnement virtuel
           • Création
           • Dépendances de l'environnement virtuel
    • Installation de la base de données MySQL
    • Configuration de l'environnement
    • Paramétrage du service Apache
           • Génération du certificat SSL pour Apache
                   • Création du Certificat Serveur pour l'application
           • Adaptation de la configuration de Apache (httpd.conf)
    • Initialisation de la base de données
    • Récapitulatif des commande pour créer une instance Update Engine (A VALIDER)
    • Configuration des clients

Introduction
Ce document est basé sur cet article, mais adapté à une installation avec CentOs et une base de données
MySQL, notre configuration.

 L’installation est basée sur une architecture web classique avec le serveur web apache2, mod-wsgi et
mod_ssl.

   L’installation de l’application sera réalisée dans un environnement virtuel, vous permettant d’installer des versions
précises des dépendances sans impacter votre système actuel. La récupération des fichiers du projet sera faite en utilisant
l’utilitaire de gestion de version git.

Installation de l’environnement et des dépendances
nécessaires
Installez tout d’abord les différentes dépendances nécessaires à l'installation de l'application UpdatEngine:

  Installation des dépôts EPEL pour installer les paquets dont dépend updatengine et qui ne
sont pas dans les dépôts "officiels" CentOs.
  On commence par installer wget pour récupérer les sources de dépots:

# yum install wget

   Ajout d'un dépôt EPEL: Commandes à effectuer:
# cd /tmp
# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
# yum update

  Puis on installe l'ensemble des paquets nécessaires:

# yum install httpd mod_wsgi mod_ssl mysql-server mysql-devel mysql-libs MySQL-python python-devel python-virtualenv
python-pip libxml2-devel libxslt-devel git gcc

Environnement virtuel
Création
  Créez maintenant l’environnement virtuel qui hébergera le serveur UpdatEngine. Nous le créerons directement
sous /var/www dans un répertoire nommé UE-environment

     Nous créons un environnement par unité afin que chacun soit indépendant dans son exploitation. Par exemple pour les
sdar : nom du répertoire UE-SDAR, pour l'IGEPP: UE-IGEPP, etc...

Attention
Veillez à respecter le nom de ce répertoire tout au long de la procédure

                     Page 3 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

# virtualenv --distribute --no-site-packages /var/www/UE-environment
# 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

Dépendances de l'environnement virtuel
Installons maintenant les dépendances nécessaires à UpdatEngine dans votre environnement virtuel:

  A faire pour chaque nouvel environnement par unité créé ( UE-SDAR, UE-IGEPP, etc..)

  Les différentes dépendances sont détaillées dans le fichier pip-packages.txt Installez les avec l’utilitaire /
var/www/UE-environment/bin/pip install ce qui permettra de n’installer les dépendances que dans votre
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

Installation de la base de données MySQL
Rendre le service actif au démarrage:

# chkconfig mysqld --level 345 on

  Avant tout, attribuez un mot de passe à l'utilisateur root. Par défaut, à l’installation le mot de passe est vide.

  Lancez le serveur MySQL

#service mysqld start
# mysqladmin -u root password NEWPASSWORD

  Créez tout d’abord une base de données dédiée à l’application (utilisez par exemple updatengineSDAR
comme nom):
Une base par unité , exemple updatengineSDAR , updatengineIGEPP, updatengineISTLO

# mysqladmin -u root -p create updatengineSDAR

  puis créez un utilisateur dédié à cette base de données (updatengineuser dans cet exemple avec comme mot
de passe unmotdepasse):
mysql -u root -p -e "GRANT ALL PRIVILEGES ON updatengineSDAR.* TO 'updatengineuser'@'localhost' IDENTIFIED by 'unmotd

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

  On vérifie que la base "updatengineSDAR" et l'utilisateur 'updatengineuser' sont bien créés:

# mysql -u root -p
# Enter password:
# mysql> show databases; On doit voir sous Database la base créée " updatengineSDAR"
# mysql> select host, user, password from mysql.user; On doit voir dans la colonne user, l'utilisateur créé 'updatengineuser'

Configuration de l'environnement
Vous pouvez maintenant modifier le fichier de configuration /var/www/UE-environment/updatengine-server/
updatengine/settings.py pour y indiquer l’adresse de votre serveur et les paramètres de connexion à la base de
données.

  Copiez tout d’abord le fichier settings.py.model_mysql vers settings.py:

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

  Editez le fichier /var/www/UE-environment/updatengine-server/updatengine/settings.py

                      Page 4 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

  Renseignez la variable PROJECT_URL avec l’adresse et le port de votre serveur.
Par exemple, si l’adresse ip de votre serveur est 192.168.1.45, vous devez renseigner la ligne de cette façon:

PROJECT_URL = 'https://192.168.1.45:1979'
Note
Pour chaque nouveau serveur UdaptEngine sur la machine, il faut attribuer un nouveau port.
le port par défaut 1979 est définit dans le fichier de configuration apache-updatengine.

  Renseignez maintenant les paramètres de connexion à la base de données dans le paragraphe suivant:

  On modifie les lignes suivantes:

DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.mysql',
 'NAME' : 'updatengineSDAR',
 'USER': 'updatengineuser',            # Not used with sqlite3.
 'PASSWORD': 'unmotdepasse',
  Remarque: ces informations correspondent à l’exemple pris ci-dessus lors de la création de la base de
données et de son utilisateur. Il faudra donc l’adapter à votre contexte.

Paramétrage du service Apache
Rendre le service actif au démarrage:

# chkconfig httpd --level 345 on

   Avant de redémarrer le service apache, copiez le fichier de configuration standard puis activez ce nouveau
site:

# cd /etc/httpd/
# mkdir sites-available sites-enabled
# cp /var/www/UE-environment/updatengine-server/requirements/apache-updatengine /etc/httpd/sites-available/
# ln -s /etc/httpd/sites-available/apache-updatengine /etc/httpd/sites-enabled/apache-updatengine

   Editer le fichier /etc/httpd/sites-available/apache-updatengine et l'adapter à votre configuration:
# nano /etc/httpd/sites-available/apache-updatengine

Listen 1979
NameVirtualHost 192.168.1.45:1979

 WSGIDaemonProcess updateSDAR display-name=updateSDAR user=apache processes=2 threads=15
 WSGIScriptAlias / /var/www/UESDAR/updatengine-server/updatengine/wsgi.py
 Alias /static/ /var/www/UESDAR/updatengine-server/updatengine/static/
 Alias /media/ /var/www/UESDAR/updatengine-server/updatengine/media/

Order deny,allow
Allow from all

Order deny,allow
Allow from all

# Enable SSL on UpdatEngine
SSLEngine on
SSLCertificateFile /etc/ssl/certs/updatengine.crt
SSLCertificateKeyFile /etc/ssl/private/updatengine.key

Note
On Change le numéro de port (3 modifications), le nom du process, de WSGIDaemonProcess updatengine vers
WSGIDaemonProcess «nouveau nom » nouveau nom = updatEngineSDAR par exemple, ainsi que le display-name= - www-data
devient apache. - On modifie les chemins d'accès au répertoires du site web (5 modifications). - On active SSL, on gardera le
même certificat pour toutes les instances updatengine.

                       Page 5 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

Génération du certificat SSL pour Apache
Sous centos: http://www.dsfc.net/logiciel-libre/linux/centos-linux-logiciel-libre/apache-en-mode-ssl-sous-centos/

  Par défaut le fichier de configuration apache qui est fournit avec l’application updatengine est conçu pour un
fonctionnement en http.

  Pour plus de sécurité, il est recommandé d'utiliser un certificat de sécurité SSL. On va donc modifier la
configuration du serveur web et de nos clients pour qu’ils fonctionnement en https avec le certificat nouvellement
créé. Le package "mod_ssl" a été préalablement installé.

Création du Certificat Serveur pour l'application
Nous allons générer la clef privée du serveur web sans PassPhrase pour éviter qu'elle soit demandée à chaque démarrage du
service Apache.

   Clé privée dédié à l’application updatengine:
# mkdir /etc/ssl/private
# openssl genrsa -out /etc/ssl/private/updatengine.key 2048

  Protégeons la clé:

# chmod 400 /etc/ssl/private/updatengine.key

  Puis générez un certificat à partir de cette clef et répondez aux questions posées:
# openssl req -new -x509 -days 1826 -key /etc/ssl/private/updatengine.key -out /etc/ssl/certs/updatengine.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
# Country Name (2 letter code) [XX]:FR
# State or Province Name (full name) []:FRANCE
# Locality Name (eg, city) [Default City]:RENNES
# Organization Name (eg, company) [Default Company Ltd]:INRA
# Organizational Unit Name (eg, section) []:SDAR
# Common Name (eg, your name or your server's hostname) []:uelerheu.rennes.inra.fr
# Email Address []:admin-updatengine@rennes.inra.fr

Adaptation de la configuration de Apache (httpd.conf)
On ajoute au fichier: /etc/httpd/conf/httpd.conf

ServerName 192.168.1.45 (l'adresse IP du serveur)
NameVirtualHost *:80 (On décommente)
Include /etc/httpd/sites-enabled/ (Ajouter En dessous de NameVirtualHost)
  Il ne reste plus qu’à rendre l’utilisateur apache propriétaire des deux répertoires static et media:

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

  Redémarrez maintenant le service httpd pour prendre en compte la nouvelle configuration:

# service httpd restart

  Enfin, connectez vous à l’application avec un navigateur web en saisissant comme adresse celle que vous
avez renseigné pour la variable PROJECT_URL (http://192.168.1.45:1979 dans l’exemple):

Initialisation de la base de données
# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py syncdb

  A adapter en fonction du site web UdapteEngine.

                          Page 6 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

  L’installeur vous demande alors si vous souhaitez créer un nouvel utilisateur pour l’application:
Répondez yes à la question posée pour en créer un nouveau:

You just installed Django's auth system, which means you don't have any
superusers defined. Would you like to create one now? (yes/no): yes
  Cet utilisateur sera celui de l'application UpdatEngine

  Saisissez ensuite le nom de l’utilisateur et entrez son adresse email:
# Username (leave blank to use 'root'): admin
# E-mail address: une adresse valise

  Saisissez ensuite un mot de passez pour cet utilisateur, confirmez le et validez par entrée pour terminer l’initialisation de la
base de données:

# Password:
# Password (again):

  La base de données est maintenant initialisée.
  Pour terminer sa configuration, nous allons maintenant passer 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

  A adapter en fonction du site web UdapteEngine.
Note
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.Enfin chargez 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

  A adapter en fonction du site web UdapteEngine.

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

  Renseigner le login et mot de passe saisi lors de l’installation et voilà, votre serveur est prêt à fonctionner

  Vous pouvez maintenant modifier le fichier de configuration apache-updatengine pour prendre en compte votre
certificat.

Récapitulatif des commande pour créer une
instance Update Engine (A VALIDER)
Liste des commandes

   1.   virtualenv --distribute --no-site-packages /var/www/ue-XXX
   2.   cd /var/www/ue-XXX/
   3.   git clone https://github.com/updatengine/updatengine-server.git
   4.   /var/www/ue-XXX/bin/pip install -r /var/www/ue-XXX/updatengine-server/requirements/pip-packages.txt

  Initialisation de la base de données MySQL updatengineXXX

   1. mysqladmin -u root -p create updatengineXXX
   2. mysql -u root -p -e "GRANT ALL PRIVILEGES ON updatengineXXX.* TO 'Login_BD'@'localhost' IDENTIFIED
      by 'MotdePasse_BD' WITH GRANT OPTION;"
      => entrer mot de passe administrateur mysql
   3. cp /var/www/ue-XXX/updatengine-server/updatengine/settings.py.model_mysql /var/www/ue-XXX/updatengine-
      server/updatengine/settings.py
   4. modifier fichier /var/www/ue-XXX/updatengine-server/updatengine/settings.py avec vi
      Les valeurs a remplacé sont en gras
        PROJECT_URL = 'https://AdresseIPServeurUpdatEngine:PortServeurUpdatEngine'
        DATABASES = {
           'default': {
           'ENGINE': 'django.db.backends.mysql',
            'NAME' : 'updatengineXXX',

                       Page 7 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

            'USER': 'Login_BD',                 # Not used with sqlite3.
            'PASSWORD': 'MotdePasse_BD',
   5. cp /var/www/ue-XXX/updatengine-server/requirements/apache-updatengine /etc/httpd/sites-
      available/apache-updatengineXXX
   6. Créer un lien symbolique :
      ln -s /etc/httpd/sites-available/apache-updatengineXXX /etc/httpd/sites-enabled/apache-updatengineXXX
   7. Modifier fichier /etc/httpd/sites-available/apache-updatengineXXX avec vi
      vi /etc/httpd/sites-available/apache-updatengineXXX
      Listen PortServeurUpdatEngine
      NameVirtualHost AdresseIPServeurUpdatEngine:PortServeurUpdatEngine
      
       WSGIDaemonProcess updateXXX display-name=updateXXX user=apache processes=2 threads=15
       WSGIScriptAlias / /var/www/ue-XXX/updatengine-server/updatengine/wsgi.py
       Alias /static/ /var/www/ue-XXX/updatengine-server/updatengine/static/
       Alias /media/ /var/www/ue-XXX/updatengine-server/updatengine/media/
      
      Order deny,allow
      Allow from all
      
      Order deny,allow
      Allow from all
      
      # Enable SSL on UpdatEngine
      SSLEngine on
      SSLCertificateFile /etc/ssl/certs/updatengine.crt
      SSLCertificateKeyFile /etc/ssl/private/updatengine.key
      
   Adaptation de la configuration de apache
13 - chown -R apache:apache /var/www/ue-XXX/updatengine-server/updatengine/static/
14 - chown -R apache:apache /var/www/ue-XXX/updatengine-server/updatengine/media/
15 - service httpd restart
16 - /var/www/ue-XXX/bin/python /var/www/ue-XXX/updatengine-server/manage.py syncdb
  ueXXX (compte utilisateur générique de l'application)
  admin-uengineSITE@rennes.inra.fr
  mdpueXXX (mot de passe utilisateur générique de l'application)
17 - /var/www/ue-XXX/bin/python /var/www/ue-XXX/updatengine-server/manage.py migrate
18 - /var/www/ue-XXX/bin/python /var/www/ue-XXX/updatengine-server/manage.py loaddata /var/www/ue-XXX/
updatengine-server/initial_data/configuration_initial_data.yaml

Configuration des clients
  Avant de modifier la configuration des clients, commencez par récupérer le certificat de sécurité SSL.

  Vous devez pour cela transformer le certificat updatengine.crt au format pem par la commande suivante:

# openssl x509 -in /etc/ssl/certs/updatengine.crt -out /tmp/cacert.pem -text

  Vous pouvez maintenant récupérer le certificat cacert.pem généré sous /tmp pour le copier par la suite dans
les répertoires de configuration des clients UpdatEngine.

     Vous pouvez maintenant modifier la configuration:

    • Des clients Linux en modifiant l’adresse appelée (https au lieu de http) puis en utilisant l’option -c pour
      spécifier le chemin vers le certificat de sécurité cacert.pem.

   Vous pouvez par exemple le copier sous /opt/updatengine-client/cacert.pem et ainsi lancer le client avec la
ligne de commande suivante:

# /opt/updatengine-client/LinuxDpkg/updatengine-client.py -i -s https://votre_serveur_web:1979 -c /opt/updatengine-client/
cacert.pem
    • Des clients Windows en relançant le programme d’installation puis en choisissant:

  L’adresse en https de votre serveur et le certificat de sécurité cacert.pem lors de l’affichage de l’écran suivant:

                      Page 8 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Déploiement d'application - Installation UpdatEngine serveur (CentOs – apache2 / MySQL)

  Une fois votre client installé, la connexion entre l’agent et le serveur sera sécurisée.

Note
Sous Windows, vous pouvez aussi installer le client en ligne de commande en spécifiant le chemin vers le certificat avec
l’option: /cert="chemin_absolu_vers_votre_certificat"

  Pour vérifier que celui-ci est bien pris en compte lors de l’installation, vous pouvez vérifier qu’un fichier
cacert.pem est bien présent dans le répertoire UpdatEngine Client sous Program Files et que celui-ci est bien
appelé dans la ligne de commande de la tâche planifiée.

                      Page 9 - dernière modification par Christophe Geneste le 2014/02/26 10:05
Vous pouvez aussi lire
DIAPOSITIVES SUIVANTES ... Annuler