Installer Arii composant par composant sur une Centos 7.3

De SOS Paris
Aller à : navigation, rechercher
Installation.png
Guide d'Installation
Version 2.0
Ce document détaille l'installation d'Arii étape par étape sur un environnement Centos7.3.

Les éléments peuvent être adaptés à votre infrastructure mais il est important de respecter les étapes. Notre service Support pourra vous aider pour réaliser cette procédure dans votre environnement, si besoin support@sos-paris.com

Cette procédure indique les étapes à suivre dans l'ordre, cela permet de valider chaque étape et de passer directement aux étapes qui vous concerne si vous avez déjà un socle.

Lorsque le socle système est prêt, vous pouvez passer à l'étape Installation Linux.

Avant de commencer

Environnement d'installation

L'environnement utilisé dans cette procédure est donné à titre indicatif, il est possible de modifier des paramètres pour la mettre en conformité avec votre système d'information:

Hostname arii Nom de la machine qui héberge Arii
Adresse IP 192.168.203.132 Adresse IP de la machine qui héberge Arii
Utilisateur Arii arii Login de connexion sur la machine arii
Mot de passe Arii arii Mot de passe de connexion sur la machine arii
Hôte DB localhost Hôte pour l'hébergement de la base de données
Port DB 3306 Port pour l'hébergement de la base de données
Utilisateur DB root Login de connexion pour la base de données
Mot de passe DB arii Mot de passe de connexion pour la base de données
Répertoire Symfony /home/arii/symfony2 Répertoire d'installation de Symfony2
Répertoire JobScheduler (Home) /opt/jobscheduler Localisation des binaires et autres fichiers fixes d'Open Source JobScheduler
Répertoire JobScheduler (Data) /home/arii/jobscheduler Localisation des fichiers de configuration et de données d'Open Source JobScheduler
Fuseau horaire {{{timezone}}} Obligatoire pour Symfony
Limite mémoire {{{memory_limit}}} Mémoire utilisée pourun script PHP.

Pré-requis

Cette étape est généralement prise en charge par votre administrateur système qui vous fournira une machine virtuelle ou une machine physique respectant les standards de l'entreprise.

Il vous faut :

  • Une VM (ou une machine physique) avec centos 7.3 (minimale ou complète) disposant de 4 Go de ram. Pas d'obligation en cpu mais il est recommandé d'avoir 2 coeurs logiques,
  • Un accès à internet pour les téléchargements,
  • Les droits "admin" sur la machine d'installation,
  • Les droits permettant d'ouvrir des ports sur le firewall.

Cette procédure prévoit l'installation d'une bdd en local et d'un utilisateur de cette base. Si vous devez utiliser un serveur de bdd distant, créez (ou faites créer par votre dba) une bdd pour Arii avec un utilisateur. Il vous faudra connaître l'ip, le port et le nom de la base ainsi que le nom et le mot de passe d'un utilisateur de cette base.

Si vous avez besoin d'aide pour cette partie:

Composants logiciels utilisés

  • Système d’exploitation : Linux CentOS V7.3
  • Serveur HTTP Apache V2.4.x
  • Serveur de pages PHP 5.6.x
  • La bibliothèque Dhtmlx Suite et le connecteur PHP de Dhtmlx
  • Les bibliothèques Dhtmlx Gantt et Dhtmlx Scheduler
  • Oracle® Database Java® Runtime Environment (JRE) 64-Bit version 1.8.x
  • Interpréteur de script Perl V5.2x.x
  • Le logiciel graphique Graphviz V2.38
  • Le logiciel de gestion de versions Git V1.7
  • Le framework « Symphony » V2.x
  • Serveur GIT
  • JobScheduler V1.9.x

Liste des fichiers d'installation nécessaires qui seront utilisés

  • le fichier d'installation silencieuse d'OJS (qui est inclus dans ce document)
  • les fichiers "source" de Arii (ils sont en libre téléchargement sur Github)

Installation Système et Réseau

Mise en place : utilisateur arii

Connectez-vous en 'root' sur le système ou avec un user ayant des droits d'administration.

$> ssh root@192.168.203.132

Créer un user 'arii'

$> adduser arii

Modifier le mot de passe

$> passwd arii

Choisissez un mot de passe (mini 8 caractères) par exemple 'arii' et puis retapez la confirmation 'arii'.

Nous avons désormais un utilisateur appelé 'arii' avec pour mot de passe 'arii'.

Ajout de l'utilisateur arii dans le groupe sudoers

$> usermod -aG wheel {{{ux_arii}}}

Notre utilisateur arii est maintenant dans le groupe des sudoers.

Note : attention dans les anciennes versions de Centos; le groupe wheel était désactivé par défaut (pour l'activer il fallait modifier le fichier /etc/sudoers et décommenter la ligne ##%wheel ALL=(ALL) ), à partir de la version 7 de Centos, le groupe wheel est actif par défaut.

Deconnectez-vous et reconnectez-vous avec votre user 'arii'

$> exit
$> ssh arii@192.168.203.132

SELinux

Le niveau de sécurité de Centos doit être modifié pour permettre le fonctionnement du produit. Il faut modifier le fichier 'selinux' :

$> sudo vi /etc/sysconfig/selinux

Le paramètre 'SELINUX' doit passer de 'enforcing' à 'permissive':

   # This file controls the state of SELinux on the system.
   # SELINUX= can take one of these three values:
   #     enforcing - SELinux security policy is enforced.
   #     permissive - SELinux prints warnings instead of enforcing.
   #     disabled - No SELinux policy is loaded.
   SELINUX=permissive
   # SELINUXTYPE= can take one of three two values:
   #     targeted - Targeted processes are protected,
   #     minimum - Modification of targeted policy. Only selected processes are protected. 
   #     mls - Multi Level Security protection.
   SELINUXTYPE=targeted 

Afin de faire prendre en compte ce changement, il faut redémarrer la machine

$>sudo reboot

Ouverture de ports sur le firewall

Pour une configuration par défaut, voici les ports à ouvrir :

Pour MariaDB

$> sudo firewall-cmd --permanent --add-port=3306/udp
$> sudo firewall-cmd --permanent --add-port=3306/tcp
 

Pour Apache

$> sudo firewall-cmd --permanent --add-port=80/tcp
$> sudo firewall-cmd --permanent --add-port=80/udp
$> sudo firewall-cmd --permanent --add-port=8080/udp
$> sudo firewall-cmd --permanent --add-port=8080/tcp
$> sudo firewall-cmd --permanent --add-service=http
$> sudo firewall-cmd --permanent --add-service=https 

Pour Open Source JobScheduler

$> sudo firewall-cmd --permanent --add-port=44444/tcp
$> sudo firewall-cmd --permanent --add-port=44444/udp

Redemarrer le service firewall

$> sudo service firewalld restart

Tous ces ports peuvent être modifiés afin de s'adapter à votre infrastructure.

Mise à niveau du réseau

L'installation de Centos nécessite souvent un paramétrage réseau.

Tapez la commande :

$> ping www.sos-paris.com

Si elle fonctionne correctement passez directement à 'Installer un environnement LAMP'.

Si elle ne fonctionne pas suivez les trois étapes :

Vérifier le fichier "host"

Editer le fichier "hosts" en sudo

$>sudo vi /etc/hosts

On doit y trouver l'adresse IP locale de la VM (ou serveur) associée au nom de la machine. Si besoin ajoutez-les.

Exemple:

192.168.203.132     arii

Vérifier le "DNS"

Editer en sudo le fichier "resolv.conf" et s'assurer qu'un DNS est configuré :

$> sudo vi /etc/resolv.conf

Si le fichier est vide, indiquez un DNS, par exemple celui de google :

nameserver 8.8.8.8

Vérifier la passerelle réseau et le HOSTNAME

Exemple avec une gateway en 192.168.1.1 :

$>sudo vi /etc/sysconfig/network

Au besoin, compléter le fichier avec vos infos :

NETWORKING=yes
GATEWAY=192.168.1.1
HOSTNAME=Centos_03
NOZEROCONF=true
NETWORKING_IPV6=no
IPV6_AUTOCONF=yes
IPX=no

Dans certaines versions de Centos, un utilitaire nommé anaconda crée les interfaces réseaux. Anaconda laisse vide le fichier 'network', il crée un sous repertoire 'network-scripts' dans lequel il crée un fichier de configuration par interface réseau. Les fichiers d'interface réseau portent un nom de la forme 'ifcfg-nom_de_l'interface'. Il faut éditer le fichier 'ifcfg-ifcfg-nom_de_l'interface'et s'assurer que la gateway est bien indiquée, au besoin corriger les valeurs.

$> cd /etc/sysconfig/network-scripts
$> ls

Par exemple avec l'interface 'ifcfg-ens192'

$> sudo vi ifcfg-ens192

Vérifier la gateway :

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=6f414b38-e669-4fc4-b814-13462f2f648c
DEVICE=ens192
ONBOOT=yes
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
IPADDR=192.168.1.18
PREFIX=24
GATEWAY=192.168.1.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes 

Si vous avez dû modifier un ou plusieurs fichiers, il faut relancer le réseau.

$> service network restart

De nouveau, vérifier que le ping fonctionne :

$> ping www.sos-paris.com

Validation

Pour valider cette étape, vous pouvez vérifier ces points:

  • vous pouvez pinger la machine avec son nom ou son adresse
  • vous pouvez vous connecter avec le compte arii

Si ces points sont vérifiés, vous pouvez passer à l'étape suivante.

Installation PHP

Dépôts

-- A vérifier --

  • Repository Epel (Extra Packages for Enterprise Linux est un dépot officiel dédié aux paquets partenaires fedora/red hat/Centos/)
$> sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • Repository WEBTATIC (pour php 5.6)
$> sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installation

$> sudo yum -y install php56w php56w-common
$> sudo service httpd restart

Modules complémentaires

sudo yum install php56w-xml
sudo yum install php56w-mbstring
sudo yum install php56w-ldap
sudo yum install php56w-fpm php5w-opcache

Configuration php.ini

Il faut modifier la section timezone dans le fichier php.ini. Pour cela décommenter la ligne 'date.timezone' et indiquer 'Europe/Paris' :

$> sudo vi /etc/php.ini

Modifier le timezone:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = {{{timezone}}}

Modifier la limite de la mémoire qui est à 128Mo par défaut.

memory_limit={{{memory_limit}}}

Installation Base de données

Dépôt MariaDB

Si vous utilisez une autre bd, adaptez cette partie, nous supportons aussi postgres et oracle, n'hésitez pas à nous contactez si vous avez besoin d'aide.

$> cd /etc/yum.repos.d/
$> sudo vi ./MariaDB.repo  

Copier-coller les informations suivantes dans le fichier :

# MariaDB 10.1 CentOS repository list - created 2017-02-13 09:03 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1
 

(Attention, pensez à supprimer les espaces en début de ligne).

Installation

Installer le serveur et le client :

$> sudo yum -y install MariaDB-server MariaDB-client 
  • Démarrer mariadb :
$> sudo service mysql start
  • Initialiser les mots de passe :
$> /usr/bin/mysqladmin -u root password 'arii'
$> /usr/bin/mysqladmin -u root -h <hostname_machine> password 'arii'

Dans notre exemple  :

$> /usr/bin/mysqladmin -u root -h arii password 'arii'

(ERIC)=> mysqladmin -u root -p password (password en littéral)

Configuration (facultatif)

La création de la base de données peut être réalisée par une commande symfony2, cette partie n'est donc donnée qu'à titre d'information car on ne devrait rencontrer que deux situations:

  • vous avez un dba qui a ses normes d'installation et de configuration, et dans ce cas il ne devrait pas avoir besoin de ces informations
  • vous n'avez pas de dba, la meilleure solution est de faire confiance aux outils !

Configuration manuelle

mysql -u {{{db_root_user}}} -p Enter password:

{{{db_root_password}}}

mysql> CREATE DATABASE testing;

mysql> GRANT ALL PRIVILEGES ON arii.* TO arii@localhost IDENTIFIED BY 'arii';

Configuration par phpMyAdmin

phpMyAdmin facilite l'administration de la base de données mais n'est pas obligatoire.

$>sudo yum -y install phpmyadmin 

Modifier la section suivante du fichier /etc/httpd/conf.d/phpMyAdmin.conf pour autoriser l'accès depuis le navigateur à phpMyAdmin

$> sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
  AddDefaultCharset UTF-8
  <IfModule mod_authz_core.c>
    # Apache 2.4
    <RequireAny>
     # Require ip 127.0.0.1
     # Require ip ::1
      Require all granted
    </RequireAny>
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Deny,Allow
    Allow from all
    Allow from ::1
  </IfModule>
</Directory>


Redémarrer Apache

   $> sudo service httpd restart


Connectez-vous à phpMyadmin sur votre navigateur en appelant l'URL http://192.168.203.132/phpmyadmin

Rappel : pour mariadb nous avons créé un user : 'root' et son mot de passe 'arii'

Création de la BD

Cliquer sur l'onglet Base de Données tapez 'arii' dans le champs du nom comme indiqué sur l'image. Régler l'encodage sur "utf8_general_ci" comme indiqué sur l'image puis cliquer sur le bouton "Créer" à droite.

Bd arii.png


Création d'un utilisateur

Création d'un user 'root' avec ses droits Cliquer sur l'onglet 'Privilèges', pour sur le bouton 'Créer un utilisateur'

Ajoutuser.png

Mettez 'root' en nom d'utilisateur, 'localhost' comme client, 'arii' comme mot de passe, ne cliquez pas exécuter avant d'avoir donné les droits !


Createuser.png

Descendez dans la fenêtre et cliquer sur 'Tout cocher' pour donner tous les privilèges à cet utilisateur :

Privileges.png

Descendez et cliquez sur “executer”

Validation

Pour valider cette étape, vous pouvez vérifier ces points:

Si ces points sont vérifiés, vous pouvez passer à l'étape suivante.

Installation du serveur Web

Lancer l'installation apache (version 2.4) :

$> sudo yum -y install httpd 

Démarrer apache

$> sudo service httpd start

Validation

$> sudo vi /var/www/html/index.php

puis

<?php
phpinfo();

Pour tester, il suffit d'ouvrir un navigateur et de pointer sur tester l'url "http://192.168.203.132"

Nous nous servirons de cette page pour vérifier configuration et la présence des modules.

Installation Wget

$> sudo yum -y install wget 

Installation Java

$>  sudo yum -y install java-1.8.0-openjdk-devel.x86_64 

Vérifier l'installation

$> java -version

Installation de Perl

$> sudo yum -y install perl-CPAN
$> sudo perl -MCPAN -e shell

Répondre "yes" partout, puis au prompt :

cpan[1]> force install XML::Simple
cpan[1]> exit

Installation de GraphViz

Installation des pré-requis pour graphviz version 2.38 (version current stable à la rédaction de cet article)

Dépôt

Connectez-vous en root sur la liste des dépots

$> cd /etc/yum.repos.d/

Editer le fichier graphviz-rhel.repo

$> vi graphviz-rhel.repo

et ajouter le contenu suivant (cf. http://graphviz.org/graphviz-rhel.repo) :

[graphviz-stable]
name=Graphviz - RHEL $releasever - $basearch
baseurl=http://www.graphviz.org/pub/graphviz/stable/redhat/el$releasever/$basearch/os/
enabled=1
gpgcheck=0
skip_if_unavailable=1
 
[graphviz-stable-source]
name=Graphviz - RHEL $releasever - Source
baseurl=http://www.graphviz.org/pub/graphviz/stable/SRPMS/
enabled=0
gpgcheck=0
skip_if_unavailable=1

[graphviz-stable-debuginfo] 
name=Graphviz - RHEL - Debug 
baseurl=http://www.graphviz.org/pub/graphviz/stable/redhat/el$releasever/$basearch/debug/
enabled=0 
gpgcheck=0 
skip_if_unavailable=1

[graphviz-snapshot]
name=Graphviz - RHEL $releasever - $basearch
baseurl=http://www.graphviz.org/pub/graphviz/development/redhat/el$releasever/$basearch/os/
enabled=0
gpgcheck=0
skip_if_unavailable=1

[graphviz-snapshot-source]
name=Graphviz - RHEL $releasever - Source
baseurl=http://www.graphviz.org/pub/graphviz/development/SRPMS/
enabled=0
gpgcheck=0
skip_if_unavailable=1

[graphviz-snapshot-debuginfo] 
name=Graphviz - RHEL - Debug 
baseurl=http://www.graphviz.org/pub/graphviz/development/redhat/el$releasever/$basearch/debug/
enabled=0 
gpgcheck=0 
skip_if_unavailable=1 

Installation

$> sudo yum -y install http://www.graphviz.org/pub/graphviz/stable/redhat/el7/x86_64/os/graphviz-2.38.0-1.el7.x86_64.rpm

Vérifier l'install par la commande suivante qui revient sans commentaire

$> sudo dot -c
   <AutomatedInstallation langpack="eng">
       <com.izforge.izpack.panels.UserInputPanel id="home">
           <userInput/>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="licences">
           <userInput>
    
               <entry key="licenceOptions" value="GPL"/>
    
               <entry key="licence" value=""/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.HTMLLicencePanel id="gpl_licence"/>
       <com.izforge.izpack.panels.HTMLLicencePanel id="commercial_licence"/>
       <com.izforge.izpack.panels.TargetPanel id="target">
    
           <installpath>/home/arii/jobscheduler</installpath>
    
       </com.izforge.izpack.panels.TargetPanel>
       <com.izforge.izpack.panels.UserPathPanel id="userpath">
    
           <UserPathPanelElement>/home/arii/jobscheduler</UserPathPanelElement>
    
       </com.izforge.izpack.panels.UserPathPanel>
       <com.izforge.izpack.panels.PacksPanel id="package">
    
    
           <pack index="0" name="Job Scheduler" selected="true"/>
    
           <pack index="1" name="Update Service" selected="false"/>
    
           <pack index="2" name="Database Support" selected="true"/>
    
           <pack index="5" name="Housekeeping Jobs" selected="true"/>
    
           <pack index="7" name="Cron" selected="false"/>
    
       </com.izforge.izpack.panels.PacksPanel>
       <com.izforge.izpack.panels.UserInputPanel id="network">
           <userInput>
    
               <entry key="schedulerHost" value="localhost"/>
    
               <entry key="schedulerPort" value="44444"/>
    
               <entry key="jettyHTTPPort" value="40444"/>
    
               <entry key="jettyHTTPSPort" value="48444"/>
    
               <entry key="schedulerId" value="arii"/>
    
               <entry key="schedulerAllowedHost" value="0.0.0.0"/>
    
               <entry key="launchScheduler" value="yes"/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="cluster">
           <userInput>
    
               <entry key="clusterOptions" value=""/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="smtp">
           <userInput>
    
               <entry key="mailServer" value=""/>
               <entry key="mailPort" value="25"/>
    
               <entry key="smtpAccount" value=""/>
               <entry key="smtpPass" value=""/>
    
    
               <entry key="mailFrom" value=""/>
    
               <entry key="mailTo" value=""/>
    
               <entry key="mailCc" value=""/>
    
               <entry key="mailBcc" value=""/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="email">
           <userInput>
    
               <entry key="mailOnError" value="yes"/>
               <entry key="mailOnWarning" value="yes"/>
               <entry key="mailOnSuccess" value="no"/>
    
               <entry key="jobEvents" value="on"/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="update">
           <userInput>
    
    
               <entry key="checkForUpdateStarttime" value="20:00"/>
    
               <entry key="checkForUpdateStartday" value="1"/>
    
               <entry key="autoUpdateDownload" value="0"/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="database">
           <userInput>
    
               <entry key="databaseDbms" value="mysql"/>
    
               <entry key="databaseCreate" value="on"/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="dbconnection">
           <userInput>
    
               <entry key="databaseHost" value="localhost"/>
    
               <entry key="databasePort" value="3306"/>
    
               <entry key="databaseSchema" value="arii"/>
    
               <entry key="databaseUser" value="arii"/>
    
               <entry key="databasePassword" value="arii"/>
    
    
               <entry key="connectorJTDS" value="yes"/>
    
               <entry key="connectorMaria" value="yes"/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="jdbc">
           <userInput>
    
    
               <entry key="connector" value=""/>
    
               <entry key="connectorLicense" value=""/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.UserInputPanel id="cron">
           <userInput>
    
               <entry key="cronCrontab" value="/etc/crontab"/>
    
               <entry key="cronSystab" value="1"/>
    
               <entry key="cronTimeout" value="600"/>
    
               <entry key="cronChangeUser" value=""/>
    
               <entry key="cronChangeCommand" value=""/>
    
           </userInput>
       </com.izforge.izpack.panels.UserInputPanel>
       <com.izforge.izpack.panels.InstallPanel id="install"/>
       <com.izforge.izpack.panels.ProcessPanel id="process"/>
       <com.izforge.izpack.panels.FinishPanel id="finish"/>
   </AutomatedInstallation>




Un fois le fichier xml rempli, vérifiez que vous êtes connecté avec le compte “arii” car l'installation en root est interdite.

Vérifiez que vous êtes dans le repertoire /home/arii/jobscheduler/arii/jobscheduler1.9.11

Vérifiez que vous avez un fichier setup.sh dans ce répertoire

$> ls


et lancez la commande d'installation silencieuse

$>./setup.sh ./scheduler_moteur.xml

`Comme nous installons dans le home, les script en .sh ne sont pas forcément executables. dans ce cas pensez à faire

$> chmod +x script.sh


Vérifier l'installation d'OJS depuis un navigateur en appelant l'url http://IP_de_votre_serveur:44444/ OJS doit apparaître vous pouvez vous assurer qu'il existe un processus ojs pour arii dans les processus actifs :

$> ps -fux

et vérifier le port

$> netstat -paunt


Pour démarrer Open Source JobScheduler automatiquement au démarrage de la machine (fortement recommandé)

$> cd /home/arii/jobscheduler/arii/bin
$> sudo cp jobscheduler.sh /etc/init.d/
$> sudo systemctl enable jobscheduler.sh