Micronator SME-9. Odoo-8 (OpenERP) Installation. Version: RC-1 / jeudi 15 janvier 2015-19:41



Documents pareils
Micronator SME-9. Odoo-8. Installation. Version: / lundi 6 avril :39

Micronator SME-9. OpenERP-7. Installation. Version: / vendredi 23 janvier :12

Micronator SME-8.0 & Service FTP

Projet Administration Réseaux

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Installation de Vmware serveur Windows

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Les différentes méthodes pour se connecter

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

sshgate Patrick Guiran Chef de projet support

Vanilla : Virtual Box

Administration Linux - FTP

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

TP1 - Prise en main de l environnement Unix.

Micronator SME-9. Odoo-8. Premiers pas. Version: / dimanche 5 avril :45

OpenMediaVault installation

Bon ben voilà c est fait!

IceWarp serveur sur Linux : Guide d'installation

Configuration réseau Basique

WDpStats Procédure d installation

Les commandes relatives aux réseaux

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Installation FollowMe Q server

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Architecture de la plateforme SBC

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

HOW-TO Install Oracle 11gR2 on OL5U7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Configurer la supervision pour une base MS SQL Server Viadéis Services

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Atelier La notion de session utilisateur sous Linux

Windows Front-End Installation Guide HOPEX V1R1 FR

Installation des outils OCS et GLPI

Table des matières Hakim Benameurlaine 1

Micronator. Salle de classe sans fil. Cahier - Serveur SME-9.0 virtuel. Version: / lundi 25 août :16

Projet Semestre2-1SISR

CASE-LINUX MAIL - ROUNDCUBE

FreeNAS Shere. Par THOREZ Nicolas

Guide de démarrage Intellipool Network Monitor

Déploiement de SAS Foundation

Tutoriel compte-rendu Mission 1

INFO-F-404 : Techniques avancées de systèmes d exploitation

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

DOCKER MEETUP. Christophe Labouisse

Couche application. La couche application est la plus élevée du modèle de référence.

Votre premier projet Android

Guide d installation de MySQL

Ajout et Configuration d'un nouveau poste pour BackupPC

Guide Installation Serveur Extensive Testing

contact@nqicorp.com - Web :

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Mise en place d un serveur trixbox sur un domaine Kwartz. Version 1.0 du 25 juin 2012 Lycée Polyvalent d Artois, Noeux les Mines Adrien Bonnel

Version Wraptor Laboratories. Installation de SpamWars 4.0 Édition Entreprise

Once the installation is complete, you can delete the temporary Zip files..

Guide Installation Serveur Extensive Testing

Guide Installation de Fully Automated NAGIOS 2.3 sur Hyper-V

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Installer VMware vsphere

Installation du client Cisco VPN 5 (Windows)

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Contrôle de la DreamBox à travers un canal SSH

Installation du transfert de fichier sécurisé sur le serveur orphanet

Présentation du SC101

PPE GESTION PARC INFORMATIQUE

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Tutoriel Création d une source Cydia et compilation des packages sous Linux

contact@nqicorp.com - Web :

Installation d'un TSE (Terminal Serveur Edition)

IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence simultanée)

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Symantec Backup Exec Remote Media Agent for Linux Servers

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 5

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Raccordement des machines Windows 7 à SCRIBE

CP Upgrade Guide HOPEX V1R1 FR. Révisé le : 25 octobre Créé le : 16 juillet Auteur : Jérôme Horber

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

LINUX REMPLAÇANT WINDOWS NT

Pratique et administration des systèmes

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Storebox User Guide. Swisscom (Suisse) SA

Installation du client Cisco VPN 5 (Windows)

Tutoriel réalisé par luo. Version du 22/02/14

Installation du client Cisco VPN 5 (Windows)

Transcription:

Micronator SME-9 Odoo-8 (OpenERP) Installation / jeudi 15 janvier 2015-19:41

RF-232, Montréal 2015 6447, avenue Jalobert, Montréal. Québec H1M 1L1 Tous droits réservés RF-232 Licence publique générale GNU Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence publique générale GNU, version 3, 29 juin 2007 publiée par la Free Software Foundation Inc; sans section inaltérable, sans texte de première page de couverture et sans texte de dernière page de couverture. Une copie de cette licence est incluse dans la section appelée Licence publique générale GNU de ce document, page: 76. AVIS DE NON-RESPONSABILITÉ Ce document est uniquement destiné à informer. Les informations, ainsi que les contenus et fonctionnalités de ce do cument sont fournis sans engagement et peuvent être modifiés à tout moment. RF-232 n'offre aucune garantie quant à l'actualité, la conformité, l'exhaustivité, la qualité et la durabilité des informations, contenus et fonctionnalités de ce do cument. L'accès et l'utilisation de ce document se font sous la seule responsabilité du lecteur ou de l'utilisateur. RF-232 ne peut être tenu pour responsable de dommages de quelque nature que ce soit, y compris des dommages directs ou indirects, ainsi que des dommages consécutifs résultant de l'accès ou de l'utilisation de ce document ou de son conte nu. Chaque internaute doit prendre toutes les mesures appropriées (mettre à jour régulièrement son logiciel antivirus, ne pas ouvrir des documents suspects de source douteuse ou non connue) de façon à protéger le contenu de son ordinateur de la contamination d'éventuels virus circulant sur la Toile. Avertissement Bien que nous utilisions ici un vocabulaire issu des techniques informatiques, nous ne prétendons nullement à la précision technique de tous nos propos dans ce domaine.

En un clin-d'oeil I- Odoo (OpenERP)7 A) Description générale..7 B) Particularités de ce document9 C) Introduction..10 II- PostgreSQL11 A) Installation.11 B) Premiers pas.18 C) Configuration finale de PostgreSQL24 III- Python26 A) wkhtmltopdf.29 B) Python 2.7.8 de source32 IV- virtualenv.36 A) Modules Python.40 V- Odoo-843 A) Configuration du serveur Odoo.46 VI- Divers.52 VII- Mise à jour du Serveur SME59 VIII- Sauvegarde de SME..65 IX- Sauvegardes et restaurations PostgreSQL..68 3 / 77

Sommaire I- Odoo (OpenERP)7 A) Description générale..7 1. 2. 3. 4. 5. 6. Introduction7 Installation d'un Serveur SME.7 Manuel de l'utilisateur.7 Manuel de l'administrateur7 Manuel du développeur8 Logiciels recommandés8 B) Particularités de ce document9 1. 2. 3. Notes au lecteur9 Conventions9 Commentaires et suggestions9 C) Introduction..10 1. 2. II- Référence..10 Étapes.10 PostgreSQL11 A) Installation.11 1. 2. 3. 4. 5. 6. 7. Connexion au Serveur SME-911 Dépôts PostgreSQL (pgdg) et clé.12 Exclusion des rpm absolete.14 Installation de PostgreSQL.15 Initialisation de la base de données16 Lancement manuel de PostgreSQL.16 Lancement à l'amorçage..17 B) Premiers pas.18 1. 2. 3. 4. 5. 6. 7. 8. Référence..18 Connexion.18 SCHEMA..18 RÔLE..19 GRANT..19 Déconnexion19 Création d'un usager standard..19 Connexion à la BD avec un usager standard.22 C) Configuration finale de PostgreSQL24 1. 2. III- MD5.24 Création de l'usager odoo dans PostgreSQL.25 Python26 1. Dépendances..26 A) wkhtmltopdf.29 1. 4 / 77 Introduction.29 15 janvier 2015

2. 3. 4. Dépendance.29 Installation de wkhtmltopdf.30 Facultatif..30 B) Python 2.7.8 de source32 1. 2. 3. 4. 5. 6. IV- Introduction.32 Effaçage des anciens essais.32 Téléchargement.32./configure.33 make.34 make altinstall34 virtualenv.36 1. 2. Installation36 Usager standard odoo37 A) Modules Python.40 1. 2. 3. 4. 5. V- Installation des modules dans un environnement virtuel.40 Usager odoo40 Création d'un nouvel environnement virtuel..40 Chemin41 Installation des modules41 Odoo-843 1. 2. 3. Groupe shared43 Répertoire html en écriture pour le groupe.43 Installation depuis GitHub..44 A) Configuration du serveur Odoo.46 1. 2. 3. 4. 5. 6. VI- Introduction.46 Fichier odoo-server.conf..46 logrotation47 Script de démarrage (/etc/init.d/odoo)..48 Commande de démarrage51 signal-event.51 Divers.52 1. 2. 3. 4. 5. 6. 7. 8. Vérification des démarrages..52 Fichiers journaux.52 Mot de passe52 Administration du serveur Odoo..52 Site Odoo..53 Primary/html..54 Redirection HTML55 Mise à jour Odoo..57 VII- Mise à jour du Serveur SME59 1. 2. 3. 4. Bug 871459 Solution..60 Vérification après réamorçage..63 Vérification de Odoo..64 VIII- Sauvegarde de SME..65 1. 2. Sauvegarde..65 Répertoires sauvegardés65 5 / 77

3. IX- Sauvegardes et restaurations PostgreSQL..68 1. 2. 3. 4. 6 / 77 Fichier de configuration et de lancement.66 Référence..68 Sauvegarde..69 Restauration70 Vérification..71 Crédits72 15 janvier 2015

Odoo (OpenERP) I- Odoo (OpenERP) A) Description générale 1. Introduction Référence: http://fr.wikipedia.org/wiki/odoo Odoo, anciennement OpenERP et encore avant Tiny ERP, est à la base un progiciel libre de gestion intégré comprenant de très nombreux modules permettant de simplifier la gestion d entreprise dans son ensemble. Le logiciel est sous licence AGPL et est utilisé par plus de 2 millions d utilisateurs à travers le monde. 1.1. Le logiciel Odoo À l origine un ERP, le logiciel Open Source s est vu étendre ses fonctionnalités à des applications de "front office" (CMS, e-commerce, Blogs, Forums, News, Événements, LiveChat, Job offers, etc). Odoo suit les normes qualité ISO9001 version 2000 et offre une solution Open source entreprise complète tout en intégrant toutes les informations dans une base de données unique. L éditeur clame fournir le seul logiciel au monde qui permet de cumuler tout les besoins d une entreprise du début à la fin. 1.2. La société éditrice OpenERP SA OpenERP S.A. est également le nom de l entreprise qui édite le logiciel. Dans le reste de ce document on utilise le terme Odoo pour désigner le logiciel et OpenERP SA pour désigner l entreprise de façon univoque. 2. Installation d'un Serveur SME Vous pouvez consulter le document suivant pour installer un Serveur SME. Installation d'un Serveur SME: http://www.micronator.org/?page_id=236. 3. Manuel de l'utilisateur Disponible sur le site de Micronator: http://www.micronator.org/pdf/rf-232_sme_documentation_fr_utilisateur.pdf. 4. Manuel de l'administrateur Disponible sur le site de Micronator: http://www.micronator.org/pdf/rf-232_sme_documentation_fr_administration.pdf. 7 / 77

SME-9 & installation de Odoo-8 5. Manuel du développeur Disponible sur le site de Micronator: http://www.micronator.org/?page_id=88 6. Logiciels recommandés 6.1. DigestIT-2004 Calcul de sommes de contrôle MD5 or SHA-1: http://www.colonywest.us/digestit/ 6.2. PuTTY Logiciel d'accès SSH: http://www.putty.org/ 6.3. WinSCP Client SFTP graphique pour Windows: http://winscp.net/eng/download.php Au début de l installation, choisissez la langue French 8 / 77 15 janvier 2015

Particularités de ce document B) Particularités de ce document 1. Notes au lecteur * Les captures d'écrans ne sont que des références. ** Les informations écrites ont préséance sur celles retrouvées dans les captures d'écrans. Veiller à se référer aux différents tableaux lorsque ceux-ci sont présents. 2. Conventions Toutes les commandes à entrer à la console sont en gras. Les affichages à surveiller sont en rouge ou en bleu. # ping 192.168.1.149 192.168.1.149 is alive # Les liens de référence internet sont en bleu et ceux intra document en bleu. Manipulation, truc ou ruse pour se tirer d'embarras. Une recommandation ou astuce. Une note. Une étape, note ou procédure à surveiller. Paragraphe non complété ou non vérifié. Cet icône indique que cette commande est sur une seule ligne. Le PDF la mettra sur deux lignes avec un [CR] [LF] entre les deux. Il faudra donc copier la commande entière dans un éditeur de texte ASCII et la mettre sur une seule ligne avant de la copier à la console du Serveur SME-9. 3. Commentaires et suggestions RF-232 apprécie énormément échanger avec ses internautes. Vos commentaires et suggestions sont indispensables à l'amélioration de la documentation et du site micronator.org. N'hésitez pas à nous transmettre vos commentaires et à nous signaler tout problème d'ordre technique que vous avez rencontré ou n'arrivez pas à résoudre. Tous vos commentaires seront pris en considération et nous vous promettons une réponse dans les plus brefs délais. Pour nous contacter 9 / 77

SME-9 & installation de Odoo-8 C) Introduction 1. Référence Ce document se base sur l'article de daviddean99 de septembre 2014, Installing Odoo 8 on CentOS 6 with Python 2.7. https://odootricks.wordpress.com/2014/09/30/installing-odoo-8-on-centos-6-with-virtual-python-install/ Ce document donne la marche à suivre, pas à pas, pour installer la dernière version de Odoo sur un Serveur SME-9. Il s'adresse à ceux qui ne serait pas très expérimenté en tant qu'administrateur Linux mais qui voudraient rouler leur propre serveur Odoo. Vous pouvez simplement copier/coller les commandes dans un termi nal ou un écran SSH connecté à votre Serveur SME-9. Ce tutoriel a été vérifié sur un Serveur SME-9 mais il devrait aussi fonctionner sur un Serveur SME-8.x. 2. Étapes Nous allons commencer par installer le serveur de bases de données PostgreSQL puis, installer les paquetages nécessaires et leurs dépendances. Ensuite, nous allons créer un environnement virtual pour Python (ainsi nous n'interférerons pas avec la version de Python de Serveur SME-9) et installer tous les modules qu'odoo requiert. Il sera alors nécessaire de descendre, depuis GitHuB, le dernier code Odoo et créer un script de lancement compatible avec le Serveur SME-9. Ce tutoriel assume que vous avez réalisé une installation SME-9 sur un serveur dédié à rouler uniquement Odoo. Il est aussi assumé que vous allez rouler Odoo et PostgreSQL sur le même serveur. 10 / 77 15 janvier 2015

PostgreSQL II- PostgreSQL A) Installation 1. Connexion au Serveur SME-9 Pour ce document, le Serveur SME est à l'adresse 192.168.1.10. Il est en mode serveur uniquement mais habituellement il est en mode serveur et passerelle connecté en PPPoE. Nous nous connectons en tant que root au Serveur SME-9 à l'aide de PuTTY. login as: root root@192.168.1.10's password: Last login: Sun Jan 11 17:46:59 2015 from pc-00129.micronator.org ifconfig eth0 Link encap:ethernet HWaddr 08:00:27:5C:6F:AB inet adr:192.168.1.10 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:28118 errors:0 dropped:0 overruns:0 frame:0 TX packets:4213 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:3911655 (3.7 MiB) TX bytes:354558 (346.2 KiB) lo Link encap:boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:717 errors:0 dropped:0 overruns:0 frame:0 TX packets:717 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:57978 (56.6 KiB) TX bytes:57978 (56.6 KiB) 11 / 77

SME-9 & installation de Odoo-8 2. Dépôts PostgreSQL (pgdg) et clé 2.1. 32 ou 64 bits Pour connaître le genre de CPU de notre serveur, on lance la commande suivante: uname -p x86_64 2.2. Version CentOS Pour connaître la version CentOS dont notre serveur est issu. cat /etc/centos-release CentOS release 6.6 (Final) 2.3. Lien du dépôt PostgreSQL Pour connaître le lien URL du dépôt (repository) de la dernière version de PostgreSQL, on se rends au site suivant: http://yum.postgresql.org/repopackages.php#pg94 Notre Serveur SME-9 est un 64 bits issu de CentOS-6.6. Donc nous choisissons CentOS 6 - x86 64. On claque (clic droit) sur CentOS 6 - x86 64 et on copie l'adresse du lien. Le lien pour notre cas est: http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm 2.4. Construction de la commande yum La commande pour installer ce dépôt est composé de 2 parties: yum install -y et l'url du paquetage décrivant le dépôt. On installe le paquetage décrivant le dépôt de PostgreSQL pour le serveur CentOS-6 dont le Serveur SME-9 est issu. yum install -y http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdgcentos94-9.4-1.noarch.rpm Loaded plugins: fastestmirror, smeserver Loading mirror speeds from cached hostfile * base: centos.mirror.rafal.ca * smeaddons: mirror.canada.pialasse.com * smeextras: mirror.canada.pialasse.com * smeos: mirror.canada.pialasse.com * smeupdates: mirror.canada.pialasse.com * updates: mirror.csclub.uwaterloo.ca Setting up Install Process pgdg-centos94-9.4-1.noarch.rpm 5.2 kb 00:00 Examining /var/tmp/yum-root-ms86bv/pgdg-centos94-9.4-1.noarch.rpm: pgdg-centos94-9.41.noarch Marking /var/tmp/yum-root-ms86bv/pgdg-centos94-9.4-1.noarch.rpm to be installed Resolving Dependencies --> Running transaction check 12 / 77 15 janvier 2015

Installation ---> Package pgdg-centos94.noarch 0:9.4-1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: pgdg-centos94 noarch 9.4-1 /pgdg-centos94-9.4-1.noarch 2.1 k Transaction Summary ================================================================================ Install 1 Package(s) Total size: 2.1 k Installed size: 2.1 k Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : pgdg-centos94-9.4-1.noarch Verifying : pgdg-centos94-9.4-1.noarch 1/1 1/1 Installed: pgdg-centos94.noarch 0:9.4-1 Complete! 2.5. Importation de la clé PKI On affiche le répertoire des clés PKI. ls -als /etc/pki/rpm-gpg/ total 28 4 drwxr-xr-x 2 4 drwxr-xr-x 10 4 -rw-r--r-- 1 4 -rw-r--r-- 1 4 -rw-r--r-- 1 4 -rw-r--r-- 1 4 -rw-r--r-- 1 root root root root root root root root root root root root root root 4096 4096 1706 1730 1730 1734 1726 11 3 30 30 30 30 15 janv. 20:07. janv. 08:31.. nov. 2013 RPM-GPG-KEY-CentOS-6 nov. 2013 RPM-GPG-KEY-CentOS-Debug-6 nov. 2013 RPM-GPG-KEY-CentOS-Security-6 nov. 2013 RPM-GPG-KEY-CentOS-Testing-6 mai 2014 RPM-GPG-KEY-PGDG-94 On importe la clé. rpm --import /etc/pki/rpm-gpg/rpm-gpg-key-pgdg-94 On affiche le nouveau dépôt. On entre /etc/yum.repos.d/pgdg et on fait un [TAB] pour compléter la commande. cat /etc/yum.repos.d/pgdg-94-centos.repo [pgdg94] name=postgresql 9.4 $releasever - $basearch baseurl=http://yum.postgresql.org/9.4/redhat/rhel-$releasever-$basearch enabled=1 gpgcheck=1 13 / 77

SME-9 & installation de Odoo-8 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-pgdg-94 [pgdg94-source] name=postgresql 9.4 $releasever - $basearch - Source failovermethod=priority baseurl=http://yum.postgresql.org/srpms/9.4/redhat/rhel-$releasever-$basearch enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-pgdg-94 2.6. Ajout du dépôt On ajoute le dépôt pgdg à la base de données de dépôts de SME. /sbin/e-smith/db yum_repositories set pgdg94 repository \ Name 'PostgreSQL 9.4' \ BaseURL 'http://yum.postgresql.org/9.4/redhat/rhel-$releasever-$basearch' \ EnableGroups yes \ GPGCheck yes \ GPGKey file:///etc/pki/rpm-gpg/rpm-gpg-key-pgdg-94 \ Visible yes \ status disabled On signale la modification. signal-event yum-modify Vérification. db yum_repositories show pgdg94 pgdg94=repository BaseURL=http://yum.postgresql.org/9.4/redhat/rhel-$releasever-$basearch EnableGroups=yes GPGCheck=yes GPGKey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-94 Name=PostgreSQL 9.4 Visible=yes status=disabled 3. Exclusion des rpm absolete On ne veut pas de rpm "absolete" donc, on les exclut du dépôt de base car autrement on rencontrera des difficultés lorsqu'on fera des mises à jour du Serveur SME. db yum_repositories setprop base Exclude 'initscripts,libgsf,postgresql*' On signale la modification. signal-event yum-modify 14 / 77 15 janvier 2015

Installation Vérification. db yum_repositories show base base=repository EnableGroups=no Exclude=initscripts,libgsf,postgresql* GPGCheck=yes MirrorList=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os Name=CentOS - os Visible=yes status=enabled 4. Installation de PostgreSQL Maintenant on peut procéder à l'installation de PostgreSQL 9.4. yum install -y --enablerepo=pgdg94 postgresql94 postgresql94-libs postgresql94-server \ postgresql94-contrib \ postgresql94-devel \ postgresql94-docs \ postgresql94-test Loaded plugins: fastestmirror, smeserver Loading mirror speeds from cached hostfile * base: centos.mirror.ca.planethoster.net * smeaddons: mirror.canada.pialasse.com * smeextras: mirror.canada.pialasse.com * smeos: mirror.canada.pialasse.com * smeupdates: mirror.canada.pialasse.com * updates: mirror.csclub.uwaterloo.ca pgdg94 3.6 kb 00:00 pgdg94/primary_db 90 kb 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package postgresql94.x86_64 0:9.4.0-1PGDG.rhel6 will be installed ---> Package postgresql94-contrib.x86_64 0:9.4.0-1PGDG.rhel6 will be installed ---> Package postgresql94-devel.x86_64 0:9.4.0-1PGDG.rhel6 will be installed ---> Package postgresql94-docs.x86_64 0:9.4.0-1PGDG.rhel6 will be installed ---> Package postgresql94-libs.x86_64 0:9.4.0-1PGDG.rhel6 will be installed ---> Package postgresql94-server.x86_64 0:9.4.0-1PGDG.rhel6 will be installed ---> Package postgresql94-test.x86_64 0:9.4.0-1PGDG.rhel6 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================= Package Arch Version Repository Size ========================================================================================= Installing: postgresql94 x86_64 9.4.0-1PGDG.rhel6 pgdg94 1.0 M postgresql94-contrib x86_64 9.4.0-1PGDG.rhel6 pgdg94 527 k postgresql94-devel x86_64 9.4.0-1PGDG.rhel6 pgdg94 1.5 M postgresql94-docs x86_64 9.4.0-1PGDG.rhel6 pgdg94 13 M postgresql94-libs x86_64 9.4.0-1PGDG.rhel6 pgdg94 192 k postgresql94-server x86_64 9.4.0-1PGDG.rhel6 pgdg94 4.2 M postgresql94-test x86_64 9.4.0-1PGDG.rhel6 pgdg94 1.3 M Transaction Summary ========================================================================================= Install 7 Package(s) 15 / 77

SME-9 & installation de Odoo-8 Total download size: 22 M Installed size: 71 M Downloading Packages: (1/7): postgresql94-9.4.0-1pgdg.rhel6.x86_64.rpm 1.0 MB 00:02 (2/7): postgresql94-contrib-9.4.0-1pgdg.rhel6.x86_64.rpm 527 kb 00:00 (3/7): postgresql94-devel-9.4.0-1pgdg.rhel6.x86_64.rpm 1.5 MB 00:03 (4/7): postgresql94-docs-9.4.0-1pgdg.rhel6.x86_64.rpm 13 MB 00:28 (5/7): postgresql94-libs-9.4.0-1pgdg.rhel6.x86_64.rpm 192 kb 00:00 (6/7): postgresql94-server-9.4.0-1pgdg.rhel6.x86_64.rpm 4.2 MB 00:07 (7/7): postgresql94-test-9.4.0-1pgdg.rhel6.x86_64.rpm 1.3 MB 00:02 ----------------------------------------------------------------------------------------Total 488 kb/s 22 MB 00:46 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : postgresql94-libs-9.4.0-1pgdg.rhel6.x86_64 1/7 Installing : postgresql94-9.4.0-1pgdg.rhel6.x86_64 2/7 Installing : postgresql94-server-9.4.0-1pgdg.rhel6.x86_64 3/7 Installing : postgresql94-test-9.4.0-1pgdg.rhel6.x86_64 4/7 Installing : postgresql94-contrib-9.4.0-1pgdg.rhel6.x86_64 5/7 Installing : postgresql94-devel-9.4.0-1pgdg.rhel6.x86_64 6/7 Installing : postgresql94-docs-9.4.0-1pgdg.rhel6.x86_64 7/7 Verifying : postgresql94-docs-9.4.0-1pgdg.rhel6.x86_64 1/7 Verifying : postgresql94-server-9.4.0-1pgdg.rhel6.x86_64 2/7 Verifying : postgresql94-contrib-9.4.0-1pgdg.rhel6.x86_64 3/7 Verifying : postgresql94-test-9.4.0-1pgdg.rhel6.x86_64 4/7 Verifying : postgresql94-9.4.0-1pgdg.rhel6.x86_64 5/7 Verifying : postgresql94-libs-9.4.0-1pgdg.rhel6.x86_64 6/7 Verifying : postgresql94-devel-9.4.0-1pgdg.rhel6.x86_64 7/7 Installed: postgresql94.x86_64 0:9.4.0-1PGDG.rhel6 postgresql94-contrib.x86_64 0:9.4.0-1PGDG.rhel6 postgresql94-devel.x86_64 0:9.4.0-1PGDG.rhel6 postgresql94-docs.x86_64 0:9.4.0-1PGDG.rhel6 postgresql94-libs.x86_64 0:9.4.0-1PGDG.rhel6 postgresql94-server.x86_64 0:9.4.0-1PGDG.rhel6 postgresql94-test.x86_64 0:9.4.0-1PGDG.rhel6 Complete! 5. Initialisation de la base de données On initialise la BD pour PostgreSQL. Peut prendre quelques secondes. /etc/init.d/postgresql-9.4 initdb Initialisation de la base de données : [ OK ] [ OK ] 6. Lancement manuel de PostgreSQL On lance PostgreSQL. /etc/init.d/postgresql-9.4 start Démarrage du service postgresql-9.4 : 16 / 77 15 janvier 2015

Installation /etc/init.d/postgresql-9.4 status postgresql-9.4 (pid 19131) en cours d'exécution 7. Lancement à l'amorçage On veut que PostgreSQL se lance à tous les amorçages du Serveur SME. Pour ce faire, on ajoute la commande de démarrage de PostgreSQL à la fin du fichier /etc/rc.d/rc.local. echo /etc/init.d/postgresql-9.4 start >> /etc/rc.d/rc.local cat /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local /etc/init.d/postgresql-9.4 start 17 / 77

SME-9 & installation de Odoo-8 B) Premiers pas 1. Référence Cette section s'est inspiré de l'article suivant: https://wiki.postgresql.org/wiki/first_steps. 2. Connexion On se connecte au Serveur SME en tant que root puis on change d'usager pour devenir l'usager postgres. su - postgres -bash-4.1$ -bash-4.1$ whoami postgres -bash-4.1$ On lance le terminal interactif PostgreSQL. -bash-4.1$ psql psql (9.4.0) Saisissez «help» pour l'aide. postgres=# On vérifie que l'aide fonctionne. postgres=# help Vous utilisez psql, l'interface en ligne de commande de PostgreSQL. Saisissez: \copyright pour les termes de distribution \h pour l'aide-mémoire des commandes SQL \? pour l'aide-mémoire des commandes psql \g ou point-virgule en fin d'instruction pour exécuter la requête \q pour quitter postgres=# 3. SCHEMA Une base de données contient un ou plusieurs schémas nommés, qui eux, contiennent des tables. Les schémas contiennent aussi d'autres types d'objets nommés, y compris des types de données, fonctions et opérateurs. Seul le nom d'objet peut être utilisé sans conflit; par exemple, schema1 et mon_schema peuvent tous les deux conte nir des tables nommées mytable. Contrairement aux bases de données; les schémas ne sont pas séparés de manière rigide: un utilisateur peut accéder aux objets de n'importe lequel des schémas de la base de données aux - 18 / 77 15 janvier 2015

Premiers pas quels il se connecte s'il a les privilèges pour le faire. On crée un schéma qu'on appellera test dans la base de données par défaut appelée postgres. postgres=# CREATE SCHEMA test; CREATE SCHEMA postgres=# 4. RÔLE Un rôle est une entité qui peut posséder des objets de la base de données et avoir des droits sur la base. Il peut être considéré comme un "utilisateur", un "groupe" ou les deux suivant la façon dont il est utilisé. On crée un rôle (user) avec un mot de passe. postgres=# CREATE USER michelandre PASSWORD 'toto'; CREATE ROLE postgres=# 5. GRANT La commande GRANT a deux variantes basiques: la première donne des droits sur un objet de la base de don nées (table, vue, séquence, base de données, fonction, langage de procédure, schéma ou espace logique), la seconde gère les appartenances à un rôle. On donne, au nouveau rôle, tous les droits (tel que la possibilité de créer des tables) sur le nouveau schéma. postgres=# GRANT ALL ON SCHEMA test TO michelandre; GRANT postgres=# On donne, au nouveau rôle, tous les droits (tel que la possibilité d 'insertion) sur toutes les tables du nouveau schéma. postgres=# GRANT ALL ON ALL TABLES IN SCHEMA test TO michelandre; GRANT postgres=# 6. Déconnexion On se déconnecte. postgres=# \q -bash-4.1$ Nous sommes encore logué en tant qu'usager postgres. 7. Création d'un usager standard 7.1. Création On peut utiliser Server Manager pour créer un usager mais ici on utilise adduser. Avec la création de son répertoire personnel dans /home/e-smith/files/users/michelandre, l'usager miche- landre sera sauvegardé avec une sauvegarde standard du Serveur SME. 19 / 77

SME-9 & installation de Odoo-8 Avec le shell /bin/bash, l'usager michelandre pourra lancer toutes les commandes disponibles. Appartenant au groupe shared, l'usager michelandre pourra accéder au répertoire de l'i-bay Primary/html. On retourne à l'usager root pour créer le nouvel usager. -bash-4.1$ exit logout On vérifie qu"on est bien l'usager root. whoami root On crée l'usager michelandre. adduser michelandre --home /home/e-smith/files/users/michelandre --groups shared --shell /bin/bash \ \ \ -d, --home RÉP_PERSO Le nouvel utilisateur sera créé en utilisant RÉP_PERSO comme valeur de répertoire de connexion de l utilisateur. Le comportement par défaut est de concaténer UTILISATEUR au répertoire RÉP_BASE, et de l utiliser en tant que nom de répertoire de connexion. Il n est pas nécessaire que le répertoire RÉP_PERSO existe mais il ne sera pas créé s il n existe pas. -G, --groups GROUPE1[,GROUPE2,[,GROUPEN]]] Liste de groupes supplémentaires auxquels appartient également l utilisateur. Chaque groupe est séparé du suivant par une virgule, sans espace entre eux. Les groupes sont soumis aux mêmes restrictions que celles de l option -g. Le comportement par défaut pour l utilisateur est de n appartenir qu au groupe initial. -s, --shell INTERPRÉTEUR Le nom de l interpréteur de commandes initial de l utilisateur («login shell»). Le comportement par défaut est de laisser ce champ vide. Le système sélectionnera alors l interpréteur par défaut indiqué par la variable SHELL dans /etc/default/useradd, ou une chaîne vide par défaut. 7.2. Mot de passe Pour notre démonstration, on utilise le mot de passe préféré du fameux Général Toto. passwd michelandre Changement de mot de passe pour l'utilisateur michelandre. Entrez le nouveau mot de passe UNIX :fghtbgh Retapez le nouveau mot de passe UNIX :fghtbgh passwd : mise à jour réussie de tous les jetons d'authentification. 20 / 77 15 janvier 2015

Premiers pas On vérifie la création de l'usager. cat /etc/passwd grep michelandre michelandre:x:3000:3000::/home/e-smith/files/users/michelandre:/bin/bash On vérifie les groupes de michelandre. cat /etc/group grep michelandre shared:x:500:www,admin,public,michelandre michelandre:x:3000: 7.3. Shell par défaut Si, lors du changement d'usager, l'écran ci-dessous s'affiche c'est que le shell de l'usager est /usr/bin/rssh qui est un shell réduit et qui permet aux clients connectés au serveur de ne faire qu'un nombre limité de com mandes. -bash-4.1$ su - michelandre Mot de passe : This account is restricted by rssh. Allowed commands: scp sftp cvs rdist rsync If you believe this is in error, please contact your system administrator. -bash-4.1$ cat /etc/passwd grep michelandre michelandre:x:5000:5000:michel-andre Robillard:/home/esmith/files/users/michelandre:/usr/bin/rssh On peut modifier le shell de l'usager avec la commande suivante. usermod -s /bin/bash michelandre cat /etc/passwd grep michelandre michelandre:x:5000:5000:michel-andre Robillard:/home/esmith/files/users/michelandre:/bin/bash Il est à noter que si on lance les commandes signal-event post-upgrade; signal-event reboot, le shell par défaut qui était /usr/bin/rssh sera remis aux usagers qui l'avaient auparavant. 21 / 77

SME-9 & installation de Odoo-8 7.4. On devient un usager standard (michelandre) On change d'usager. su - michelandre [michelandre@sme-9 ~]$ Si nous ne sommes pas root et que nous changeons d'usager, il faudra entrer le mot de passe demandé qui est alors celui donné par le Serveur SME. -bash-4.1$ su - michelandre Mot de passe : -bash-4.1$ 8. Connexion à la BD avec un usager standard Par défaut, le mode d'authentification pour se loguer dans PostgreSQL est "ident" qui signifie qu'un usager xxx de Linux ne peut se connecter qu'en tant qu'usager PostgreSQL xxx. On se logue, en tant qu'usager ordinaire (michelandre qui a été créé précédemment dans PostgreSQL par l'usager postgres) à la base de données par défaut postgres. [michelandre@sme-9 ~]$ psql -d postgres psql (9.4.0) Saisissez «help» pour l'aide. postgres=> 8.1. HELP On essaie l'aide. postgres=> HELP Vous utilisez psql, l'interface en ligne de commande de PostgreSQL. Saisissez: \copyright pour les termes de distribution \h pour l'aide-mémoire des commandes SQL \? pour l'aide-mémoire des commandes psql \g ou point-virgule en fin d'instruction pour exécuter la requête \q pour quitter postgres=> 8.2. CREATE On crée une table test dans le schéma test. postgres=> CREATE TABLE test.test (coltest varchar(20)); CREATE TABLE postgres=> 22 / 77 15 janvier 2015

Premiers pas 8.3. INSERT On insère une entrée dans la nouvelle table. postgres=> insert into test.test (coltest) values ('It works!'); INSERT 0 1 postgres=> 8.4. SELECT Sélection depuis une table. postgres=> SELECT * from test.test; coltest ----------It works! (1 ligne) postgres=> 8.5. DROP On efface une table. postgres=> DROP TABLE test.test; DROP TABLE postgres=> 8.6. Déconnexion On se déconnecte. postgres=> \q [michelandre@sme-9 ~]$ Tout semble bien fonctionner. 23 / 77

SME-9 & installation de Odoo-8 C) Configuration finale de PostgreSQL 1. MD5 Maintenant, il nous faut configurer PostgreSQL pour qu'il accepte les connexions avec mots de passe chiffrés MD5 pour être ainsi compatible avec les modules Python. [michelandre@sme-9 ~]$ whoami michelandre [michelandre@sme-9 ~]$ On retourne à l'usager root. [michelandre@sme-9 ~]$ exit logout On vérifie si on est bien root. whoami root En tant qu'usager root, on substitue ident pour md5 dans le fichier pg_hba.conf. sed -i "/^host/s/ident/md5/g" /var/lib/pgsql/9.4/data/pg_hba.conf cat /var/lib/pgsql/9.4/data/pg_hba.conf grep md5 # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", # "password" sends passwords in clear text; "md5" is preferred since host all all 127.0.0.1/32 md5 host all all ::1/128 md5 24 / 77 15 janvier 2015

Configuration finale de PostgreSQL 2. Création de l'usager odoo dans PostgreSQL On peut choisir le mot de passe qu'on veut mais l'important est de le mémoriser. De plus, il est préférable qu'il réponde aux normes de SME pour les mots de passe. Pour notre démonstration, on choisit "fghtbgh" qui est le mot de passe préféré du fameux Général Toto. echo -e "fghtbgh\nfghtbgh\n" su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo" Saisir le mot de passe pour le nouveau rôle : Le saisir de nouveau : L'usager odoo a été créer dans PostgreSQL par l'usager postgres et non dans le Serveur SME; il n'apparaît pas dans /etc/passwd. cat /etc/passwd grep odoo 25 / 77

SME-9 & installation de Odoo-8 III- Python 1. Dépendances Odoo nécessite une version moderne de Python et beaucoup de bibliothèques supplémentaires. Potentiellement celles-ci pourraient entrer en conflit avec les bibliothèques Python fournis dans SME-9 et qui sont invoquées par les outils d'administration. Donc, pour éviter ce risque, nous allons créer un environnement virtuel sous le compte utilisateur du système Odoo qui sera utilisé uniquement par le serveur Odoo. Premièrement, commençons par installer quelques dépendances de paquetages: En tant qu'usager root. yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libffi-devel libxslt libxslt-devel libxml2 libxml2-devel openldap-devel libjpeg-turbo-devel openjpeg-devel libtiff-devel git libpng libxext libz.so.1 xorg-x11-fonts-type1 curl Loaded plugins: fastestmirror, smeserver Loading mirror speeds from cached hostfile * base: less.cogeco.net * smeaddons: mirror.canada.pialasse.com * smeextras: mirror.canada.pialasse.com * smeos: mirror.canada.pialasse.com * smeupdates: mirror.canada.pialasse.com * updates: less.cogeco.net Setting up Install Process --> Finished Dependency Resolution Dependencies Resolved ============================================================================================ Package Arch Version Repository Size ============================================================================================ Installing: bzip2-devel x86_64 1.0.5-7.el6_0 base 250 k gcc x86_64 4.4.7-11.el6 base 10 M git x86_64 1.7.1-3.el6_4.1 base 4.6 M libxext x86_64 1.3.2-2.1.el6 base 35 k libffi-devel x86_64 3.0.5-3.2.el6 base 18 k libjpeg-turbo-devel x86_64 1.2.1-3.el6_5 base 96 k libtiff-devel x86_64 3.9.4-10.el6_5 base 468 k Transaction Summary =========================================================================================== Install 54 Package(s) Upgrade 30 Package(s) Total download size: 68 M Downloading Packages: (1/84): bzip2-devel-1.0.5-7.el6_0.x86_64.rpm 250 kb 00:00 (2/84): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm 93 kb 00:00 (84/84): zlib-devel-1.2.3-29.el6.x86_64.rpm 44 kb 00:00 -------------------------------------------------------------------------------------------- 26 / 77 15 janvier 2015

Python Total Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : libgcc-4.4.7-11.el6.x86_64 Updating : nss-softokn-freebl-3.14.3-18.el6_6.x86_64 Verifying : cyrus-sasl-2.1.23-15.el6_6.1.x86_64 Verifying : cyrus-sasl-devel-2.1.23-15.el6_6.1.x86_64 Verifying : glibc-headers-2.12-1.132.el6_5.2.x86_64 451 kb/s 68 MB 02:34 1/114 2/114 1/114 2/114 114/114 Installed: bzip2-devel.x86_64 0:1.0.5-7.el6_0 gcc.x86_64 0:4.4.7-11.el6 git.x86_64 0:1.7.1-3.el6_4.1 libxext.x86_64 0:1.3.2-2.1.el6 Dependency Installed: cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-11.el6 cyrus-sasl-devel.x86_64 0:2.1.23-15.el6_6.1 fontconfig.x86_64 0:2.8.0-5.el6 Updated: curl.x86_64 0:7.19.7-40.el6_6.3 libxml2.x86_64 0:2.7.6-17.el6_6.1 wget.x86_64 0:1.12-5.el6_6.1 Dependency Updated: cyrus-sasl.x86_64 0:2.1.23-15.el6_6.1 cyrus-sasl-md5.x86_64 0:2.1.23-15.el6_6.1 e2fsprogs-libs.x86_64 0:1.41.12-21.el6 glibc-common.x86_64 0:2.12-1.149.el6_6.4 glibc-headers.x86_64 0:2.12-1.149.el6_6.4 keyutils-libs.x86_64 0:1.4-5.el6 libx11.x86_64 0:1.6.0-2.2.el6 libcom_err.x86_64 0:1.41.12-21.el6 libgcc.x86_64 0:4.4.7-11.el6 libselinux-utils.x86_64 0:2.0.94-5.8.el6 libxcb.x86_64 0:1.9.1-2.el6 nss-softokn-freebl.x86_64 0:3.14.3-18.el6_6 openldap-clients.x86_64 0:2.4.39-8.el6 openssl.x86_64 0:1.0.1e-30.el6_6.4 cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.1 e2fsprogs.x86_64 0:1.41.12-21.el6 glibc.x86_64 0:2.12-1.149.el6_6.4 glibc-devel.x86_64 0:2.12-1.149.el6_6.4 keyutils.x86_64 0:1.4-5.el6 krb5-libs.x86_64 0:1.10.3-33.el6 libx11-common.noarch 0:1.6.0-2.2.el6 libcurl.x86_64 0:7.19.7-40.el6_6.3 libselinux.x86_64 0:2.0.94-5.8.el6 libss.x86_64 0:1.41.12-21.el6 nscd.x86_64 0:2.12-1.149.el6_6.4 openldap.x86_64 0:2.4.39-8.el6 openldap-servers.x86_64 0:2.4.39-8.el6 Complete! 1.1. cabextract cabextract est nécessaire pour l'extraction des fichiers de polices et la commande yum ne le trouvera pas dans ses dépôts. Par contre, on peut se rendre au site: http://pkgs.repoforge.org/cabextract/, choisir le fichier désiré, extraire son adresse de téléchargement et construire la commande ci-dessous pour l'installer. Avec un clac (clic doit de la souris) sur cabextract-1.4-1.el6.rf.x86_64.rpm et choisissant Copier l'adresse du lien donne comme adresse de téléchargement pour RHEL6 and CentOS-6 x86 64bit: http://pkgs.repoforge.org/cabextract/cabextract-1.4-1.el6.rf.x86_64.rpm et on peut alors indiquer l'adresse à yum. 27 / 77

SME-9 & installation de Odoo-8 yum install -y http://pkgs.repoforge.org/cabextract/cabextract-1.41.el6.rf.x86_64.rpm Loaded plugins: fastestmirror, smeserver Loading mirror speeds from cached hostfile * base: centos.mirror.rafal.ca * smeaddons: mirror.canada.pialasse.com * smeextras: mirror.canada.pialasse.com * smeos: mirror.canada.pialasse.com * smeupdates: mirror.canada.pialasse.com * updates: less.cogeco.net Setting up Install Process cabextract-1.4-1.el6.rf.x86_64.rpm 46 kb 00:00 Examining /var/tmp/yum-root-gkbtuk/cabextract-1.4-1.el6.rf.x86_64.rpm: cabextract-1.41.el6.rf.x86_64 Marking /var/tmp/yum-root-gkbtuk/cabextract-1.4-1.el6.rf.x86_64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package cabextract.x86_64 0:1.4-1.el6.rf will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================ Package Arch Version Repository Size ============================================================================================ Installing: cabextract x86_64 1.4-1.el6.rf /cabextract-1.4-1.el6.rf.x86_64 97 k Transaction Summary ============================================================================================ Install 1 Package(s) Total size: 97 k Installed size: 97 k Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : cabextract-1.4-1.el6.rf.x86_64 Verifying : cabextract-1.4-1.el6.rf.x86_64 1/1 1/1 Installed: cabextract.x86_64 0:1.4-1.el6.rf Complete! 28 / 77 15 janvier 2015

wkhtmltopdf A) wkhtmltopdf 1. Introduction Nous avons aussi besoin du paquetage wkhtmltopdf afin de générer des rapports PDF dans Odoo. 2. Dépendance wkhtmltopdf a une dépendance à xorg-x11-fonts-75dpi. En tant qu'usager root. yum install -y xorg-x11-fonts-75dpi Loaded plugins: fastestmirror, smeserver Loading mirror speeds from cached hostfile * base: mirror.science.uottawa.ca * smeaddons: mirror.canada.pialasse.com * smeextras: mirror.canada.pialasse.com * smeos: mirror.canada.pialasse.com * smeupdates: mirror.canada.pialasse.com * updates: mirror.science.uottawa.ca Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package xorg-x11-fonts-75dpi.noarch 0:7.2-9.1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================== Package Arch Version Repository Size ========================================================================================== Installing: xorg-x11-fonts-75dpi noarch 7.2-9.1.el6 base 2.8 M Transaction Summary ========================================================================================== Install 1 Package(s) Total download size: 2.8 M Installed size: 2.9 M Is this ok [y/n]: y Downloading Packages: xorg-x11-fonts-75dpi-7.2-9.1.el6.noarch.rpm Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : xorg-x11-fonts-75dpi-7.2-9.1.el6.noarch Verifying : xorg-x11-fonts-75dpi-7.2-9.1.el6.noarch 2.8 MB 00:04 1/1 1/1 Installed: xorg-x11-fonts-75dpi.noarch 0:7.2-9.1.el6 Complete! 29 / 77

SME-9 & installation de Odoo-8 3. Installation de wkhtmltopdf Le lien dans la commande est pour la version 64 bits de SME-9. Pour la version 32bit il n'y a qu'à remplacer "amd64" par "i386" dans le nom du fichier ci-dessous. (Cette commande prend un certain temps à compléter.) rpm -ivh http://sourceforge.net/projects/wkhtmltopdf/files/0.12.2/wkhtmltox0.12.2_linux-centos6-amd64.rpm Récupération de http://sourceforge.net/projects/wkhtmltopdf/files/0.12.2/wkhtmltox0.12.2_linux-centos6-amd64.rpm Préparation ########################################### [100%] 1:wkhtmltox ########################################### [100%] On vérifie la commande de lancement. ls -als /usr/local/bin/wkhtmltopdf 35552 -rwxr-xr-x 1 root root 36404496 9 janv. 08:27 /usr/local/bin/wkhtmltopdf 3.1. Création d'un lien Nous allons créer un lien dans le répertoire /usr/bin pointant vers wkhtmltopdf. ln -s /usr/local/bin/wkhtmltopdf /usr/bin/ ls -als /usr/bin/wkhtmltopdf 0 lrwxrwxrwx 1 root root 26 12 janv. 11:43 /usr/bin/wkhtmltopdf -> /usr/local/bin/wkhtmltopdf 4. Facultatif Vous pouvez installer les polices de base de Microsoft afin qu'elles soient disponibles lorsque vous générez des rapports dans Odoo. Nous devons d'abord installer quelques dépendances, puis le gestionnaire msttcore-fontsinstaller télécharge les polices de sourceforge, les installe et les active sur votre Serveur SME. 4.1. Pour les 64 bit (x86) seulement rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmspack-0.40.1.alpha.el6.x86_64.rpm Récupération de http://dl.fedoraproject.org/pub/epel/6/x86_64/libmspack-0.40.1.alpha.el6.x86_64.rpm Préparation ########################################### [100%] 1:libmspack ########################################### [100%] rpm -ivh https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.61.noarch.rpm Récupération de https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fontsinstaller-2.6-1.noarch.rpm 30 / 77 15 janvier 2015

wkhtmltopdf Préparation ########################################### [100%] 1:msttcore-fonts-installe########################################### [100%] ### Adding fonts to Xft ### Indexing the new fonts for Xft /usr/share/fonts: caching, new cache contents: 0 fonts, 1 dirs /usr/share/fonts/msttcore: caching, new cache contents: 54 fonts, 0 dirs /usr/share/x11/fonts/type1: caching, new cache contents: 13 fonts, 0 dirs /usr/share/x11/fonts/ttf: skipping, no such directory /usr/local/share/fonts: skipping, no such directory /root/.fonts: skipping, no such directory /var/cache/fontconfig: cleaning cache directory /root/.fontconfig: not cleaning non-existent cache directory /usr/bin/fc-cache: succeeded ### Removing tmp directory /tmp/refresh-msttcore-fonts-evrxgi 4.2. Pour les 32 bit (i386) seulement rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmspack-0.4-0.1.alpha.el6.i686.rpm rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/cabextract-1.3-3.el6.i686.rpm rpm -ivh https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fontsinstaller-2.6-1.noarch.rpm 31 / 77

SME-9 & installation de Odoo-8 B) Python 2.7.8 de source 1. Introduction Maintenant, nous allons télécharger et installer Python 2.7.8 à partir de la source. La première commande supprime toutes installations précédentes de python2.7 installées lors de tentatives précédentes. Après la compilation nous utilisons "altinstall" pour éviter d'écraser l'installation de python par défaut du Serveur SME. Nous ferons le "build" de Python dans le répertoire personnel de l'utilisateur root car certaines distributions CentOS empêchent l'exécution des programmes compilés en C dans le répertoire /tmp/ pour des raisons de sécurité (voir: "noexec" dans /etc/fstab). 2. Effaçage des anciens essais Juste au cas ou ce ne serait pas notre premier essai d'installation. rm -r /usr/local/lib/python2.7 rm: impossible de supprimer «/usr/local/lib/python2.7»: Aucun fichier ou dossier de ce type 3. Téléchargement On doit être connecté au serveur en tant que l'usager root. On s'assure qu'on est bien dans le répertoire personnel de root. cd pwd /root On télécharge. wget http://python.org/ftp/python/2.7.8/python-2.7.8.tgz --2015-01-10 19:15:13-- http://python.org/ftp/python/2.7.8/python-2.7.8.tgz Résolution de python.org 104.130.43.121, 2001:4802:7901:0:e60a:1375:0:5 Connexion vers python.org 104.130.43.121 :80connecté. requête HTTP transmise, en attente de la réponse301 Moved Permanently Emplacement: https://python.org/ftp/python/2.7.8/python-2.7.8.tgz [suivant] --2015-01-10 19:15:14-- https://python.org/ftp/python/2.7.8/python-2.7.8.tgz Connexion vers python.org 104.130.43.121 :443connecté. 32 / 77 15 janvier 2015

Python 2.7.8 de source requête HTTP transmise, en attente de la réponse301 Moved Permanently Emplacement: https://www.python.org/ftp/python/2.7.8/python-2.7.8.tgz [suivant] --2015-01-10 19:15:14-- https://www.python.org/ftp/python/2.7.8/python-2.7.8.tgz Résolution de www.python.org 23.235.44.223 Connexion vers www.python.org 23.235.44.223 :443connecté. requête HTTP transmise, en attente de la réponse200 OK Longueur: 14846119 (14M) [application/octet-stream] Sauvegarde en : «Python-2.7.8.tgz» 100%[========================================================>] 14 846 119 592K/s ds 25s 2015-01-10 19:15:39 (584 KB/s) - «Python-2.7.8.tgz» sauvegardé [14846119/14846119] ls -als Python-2.7.8.tgz 14500 -rw-r--r-- 1 root root 14846119 29 juin 2014 Python-2.7.8.tgz On extrait. tar -zxf Python-2.7.8.tgz On se rend dans le répertoire créé par l'extraction. cd Python-2.7.8 [root@sme-9 Python-2.7.8]# [root@sme-9 Python-2.7.8]# pwd /root/python-2.7.8 [root@sme-9 Python-2.7.8]# 4../configure [root@sme-9 Python-2.7.8]#./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,rpath /usr/local/lib" checking build system type x86_64-unknown-linux-gnu checking host system type x86_64-unknown-linux-gnu checking for --enable-universalsdk no checking for --with-universal-archs 32-bit checking MACHDEP linux2 checking EXTRAPLATDIR checking for --without-gcc no checking for build directories done configure: creating./config.status config.status: creating Makefile.pre config.status: creating Modules/Setup.config config.status: creating Misc/python.pc config.status: creating Modules/ld_so_aix 33 / 77

SME-9 & installation de Odoo-8 config.status: creating pyconfig.h creating Modules/Setup creating Modules/Setup.local creating Makefile [root@sme-9 Python-2.7.8]# 5. make [root@sme-9 Python-2.7.8]# make gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrictprototypes -I. -IInclude -I./Include -fpic -DPy_BUILD_CORE -o Modules/python.o./Modules/python.c gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrictprototypes -I. -IInclude -I./Include -fpic -DPy_BUILD_CORE -o Parser/acceler.o Parser/acceler.c gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrictprototypes -I. -IInclude -I./Include -fpic -DPy_BUILD_CORE -o Parser/grammar1.o Parser/grammar1.c gcc -pthread -shared -Wl,-rpath /usr/local/lib build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/_ctypes.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/callbacks.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/callproc.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/stgdict.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/cfield.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/libffi/src/prep_cif.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/libffi/src/closures.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/libffi/src/x86/ffi64.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/libffi/src/x86/unix64.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/libffi/src/x86/ffi.o build/temp.linux-x86_64-2.7/root/python2.7.8/modules/_ctypes/libffi/src/x86/sysv.o -L/usr/local/lib -L. -lpython2.7 -o build/lib.linux-x86_64-2.7/_ctypes.so Python build finished, but the necessary bits to build these modules were not found: bsddb185 dl imageop sunaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name. running build_scripts creating build/scripts-2.7 copying and adjusting /root/python-2.7.8/tools/scripts/pydoc -> build/scripts-2.7 copying and adjusting /root/python-2.7.8/tools/scripts/idle -> build/scripts-2.7 copying and adjusting /root/python-2.7.8/tools/scripts/2to3 -> build/scripts-2.7 copying and adjusting /root/python-2.7.8/lib/smtpd.py -> build/scripts-2.7 changing mode of build/scripts-2.7/pydoc from 644 to 755 changing mode of build/scripts-2.7/idle from 644 to 755 changing mode of build/scripts-2.7/2to3 from 644 to 755 changing mode of build/scripts-2.7/smtpd.py from 644 to 755 /usr/bin/install -c -m 644./Tools/gdb/libpython.py python-gdb.py [root@sme-9 Python-2.7.8]# 6. make altinstall [root@sme-9 Python-2.7.8]# make altinstall /usr/bin/install -c python /usr/local/bin/python2.7 if test -f libpython2.7.so; then \ if test -n "" ; then \ /usr/bin/install -c -m 555 /usr/local/bin; \ else \ /usr/bin/install -c -m 555 libpython2.7.so 34 / 77 15 janvier 2015

Python 2.7.8 de source /usr/local/lib/libpython2.7.so.1.0; \ if test libpython2.7.so!= libpython2.7.so.1.0; then \ (cd /usr/local/lib; ln -sf libpython2.7.so.1.0 libpython2.7.so) \ fi \ fi; \ else true; \ fi running build running build_ext building dbm using gdbm Python build finished, but the necessary bits to build these modules were not found: bsddb185 dl imageop sunaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name. running build_scripts Creating directory /usr/local/lib/python2.7 Creating directory /usr/local/lib/python2.7/lib-tk Creating directory /usr/local/lib/python2.7/lib-tk/test running install_scripts copying build/scripts-2.7/pydoc -> /usr/local/bin copying build/scripts-2.7/smtpd.py -> /usr/local/bin copying build/scripts-2.7/2to3 -> /usr/local/bin copying build/scripts-2.7/idle -> /usr/local/bin changing mode of /usr/local/bin/pydoc to 755 changing mode of /usr/local/bin/smtpd.py to 755 changing mode of /usr/local/bin/2to3 to 755 changing mode of /usr/local/bin/idle to 755 running install_egg_info Writing /usr/local/lib/python2.7/lib-dynload/python-2.7.8-py2.7.egg-info rm /usr/local/lib/python2.7/lib-dynload/_sysconfigdata.py* [root@sme-9 Python-2.7.8]# 35 / 77

SME-9 & installation de Odoo-8 IV- virtualenv 1. Installation Avec Python installé avec succès, il est temps d'ajouter l'environnement virtuel Python (virtualenv) et le module utilitaire d'installation de PIP. wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O /usr/local/bin/python2.7 --2015-01-10 19:34:10-- https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py Résolution de bitbucket.org 131.103.20.167, 131.103.20.168 Connexion vers bitbucket.org 131.103.20.167 :443connecté. requête HTTP transmise, en attente de la réponse200 OK Longueur: 10479 (10K) [text/plain] Sauvegarde en : «STDOUT» 100%[=========================================================>] 10 479 --.-K/s ds 0s 2015-01-10 19:34:12 (372 MB/s) - envoi vers sortie standard [10479/10479] Downloading https://pypi.python.org/packages/source/s/setuptools/setuptools-11.3.1.zip Extracting in /tmp/tmpolhged Now working in /tmp/tmpolhged/setuptools-11.3.1 Installing Setuptools running install Installing easy_install script to /usr/local/bin Installing easy_install-2.7 script to /usr/local/bin Installed /usr/local/lib/python2.7/site-packages/setuptools-11.3.1-py2.7.egg Processing dependencies for setuptools==11.3.1 Finished processing dependencies for setuptools==11.3.1 1.1. pip virtualenv /usr/local/bin/easy_install-2.7 pip virtualenv Searching for pip Reading https://pypi.python.org/simple/pip/ /usr/local/lib/python2.7/site-packages/setuptools-11.3.1py2.7.egg/pkg_resources/ init.py:2510: PEP440Warning: 'pip (dev)' is being parsed as a legacy, non PEP 440, version. You may find odd behavior and sort order. In particular it will be sorted as less than 0.0. It is recommend to migrate to PEP 440 compatible versions. Best match: pip 6.0.6 Downloading https://pypi.python.org/packages/source/p/pip/pip6.0.6.tar.gz#md5=bbb17814bdf82187f46aaf9cec6b6caa Processing pip-6.0.6.tar.gz Writing /tmp/easy_install-rg7dhs/pip-6.0.6/setup.cfg Running pip-6.0.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-rg7dhs/pip-6.0.6/eggdist-tmp-puwyvc 36 / 77 15 janvier 2015

virtualenv warning: no previously-included files found matching '.coveragerc' warning: no previously-included files found matching '.mailmap' warning: no previously-included files found matching '.travis.yml' warning: no previously-included files found matching 'pip/_vendor/makefile' warning: no previously-included files found matching 'tox.ini' warning: no previously-included files found matching 'dev-requirements.txt' no previously-included directories found matching '.travis' no previously-included directories found matching 'docs/_build' no previously-included directories found matching 'contrib' no previously-included directories found matching 'tasks' no previously-included directories found matching 'tests' creating /usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg Extracting pip-6.0.6-py2.7.egg to /usr/local/lib/python2.7/site-packages Adding pip 6.0.6 to easy-install.pth file Installing pip script to /usr/local/bin Installing pip2.7 script to /usr/local/bin Installing pip2 script to /usr/local/bin Installed /usr/local/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg Processing dependencies for pip Finished processing dependencies for pip Searching for virtualenv Reading https://pypi.python.org/simple/virtualenv/ Best match: virtualenv 12.0.5 Downloading https://pypi.python.org/packages/source/v/virtualenv/virtualenv12.0.5.tar.gz#md5=637abbbd04d270ee8c601ab29c4f7561 Processing virtualenv-12.0.5.tar.gz Writing /tmp/easy_install-x4vcfc/virtualenv-12.0.5/setup.cfg Running virtualenv-12.0.5/setup.py -q bdist_egg --dist-dir /tmp/easy_installx4vcfc/virtualenv-12.0.5/egg-dist-tmp-7ddaxp warning: no previously-included files matching '*' found under directory 'docs/_templates' warning: no previously-included files matching '*' found under directory 'docs/_build' creating /usr/local/lib/python2.7/site-packages/virtualenv-12.0.5-py2.7.egg Extracting virtualenv-12.0.5-py2.7.egg to /usr/local/lib/python2.7/site-packages Adding virtualenv 12.0.5 to easy-install.pth file Installing virtualenv script to /usr/local/bin Installing virtualenv-2.7 script to /usr/local/bin Installed /usr/local/lib/python2.7/site-packages/virtualenv-12.0.5-py2.7.egg Processing dependencies for virtualenv Finished processing dependencies for virtualenv 2. Usager standard odoo Maintenant, nous allons créer un utilisateur standard odoo et configurer l'environnement virtuel. 2.1. Création de l'usager Avec la création de son répertoire personnel dans /home/e-smith/files/users/odoo, l'usager odoo sera sauve- gardé avec une sauvegarde standard du Serveur SME. En étant dans le groupe shared, l'usager odoo pourra écrire dans le répertoire html de l'i-bay Primary. Avec le shell /bin/bash, l'usager odoo pourra lancer toutes les commandes disponibles. adduser odoo --home /home/e-smith/files/users/odoo --groups shared --shell /bin/bash \ \ \ 37 / 77

SME-9 & installation de Odoo-8 -d, --home RÉP_PERSO Le nouvel utilisateur sera créé en utilisant RÉP_PERSO comme valeur de répertoire de connexion de l utilisateur. Le comportement par défaut est de concaténer UTILISATEUR au répertoire RÉP_BASE, et de l utiliser en tant que nom de répertoire de connexion. Il n est pas nécessaire que le répertoire RÉP_PERSO existe mais il ne sera pas créé s il n existe pas. -G, --groups GROUPE1[,GROUPE2,[,GROUPEN]]] Liste de groupes supplémentaires auxquels appartient également l utilisateur. Chaque groupe est séparé du suivant par une virgule, sans espace entre eux. Les groupes sont soumis aux mêmes restrictions que celles de l option -g. Le comportement par défaut pour l utilisateur est de n appartenir qu au groupe initial. -s, --shell INTERPRÉTEUR Le nom de l interpréteur de commandes initial de l utilisateur («login shell»). Le comportement par défaut est de laisser ce champ vide. Le système sélectionnera alors l interpréteur par défaut indiqué par la variable SHELL dans /etc/default/useradd, ou une chaîne vide par défaut. 2.2. Mot de passe Pour notre démonstration, encore une fois on utilise le mot de passe préféré du fameux Général Toto. passwd odoo Changement de mot de passe pour l'utilisateur odoo. Entrez le nouveau mot de passe UNIX :fghtbgh Retapez le nouveau mot de passe UNIX :fghtbgh passwd : mise à jour réussie de tous les jetons d'authentification. 2.3. Création des répertoires DIR="/var/run/odoo /var/log/odoo /home/e-smith/files/ibays/primary/html/odoo /home/e-smith/files/ibays/primary/html/andromeda-addons" for NAME in $DIR do if [! -d $NAME ]; then mkdir $NAME chown odoo.odoo $NAME fi done ls -alsd /var/run/odoo 4 drwxr-xr-x 2 odoo odoo 4096 10 janv. 19:43 /var/run/odoo ls -alsd /var/log/odoo 4 drwxr-xr-x 2 odoo odoo 4096 10 janv. 19:43 /var/log/odoo ls -alsd /home/e-smith/files/ibays/primary/html/odoo 4 drwxr-sr-x 2 odoo odoo 4096 10 janv. 19:43 /home/e-smith/files/ibays/primary/html/odoo 38 / 77 15 janvier 2015

virtualenv ls -alsd /home/e-smith/files/ibays/primary/html/andromeda-addons 4 drwxr-sr-x 2 odoo odoo 4096 10 janv. 19:43 /home/esmith/files/ibays/primary/html/andromeda-addons 39 / 77

SME-9 & installation de Odoo-8 A) Modules Python 1. Installation des modules dans un environnement virtuel Pour bien rouler, Odoo nécessite beaucoup de modules Python. Maintenant que l'environnement virtuel Python a été installé, nous devons y ajouter tous les modules supplémentaires requis. Note importante pour les utilisateurs de cpanel & WHM: Si votre fournisseur d'hébergement utilise cpanel & WHM comme gestionnaire de votre serveur, vous devez activer l'accès au compilateur pour l'utilisateur odoo sinon l'installation de Python et des modules supplémentaires échouera. Voir ici pour des instructions sur la façon de permettre l'accès au compilateur. Vous pouvez désactiver l'accès au compilateur après l'installation de Odoo. Tout d'abord nous allons passer de l'usager root à celui de odoo. Ensuite nous allons créer un nouvel environnement virtuel qu'on nommera odoo et enfin nous allons l'activer. Les commandes de cette section doivent être exécutées en tant qu'utilisateur odoo. 2. Usager odoo Changement d'usager. su - odoo [odoo@sme-9 ~]$ on vérifie. [odoo@sme-9 ~]$ whoami odoo [odoo@sme-9 ~]$ [odoo@sme-9 ~]$ pwd /home/e-smith/files/users/odoo [odoo@sme-9 ~]$ 3. Création d'un nouvel environnement virtuel On crée le nouvel environnement virtuel et on le nomme odoo. [odoo@sme-9 ~]$ /usr/local/bin/virtualenv --python=/usr/local/bin/python2.7 odoo Already using interpreter /usr/local/bin/python2.7 New python executable in odoo/bin/python2.7 Also creating executable in odoo/bin/python Installing setuptools, pipdone. [odoo@sme-9 ~]$ 40 / 77 15 janvier 2015

Modules Python On active le nouvel environnement virtuel. [odoo@sme-9 ~]$ source odoo/bin/activate (odoo)[odoo@sme-9 ~]$ 4. Chemin Avant de commencer l'installation du module, nous devons ajouter le chemin vers les binaires de PostgreSQL, sinon l'installation du module PsycoPG2 échouera. ATTENTION: Si on a installé une version plus à jour que psql-9.4, il faut ajuster la commande. (odoo)[odoo@sme-9 ~]$ export PATH=/usr/pgsql-9.4/bin:$PATH (odoo)[odoo@sme-9 ~]$ 5. Installation des modules Maintenant, nous allons installer tous les modules Python. Notez que nous remplaçons PIL par pillow - qui est un "fork" qui supporte beaucoup mieux PIL et qui travaille bien avec l'emplacement des bibliothèques de développement de CentOS. (odoo)[odoo@sme-9 ~]$ pip install http://download.gna.org/pychart/pychart-1.39.tar.gz pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip install install install install install install install install install install install install install install install install install install install install install install install install install install install install install install babel docutils feedparser gdata Jinja2 mako mock psutil psycopg2 pydot python-dateutil python-openid pytz pywebdav pyyaml reportlab simplejson unittest2 vatnumber vobject werkzeug xlwt pyopenssl lxml python-ldap decorator requests pillow pypdf passlib Collecting http://download.gna.org/pychart/pychart-1.39.tar.gz Downloading http://download.gna.org/pychart/pychart-1.39.tar.gz (115kB) 100% ################################ 118kB 267kB/s -------------------------------------------------------------------PIL SETUP SUMMARY 41 / 77

SME-9 & installation de Odoo-8 -------------------------------------------------------------------version Pillow 2.7.0 platform linux2 2.7.8 (default, Jan 10 2015, 19:21:08) [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] ---------------------------------------------------------------------- TKINTER support available --- JPEG support available *** OPENJPEG (JPEG2000) support not available --- ZLIB (PNG/ZIP) support available --- LIBTIFF support available --- FREETYPE2 support available *** LITTLECMS2 support not available *** WEBP support not available *** WEBPMUX support not available -------------------------------------------------------------------To add a missing option, make sure you have the required library, and set the corresponding ROOT variable in the setup.py script. To check the build, run the selftest.py script. changing mode of build/scripts-2.7/pilfont.py from 664 to 775 changing mode of build/scripts-2.7/pilfile.py from 664 to 775 changing mode of build/scripts-2.7/pilprint.py from 664 to 775 changing mode of build/scripts-2.7/pildriver.py from 664 to 775 changing mode of build/scripts-2.7/pilconvert.py from 664 to 775 changing mode of /home/odoo/odoo/bin/pilfont.py to 775 changing mode of /home/odoo/odoo/bin/pilfile.py to 775 changing mode of /home/odoo/odoo/bin/pilprint.py to 775 changing mode of /home/odoo/odoo/bin/pildriver.py to 775 changing mode of /home/odoo/odoo/bin/pilconvert.py to 775 Running setup.py install for reportlab ################################################ #Attempting install of _rl_accel & pyhnj #extensions from '/tmp/pip-build-ozvc_h/reportlab/src/rl_addons/rl_accel' ################################################ 100% ################################ 409kB 595kB/s Installing collected packages: passlib Running setup.py install for passlib Successfully installed passlib-1.6.2 (odoo)[odoo@sme-9 ~]$ 42 / 77 15 janvier 2015

Odoo-8 V- Odoo-8 1. Groupe shared On revient à l'usager root. (odoo)[odoo@sme-9 ~]$ exit logout [root@sme-9 html]# On vérifie que l'usager odoo est bien dans le groupe shared. [root@sme-9 html]# cat /etc/group grep odoo shared:x:500:www,admin,public,michelandre,odoo odoo:x:5001: [root@sme-9 html]# 2. Répertoire html en écriture pour le groupe On se rend dans le répertoire de l'i-bay Primary. cd /home/e-smith/files/ibays/primary/ [root@sme-9 Primary]# ls -als On affiche le contenu. [root@sme-9 Primary]# ls -als total 20 4 drwxr-xr-x 5 root root 4 drwxr-xr-x 3 root root 4 drwxr-s--- 2 admin shared 4 drwxr-s--- 2 admin shared 4 drwxr-s--- 2 admin shared [root@sme-9 Primary]# 4096 4096 4096 4096 4096 3 3 3 3 3 janv. janv. janv. janv. janv. 08:35 08:35 08:35 08:35 08:35... cgi-bin files html Pour l'installation Odoo seulement, nous allons rendre le répertoire html en écriture pour le groupe shared. De cette façon, l'usager odoo qui fait partie de ce groupe pourra écrire dans ce répertoire. [root@sme-9 Primary]# chmod g+w html/ [root@sme-9 Primary]# 43 / 77

SME-9 & installation de Odoo-8 [root@sme-9 Primary]# ls -alsd html/ 4 drwxrws--- 2 admin shared 4096 [root@sme-9 Primary]# 3 janv. 08:35 html/ 3. Installation depuis GitHub Maintenant, il est enfin temps d'installer Odoo. Nous allons télécharger la dernière version de Odoo, la version 8, depuis le dépôt GitHub. Notez que nous installons dans le répertoire /home/e-smith/files/ibays/primary/html/. De cette façon, nous pouvons facilement gérer l'installation en un seul endroit et la séparer du reste du système d'exploitation. De plus, ce répertoire fait partie des sauvegardes du Serveur SME. Important. Ces commandes doivent être exécutées en tant qu'usager odoo. Nous changeons d'usager. su - odoo [odoo@sme-9 ~]$ [odoo@sme-9 ~]$ whoami odoo [odoo@sme-9 ~]$ On se rend dans le répertoire d'installation. [odoo@sme-9 ~]$ cd /home/e-smith/files/ibays/primary/html/ [odoo@sme-9 html]$ [odoo@sme-9 html]$ pwd /home/e-smith/files/ibays/primary/html [odoo@sme-9 html]$ On télécharge Odoo 8.0. [odoo@sme-9 html]$ git clone https://github.com/odoo/odoo.git --branch 8.0 Initialized empty Git repository in /home/e-smith/files/ibays/primary/html/odoo/odoo/.git/ remote: Counting objects: 1400419, done. remote: Compressing objects: 100% (2295/2295), done. remote: Total 1400419 (delta 981), reused 1043 (delta 82) Receiving objects: 100% (1400419/1400419), 582.72 MiB 599 KiB/s, done. Resolving deltas: 100% (1179180/1179180), done. [odoo@sme-9 html]$ On ajuste le propriétaire et le groupe. [odoo@sme-9 html]$ chown -R odoo.odoo odoo 44 / 77 15 janvier 2015

Odoo-8 [odoo@sme-9 html]$ [odoo@sme-9 html]$ ls -als total 20 4 drwxrws--- 4 admin 4 drwxr-xr-x 6 root 4 drwxr-sr-x 2 odoo 4 -rw-r----- 1 admin 4 drwxr-sr-x 8 odoo [odoo@sme-9 html]$ shared root odoo shared odoo 4096 4096 4096 202 4096 14 13 14 20 14 janv. janv. janv. nov. janv. 09:28 19:59 09:28 2005 10:03... andromeda-addons index.htm odoo On retourne à l'usager root. [odoo@sme-9 html]$ exit logout whoami root 45 / 77

SME-9 & installation de Odoo-8 A) Configuration du serveur Odoo 1. Introduction Pour plus de sécurité, nous avons désactivé les différents modules RPC car nous ne les utilisons pas. Nous avons aussi ajusté l'écriture des journaux de telle sorte que nous n'y inscrivons que les avertissements et les erreurs fatales. Nous sommes situé à Montréal de sorte que le fuseau horaire est défini sur America/Toronto. Nous allons créer un fichier de configuration de base pour le serveur Odoo. 2. Fichier odoo-server.conf 2.1. Mot de passe de l'usager odoo de PostgreSQL Lors de la création de l'usager odoo de PostgreSQL, nous lui avons donné le mot de passe préféré (fghtbgh) du fameux Général Toto. 2.2. Mot de passe de l'admin Pour notre démonstration, on utilise, encore une fois, le mot de passe préféré (fghtbgh) du fameux Général. On génère le fichier de configuration, /etc/odoo-server.conf, du serveur Odoo. IMPORTANT: Toutes les commandes qui suivent doivent être exécutées en tant qu'usager root. cat > /etc/odoo-server.conf << EOF [options] ; This is the password that allows database operations: admin_passwd = fghtbgh ; DATABASE OPTIONS db_host = localhost db_port = 5432 db_user = odoo db_password = fghtbgh ; MISC SETTINGS addons_path = /home/e-smith/files/ibays/primary/html/odoo/addons load = web timezone = America/Toronto without-demo=all no-xmlrpc = True no-xmlrpcs = True no-netrpc = True ; LOG SETTINGS logfile = /var/log/odoo/odoo-server.log log_handler = werkzeug:warning log_level = warn no-logrotate = True EOF 46 / 77 15 janvier 2015

Configuration du serveur Odoo On vérifie le contenu du fichier. cat /etc/odoo-server.conf [options] ; This is the password that allows database operations: admin_passwd = fghtbgh ; DATABASE OPTIONS db_host = localhost db_port = 5432 db_user = odoo db_password = fghtbgh ; MISC SETTINGS addons_path = /home/e-smith/files/ibays/primary/html/odoo/addons load = web timezone = America/Toronto without-demo=all no-xmlrpc = True no-xmlrpcs = True no-netrpc = True ; LOG SETTINGS logfile = /var/log/odoo/odoo-server.log log_handler = werkzeug:warning log_level = warn no-logrotate = True On ajuste le propriétaire et le groupe du fichier. chown root.odoo /etc/odoo-server.conf On ajuste les droits sur le fichier. chmod 640 /etc/odoo-server.conf ls -alsd /etc/odoo-server.conf 4 -rw-r----- 1 root odoo 518 12 janv. 19:58 /etc/odoo-server.conf 3. logrotation Nous avons autorisé la rotation des journaux en utilisant les outils CentOS de telle sorte que les journaux sont gérés de la même manière que toutes les autres applications. cat > /etc/logrotate.d/odoo-server << EOF /var/log/odoo/*.log { copytruncate missingok notifempty } EOF 47 / 77

SME-9 & installation de Odoo-8 [root@sme-9 html]# cat /etc/logrotate.d/odoo-server /var/log/odoo/*.log { copytruncate missingok notifempty } [root@sme-9 html]# 4. Script de démarrage (/etc/init.d/odoo) Nous allons créer un script pour démarrer/arrêter facilement le serveur Odoo. Nous allons télécharger un script pré-créé d'initialisation puis utiliser la commande sed pour modifier le script pré-créé de telle sorte qu'il s'harmonise avec l'environnement virtuel Python que nous avons installé plus tôt. On télécharge le script pré-créé d'initialisation. wget -O /etc/init.d/odoo https://raw.githubusercontent.com/johnzero/oe7/master/install/openerp-server.init --2015-01-12 20:12:30-https://raw.githubusercontent.com/Johnzero/OE7/master/install/openerp-server.init Résolution de raw.githubusercontent.com 23.235.46.133 Connexion vers raw.githubusercontent.com 23.235.46.133 :443connecté. requête HTTP transmise, en attente de la réponse200 OK Longueur: 2908 (2,8K) [text/plain] Sauvegarde en : «/etc/init.d/odoo» 100%[=====================================================>] 2 908 --.-K/s ds 0,003s 2015-01-12 20:12:31 (1,07 MB/s) - «/etc/init.d/odoo» sauvegardé [2908/2908] On change une des commandes de lancement de Odoo. sed -i "s/openerp/odoo/g" /etc/init.d/odoo On change l'autre. sed -i "s/openerp/odoo/g" /etc/init.d/odoo On modifie le chemin vers openerp-server. sed -i "s/\/usr\/bin\/setsid \/usr\/bin\/odoo-server/~\/odoo\/bin\/python \/home\/e-smith\/files\/ibays\/primary\/html\/odoo\/openerp-server/" /etc/init.d/odoo Vérification finale du fichier. cat /etc/init.d/odoo #!/bin/bash # odoo-server # 48 / 77 This shell script takes care of starting and stopping Odoo server 15 janvier 2015

Configuration du serveur Odoo # # # # # # chkconfig: 345 95 05 description: Odoo server pidfile: /var/run/odoo-server.pid config: /etc/odoo-server.conf ### BEGIN INIT INFO # Provides: odoo-server # Required-Start: postgresql # Required-Stop: postgresql # Should-Start: $network harddrake # Default-Start: 345 # Short-Description: Launches the Odoo server. # Description: This startup script launches the Odoo server. ### END INIT INFO # Source function library.. /etc/rc.d/init.d/functions PIDFILE=/var/run/odoo/odoo-server.pid LOCKFILE=/var/lock/subsys/odoo-server LOGFILE=/var/log/odoo/odoo-server.log OPTS="--pidfile=$PIDFILE --logfile=$logfile" prog="odoo-server" desc="odoo Server Daemon" # check if the odoo-server conf file is present, then use it if [ -f /etc/odoo-server.conf ]; then OPTS="$OPTS -c /etc/odoo-server.conf" fi # Source function library if [ -f /etc/init.d/functions ] ; then. /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then. /etc/rc.d/init.d/functions else exit 0 fi # check the existence of the odoo-server script [ -z "/usr/bin/odoo-server" ] && exit 0 RETVAL=0 start() { if [ -d /etc/odoo/start.d ] ; then echo -n $"Preparing $desc: " run-parts --exit-on-error /etc/odoo/start.d RETVAL=$? echo [ $RETVAL -ne 0 ] && return $RETVAL fi echo -n $"Starting $desc ($prog): " daemon --user odoo --check odoo-server \ "~/odoo/bin/python /home/e-smith/files/ibays/primary/html/odoo/openerp-server \ -c /etc/odoo-server.conf \ --pidfile=$pidfile \ --logfile=$logfile &" RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $LOCKFILE return $RETVAL } stop() { 49 / 77

SME-9 & installation de Odoo-8 echo -n $"Stopping $desc ($prog): " kill -TERM `cat $PIDFILE` > /dev/null 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ] ; then rm -f $LOCKFILE echo_success echo else echo_failure echo } fi if [ -d /etc/odoo/stop.d ] ; then echo -n $"Clearing $desc: " run-parts /etc/odoo/stop.d echo fi return $RETVAL restart() { stop start } condrestart() { [ -e $LOCKFILE ] && restart : } status() { if [ -f $PIDFILE ] ; then checkpid `cat $PIDFILE` RETVAL=$? if [ $RETVAL -eq 0 ] ; then echo $"$prog is running" else echo $"$prog is stopped" fi else echo $"$prog is stopped" fi return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart reload) restart ;; condrestart) condrestart ;; status) status ;; probe) exit 0 ;; *) 50 / 77 15 janvier 2015

Configuration du serveur Odoo echo $"Usage: $0 {start stop status restart condrestart reload}" exit 1 esac On rend le script exécutable. chmod +x /etc/init.d/odoo ls -alsd /etc/init.d/odoo 4 -rwxr-xr-x 1 root root 2908 12 janv. 20:12 /etc/init.d/odoo 5. Commande de démarrage On ajoute la commande de lancement du script à la fin du fichier /etc/rc.d/rc.local car le Serveur SME-9 roule sous le niveau 7 et chkconfig ne prend en compte que les niveaux [0..6]. On ne peut donc pas utiliser chkconfig pour configurer le script de démarre pour le niveau 7. echo "/etc/init.d/odoo start" >> /etc/rc.d/rc.local cat /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local /etc/init.d/postgresql-9.4 start /etc/init.d/odoo start 6. signal-event Très important Lorsque tout est terminé et pour que les nouvelles configurations soient permanentes. [root@sme-9 html]# signal-event post-upgrade; signal-event reboot Broadcast message from root@sme-9 (/dev/pts/0) at 10:29 The system is going down for reboot NOW! [root@sme-9 html]# 51 / 77

SME-9 & installation de Odoo-8 VI- Divers 1. Vérification des démarrages 1.1. PostgreSQL Usage: /etc/init.d/postgresql-9.4 {start stop status restart upgrade condrestart try-restart reload force-reload initdb promote} Pour vérifier le statut. /etc/init.d/postgresql-9.4 status postgresql-9.4 (pid 2688) en cours d'exécution 1.2. Odoo Syntaxe: /etc/init.d/odoo {start stop status restart condrestart reload} Pour vérifier le statut. /etc/init.d/odoo status odoo-server est en cours d'exécution 2. Fichiers journaux Vous pouvez vérifier les fichiers journaux /var/log/messages et /var/log/odoo/odoo-server.log pour vous assurer que tout a démarrer correctement. Notez que vous pouvez également utiliser /etc/init.d/odoo restart et /etc/init.d/odoo stop pour redémarrer et arrêter Odoo au besoin. 3. Mot de passe N'oubliez pas que vous pouvez trouver le mot de passe de l'admin de votre base de données dans le fichier de configuration de Odoo: /etc/odoo-server.conf. 4. Administration du serveur Odoo Pour administrer le serveur Odoo, il suffit de se loguer avec le nom d'usager admin et de fournir son mot de passe tel que contenu dans le fichier de configuration de Odoo: /etc/odoo-server.conf. 52 / 77 15 janvier 2015

Divers 5. Site Odoo Il faut autoriser java script et les témoins dans notre fureteur. On doit spécifier le port 8069 soit: http://adresse-du-serveur:8069. 5.1. Écran: Create a New Database Master password: le mot de passe pour admin_passwd qu'on a spécifié dans le fichier de configuration /etc/odoo-server.conf. Select a database name: le nom de notre société. Load demonstration data: cochez si on veut les données d'exemples. Default language: on choisit, dans le menu déroulant, la langue par défaut pour notre site. La traduction française n'est pas encore terminée. Choose password: on donne le mot de passe pour db_password qu'on a spécifié dans le fichier de configuration /etc/odoo-server.conf. Confirm password: on confirme. On clic Create Database pour créer notre première base de données pour notre société. Ce processus peut prendre quelques instant. Nous sommes prêt à utiliser Odoo. 53 / 77

SME-9 & installation de Odoo-8 Après quelques modifications. 6. Primary/html Il nous faut maintenant retourner les droits originaux au répertoire Primary/html; il fait enlever le droit d'écriture au groupe. On s'assure que nous sommes root. whoami root On se rend dans le répertoire Primary. cd /home/e-smith/files/ibays/primary/ [root@sme-9 Primary]# On enlève le droit d'écriture au groupe pour le répertoire html. [root@sme-9 Primary]# chmod g-w html/ [root@sme-9 Primary]# [root@sme-9 Primary]# ls -alsd html/ 4 drwxr-s--- 4 admin shared 4096 14 janv. 10:13 html/ [root@sme-9 Primary]# 54 / 77 15 janvier 2015

Divers 7. Redirection HTML Pour accéder à Odoo sur notre site, il faut absolument spécifier le port 8069. On pourrait créer une règle iptables qui redirigerait le port standard 80 vers le port 8069. Le problème avec un tel scénario est qu'on perdrait l'accès à Server-Manager ou à notre site Internet standard qui pourrait être aussi héberger sur le serveur. 7.1. Seul le site Odoo roule sur le serveur Si Odoo est le seul site qui roule sur le serveur, on peut modifier le fichier index.html, qui est dans le répertoire Primary/html, pour qu'il fasse une redirection html vers le port 8069. En étant logué root, on se rend dans le répertoire Primary/html. cd /home/e-smith/files/ibays/primary/html/ [root@sme-9 html]# [root@sme-9 html]# pwd /home/e-smith/files/ibays/primary/html [root@sme-9 html]# On modifie le fichier index.html. cat >./index.htm << EOF <head> <META http-equiv="refresh" CONTENT="0; url=http://192.168.1.10:8069"> </head> EOF [root@sme-9 html]# cat index.htm <head> <META http-equiv="refresh" CONTENT="0; url=http://192.168.1.10:8069"> </head> [root@sme-9 html]# On ajuste le propriétaire et le groupe. [root@sme-9 html]# chown admin:shared index.htm [root@sme-9 html]# [root@sme-9 html]# ls -als index.htm 4 -rw-r--r-- 1 admin shared 87 14 janv. 12:48 index.htm [root@sme-9 html]# 55 / 77

SME-9 & installation de Odoo-8 On se rend sur notre site sans spécifier de port et on est automatiquement rediriger vers Odoo. 7.2. Un autre site roule sur le serveur Si un autre site est hébergé sur le serveur, nous allons créer un fichier index.html dans les répertoire Primary/htm/odoo et qui fera une redirection html vers le port 8069. En étant logué root, on se rend dans le répertoire Primary/html/odoo. cd /home/e-smith/files/ibays/primary/html/odoo [root@sme-9 odoo]# [root@sme-9 odoo]# pwd /home/e-smith/files/ibays/primary/html/odoo [root@sme-9 odoo]# On crée le fichier index.html. cat >./index.htm << EOF <head> <META http-equiv="refresh" CONTENT="0; url=http://192.168.1.10:8069"> </head> EOF [root@sme-9 odoo]# cat index.htm <head> <META http-equiv="refresh" CONTENT="0; url=http://192.168.1.10:8069"> </head> [root@sme-9 odoo]# On ajuste le propriétaire et le groupe. [root@sme-9 odoo]# chown admin:shared index.htm [root@sme-9 odoo]# 56 / 77 15 janvier 2015

Divers [root@sme-9 odoo]# ls -als index.htm 4 -rw-r--r-- 1 admin shared 87 14 janv. 13:08 index.htm [root@sme-9 odoo]# On se rend sur notre site en ajoutant odoo à l'adresse de notre site i.e. http://adresse-de-notre-site/odoo. Nous sommes aussitôt redirigé vers le port 8069. 8. Mise à jour Odoo Si vous souhaitez mettre à jour le code de Odoo à la dernière version, vous pouvez facilement le faire en arrêtant le serveur puis en effectuant un "git pull". Notez que vous devez faire le "git pull" en tant qu'utilisateur odoo. su - odoo [odoo@sme-9 ~]$ [odoo@sme-9 ~]$ whoami odoo [odoo@sme-9 ~]$ On arrête le serveur Odoo. [root@sme-9 odoo]# /etc/init.d/odoo stop Arrêt de Odoo Server Daemon (odoo-server) : [root@sme-9 odoo]# [ OK ] On vérifie le statut du serveur Odoo. [root@sme-9 odoo]# /etc/init.d/odoo status odoo-server est arrêté [root@sme-9 odoo]# On se rend dans le répertoire Primary/html/odoo. [odoo@sme-9 ~]$ cd /home/e-smith/files/ibays/primary/html/odoo [odoo@sme-9 odoo]$ 57 / 77

SME-9 & installation de Odoo-8 [odoo@sme-9 odoo]$ pwd /home/e-smith/files/ibays/primary/html/odoo [odoo@sme-9 odoo]$ On lance le "git pull". [odoo@sme-9 odoo]$ git pull remote: Counting objects: 78, done. remote: Compressing objects: 100% (66/66), done. remote: Total 78 (delta 6), reused 22 (delta 4) Unpacking objects: 100% (78/78), done. From https://github.com/odoo/odoo 30a7bea..f406847 7.0 -> origin/7.0 35a061e..ba5978a 8.0 -> origin/8.0 c79fdfc..327cb95 master -> origin/master Updating 35a061e..ba5978a Fast-forward MANIFEST.in 1 + addons/point_of_sale/point_of_sale.py 16 +++++++--------2 files changed, 8 insertions(+), 9 deletions(-) [odoo@sme-9 odoo]$ On redevient root car l'usager odoo peut arrêter le serveur Odoo mais il ne peut pas le repartir. [odoo@sme-9 odoo]$ exit logout whoami root On relance le serveur Odoo. /etc/init.d/odoo start Démarrage de Odoo Server Daemon (odoo-server) : [ OK ] /etc/init.d/odoo status odoo-server est en cours d'exécution 58 / 77 15 janvier 2015

Mise à jour du Serveur SME VII- Mise à jour du Serveur SME 1. Bug 8714 http://bugs.contribs.org/show_bug.cgi?id=8714 Issue with libgomp and smeserver-support-2.6.0-2.el6.sme 1.1. Vérification du bug avec Server Manager 1.2. Vérification du bug avec la console yum update Loaded plugins: fastestmirror, smeserver Loading mirror speeds from cached hostfile * base: mirror.science.uottawa.ca * smeaddons: mirror.canada.pialasse.com * smeextras: mirror.canada.pialasse.com * smeos: mirror.canada.pialasse.com * smeupdates: mirror.canada.pialasse.com * updates: mirror.netflash.net Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package ORBit2.x86_64 0:2.14.17-3.2.el6_3 will be updated ---> Package ORBit2.x86_64 0:2.14.17-5.el6 will be an update ---> Package yum-plugin-fastestmirror.noarch 0:1.1.30-17.el6_5 will be updated ---> Package yum-plugin-fastestmirror.noarch 0:1.1.30-30.el6 will be an update --> Running transaction check 59 / 77

SME-9 & installation de Odoo-8 ---> Package stunnel.x86_64 0:4.29-3.el6_6.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================ Package Arch Version Repository Size ============================================================================================ Installing: kernel x86_64 2.6.32-504.3.3.el6 updates 29 M Updating: ORBit2 x86_64 2.14.17-5.el6 base 168 k at x86_64 3.1.10-44.el6_6.2 updates 60 k xz x86_64 4.999.9-0.5.beta.20091007git.el6 base 137 k xz-libs x86_64 4.999.9-0.5.beta.20091007git.el6 base 89 k xz-lzma-compat x86_64 4.999.9-0.5.beta.20091007git.el6 base 16 k yum noarch 3.2.29-60.el6.centos base 1.0 M yum-plugin-fastestmirror noarch 1.1.30-30.el6 base 31 k Installing for dependencies: stunnel x86_64 4.29-3.el6_6.1 updates 121 k Transaction Summary ============================================================================================ Install 2 Package(s) Upgrade 171 Package(s) Total size: 244 M Total download size: 322 k y Is this ok [y/n]: Downloading Packages: (1/2): nss-softokn-freebl-3.14.3-19.el6_6.i686.rpm 156 kb 00:00 (2/2): nss-softokn-freebl-3.14.3-19.el6_6.x86_64.rpm 166 kb 00:00 -------------------------------------------------------------------------------------------Total 341 kb/s 322 kb 00:00 Running rpm_check_debug ERROR with rpm_check_debug vs depsolve: libgomp = 4.4.7-11.el6 is needed by (installed) gcc-4.4.7-11.el6.x86_64 libgomp.so.1()(64bit) is needed by (installed) gcc-4.4.7-11.el6.x86_64 libgomp = 4.4.7-11.el6 is needed by (installed) gcc-4.4.7-11.el6.x86_64 libgomp = 4.4.7-11.el6 is needed by (installed) gcc-4.4.7-11.el6.x86_64 libgomp = 4.4.7-11.el6 is needed by (installed) gcc-4.4.7-11.el6.x86_64 You could try running: rpm -Va --nofiles --nodigest Your transaction was saved, rerun it with: yum load-transaction /tmp/yum_save_tx-2015-01-1420-17es88ca.yumtx 2. Solution 2.1. gcc Nous avions besoin de gcc pour la compilation, entre autre de Python. Est-ce que gcc est requis par quel que paquetage? rpm -q --whatrequires gcc aucun paquetage ne requiert gcc 60 / 77 15 janvier 2015

Mise à jour du Serveur SME Quel gcc avons-nous d'installé? rpm -qa grep gcc gcc-4.4.7-11.el6.x86_64 libgcc-4.4.7-11.el6.x86_64 Avoir gcc installé est un risque de sécurité vu qu'un pirate pourrait s'en servir pour compiler un malveillant; mais surtout, il occasionne un bug. On peut donc le désinstaller sans problème. Si plus tard nous en avions encore besoin, il suffirait de l'installer à nouveau. Le 15 janvier 2015, Stéphane de Labrusse a écrit: "smeserver-support is waiting a release in smeupdatestesting, that is a core issue and not a smeserver-phpvirtualbox issue". On désinstalle donc gcc. rpm -e gcc-4.4.7-11.el6.x86_64 rpm -qa grep gcc libgcc-4.4.7-11.el6.x86_64 2.2. On relance la mise à jour yum update Loaded plugins: fastestmirror, smeserver Loading mirror speeds from cached hostfile * base: mirror.netflash.net * smeaddons: mirror.canada.pialasse.com * smeextras: mirror.canada.pialasse.com * smeos: mirror.canada.pialasse.com * smeupdates: mirror.canada.pialasse.com * updates: mirror.netflash.net Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package ORBit2.x86_64 0:2.14.17-3.2.el6_3 will be updated ---> Package ORBit2.x86_64 0:2.14.17-5.el6 will be an update --> Running transaction check ---> Package stunnel.x86_64 0:4.29-3.el6_6.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================ Package Arch Version Repository Size ============================================================================================ Installing: kernel x86_64 2.6.32-504.3.3.el6 updates 29 M Updating: ORBit2 x86_64 2.14.17-5.el6 base 168 k 61 / 77

SME-9 & installation de Odoo-8 at audit yum yum-plugin-fastestmirror Installing for dependencies: stunnel x86_64 x86_64 3.1.10-44.el6_6.2 2.3.7-5.el6 updates base 60 k 208 k noarch noarch 3.2.29-60.el6.centos 1.1.30-30.el6 base base 1.0 M 31 k x86_64 4.29-3.el6_6.1 updates 121 k Transaction Summary ============================================================================================ Install 2 Package(s) Upgrade 171 Package(s) Total size: 244 M y Is this ok [y/n]: Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Updating : bash-4.1.2-29.el6.x86_64 Updating : audit-libs-2.3.7-5.el6.x86_64 Updating : coreutils-libs-8.4-37.el6.x86_64 Cleanup : 1:telnet-0.17-47.el6_3.1.x86_64 Cleanup : lzo-2.03-3.1.el6.x86_64 Migrating existing database mailpatterns Migrating existing database yum_available Migrating existing database yum_updates Migrating existing database hosts Migrating existing database networks Migrating existing database backups Migrating existing database domains Migrating existing database accounts Migrating existing database yum_installed Migrating existing database configuration Migrating existing database yum_repositories Migrating existing database spamassassin Verifying : libpciaccess-0.13.3-0.1.el6.x86_64 Verifying : 1:microcode_ctl-1.17-19.el6.x86_64 Verifying : libblkid-2.17.2-12.18.el6.x86_64 Verifying : hwdata-0.233-9.1.el6.noarch Verifying : policycoreutils-2.0.83-19.39.el6.x86_64 1/345 2/345 3/345 344/345 345/345 1/344 2/344 3/344 343/344 344/344 Installed: kernel.x86_64 0:2.6.32-504.3.3.el6 Dependency Installed: stunnel.x86_64 0:4.29-3.el6_6.1 Updated: ORBit2.x86_64 0:2.14.17-5.el6 at.x86_64 0:3.1.10-44.el6_6.2 audit.x86_64 0:2.3.7-5.el6 xz-lzma-compat.x86_64 0:4.999.9-0.5.beta.20091007git.el6 yum.noarch 0:3.2.29-60.el6.centos yum-plugin-fastestmirror.noarch 0:1.1.30-30.el6 Complete! 62 / 77 15 janvier 2015

Mise à jour du Serveur SME ============================================================== WARNING: You now need to run BOTH of the following commands to ensure consistent system state: signal-event post-upgrade; signal-event reboot You should run these commands unless you are certain that yum made no changes to your system. ============================================================== 2.3. signal-event Cette fois-ci, la mise à jour a bien fonctionné, on signale la mise à jour. signal-event post-upgrade; signal-event reboot Broadcast message from root@sme-9 (/dev/pts/0) at 21:21 The system is going down for reboot NOW! 3. Vérification après réamorçage /etc/init.d/postgresql-9.4 status postgresql-9.4 (pid 2117) en cours d'exécution /etc/init.d/odoo status odoo-server est en cours d'exécution Vérification avec Server Manager. Il n'y a pas à signaler la mise à jour car tout est déjà à jour. 63 / 77

SME-9 & installation de Odoo-8 4. Vérification de Odoo Tout semble bien fonctionner. 64 / 77 15 janvier 2015

Sauvegarde de SME VIII- Sauvegarde de SME 1. Sauvegarde On lance une sauvegarde sur un ordinateur distant. 2. Répertoires sauvegardés 65 / 77

SME-9 & installation de Odoo-8 3. Fichier de configuration et de lancement Le fichiers ci-dessous devraient être sauvegardés dans le répertoire de l'usager odoo afin qu'ils puissent être sauvegarder lors d'une sauvegarde standard du Serveur SME. ls -als /etc/odoo-server.conf 4 -rw-r----- 1 root odoo 492 14 janv. 10:16 /etc/odoo-server.conf ls -als /etc/init.d/odoo 4 -rwxr-xr-x 1 root root 2864 14 janv. 10:19 /etc/init.d/odoo ls -als /etc/rc.d/rc.local 4 -rwxr-xr-x 1 root root 276 14 janv. 12:02 /etc/rc.d/rc.local On change d'usager pour devenir l'usager odoo. [root@sme-9 html]# su - odoo [odoo@sme-9 ~]$ [odoo@sme-9 ~]$ whoami odoo [odoo@sme-9 ~]$ Où sommes-nous? [odoo@sme-9 ~]$ pwd /home/e-smith/files/users/odoo [odoo@sme-9 ~]$ On crée un répertoire de sauvegarde. [odoo@sme-9 ~]$ mkdir sauvegarde_odoo [odoo@sme-9 ~]$ [odoo@sme-9 ~]$ ls -alsd sauvegarde_odoo/ 4 drwxrwxr-x 2 odoo odoo 4096 15 janv. 17:02 sauvegarde_odoo/ [odoo@sme-9 ~]$ 66 / 77 15 janvier 2015

Sauvegarde de SME On copie les fichiers cités ci-haut dans le répertoire de sauvegarde. [odoo@sme-9 ~]$ cp /etc/odoo-server.conf./sauvegarde_odoo/ /etc/init.d/odoo /etc/rc.d/rc.local [odoo@sme-9 ~]$ [odoo@sme-9 ~]$ ls -als sauvegarde_odoo/ total 20 4 drwxrwxr-x 2 odoo 4 drwx------ 7 odoo 4 -rwxr-xr-x 1 odoo 4 -rw-r----- 1 odoo 4 -rwxr-xr-x 1 odoo [odoo@sme-9 ~]$ odoo 4096 15 janv. 17:05. odoo 4096 15 janv. 17:02.. odoo 2864 15 janv. 17:05 odoo odoo 492 15 janv. 17:05 odoo-server.conf odoo 276 15 janv. 17:05 rc.local La prochaine sauvegarde standard du Serveur SME sauvegardera aussi ces fichiers. 67 / 77

SME-9 & installation de Odoo-8 IX- Sauvegardes et restaurations PostgreSQL 1. Référence http://docs.postgresqlfr.org/9.3/backup.html 1.1. Utilisation de pg_dumpall Pour permettre une sauvegarde aisée de tout le contenu d'un cluster, le programme pg_dumpall(1) est fourni. pg_dumpall sauvegarde toutes les bases de données d'un cluster (ensemble des bases d'une instance) PostgreSQL et préserve les données communes au cluster, telles que les rôles et tablespaces. L'utilisation basique de cette commande est: pg_dumpall > fichier_de_sortie Le fichier de sauvegarde résultant peut être restauré avec psql: psql -f fichier_d_entree postgres (N'importe quelle base de données peut être utilisée pour la connexion mais si le rechargement est exécuté sur un cluster vide, il est préférable d'utiliser postgres.) Il faut obligatoirement avoir le profil superutilisateur pour restaurer une sauvegarde faite avec pg_dumpall, afin de pouvoir restaurer les informations sur les rôles et les tablespaces. Si les tablespaces sont utilisés, il faut s'assurer que leurs chemins sauvegardés sont appropriés à la nouvelle installation. pg_dumpall fonctionne en émettant des commandes pour recréer les rôles, les tablespaces et les bases vides, puis en invoquant pg_dump pour chaque base de données. Cela signifie que, bien que chaque base de données est cohérente en interne, les images des différentes bases de données peuvent ne pas être tout à fait synchroni sées. 1.2. Gérer les grosses bases de données Certains systèmes d'exploitation ont des limites sur la taille maximum des fichiers qui posent des problème lors de la création de gros fichiers de sauvegarde avec pg_dump. Heureusement, pg_dump peut écrire sur la sortie standard, donc vous pouvez utiliser les outils Unix standards pour contourner ce problème potentiel. Il existe plusieurs autres méthodes: Compresser le fichier de sauvegarde. Tout programme de compression habituel est utilisable. Par exemple gzip: pg_dump base_de_donnees gzip > nom_fichier.gz Pour restaurer: gunzip -c nom_fichier.gz psql base_de_donnees ou cat nom_fichier.gz gunzip psql base_de_donnees Couper le fichier avec split. La commande split permet de découper le fichier en fichiers plus petits, de taille acceptable par le système de fichiers sous-jacent. Par exemple, pour faire des morceaux de 1 Mo: pg_dump base_de_donnees split -b 1m - nom_fichier 68 / 77 15 janvier 2015

Sauvegardes et restaurations PostgreSQL Pour restaurer: cat nom_fichier* psql base_de_donnees 2. Sauvegarde On change d'usager pour devenir l'usager postgres. su - postgres -bash-4.1$ -bash-4.1$ whoami postgres -bash-4.1$ Où sommes-nous? -bash-4.1$ pwd /var/lib/pgsql -bash-4.1$ On sauvegarde. -bash-4.1$ pg_dumpall --clean > PostgreSQL_Odoo-8 17h16 -bash-4.1$ -c --clean Inclut les commandes SQL pour nettoyer (drop) les bases de données avant de les recréer. La commande DROP pour les rôles et les tablespaces sont aussi ajoutés. -f filename --file=filename Envoie la sortie vers le fichier spécifié. Si ce paramètre n'est pas spécifié, la sortie standard est utilisée. -bash-4.1$ ls -als PostgreSQL_Odoo-8 17h16 9036 -rw-r--r-- 1 postgres postgres 9251485 15 janv. 17:16 PostgreSQL_Odoo-8_2015-0115_17h16 -bash-4.1$ On retourne à l'usager root. -bash-4.1$ exit logout 69 / 77

SME-9 & installation de Odoo-8 On déplace le fichier de sauvegarde vers le répertoire de l'usager odoo pour que ce fichier puisse être sauvegardé lors d'une sauvegarde standard du Serveur SME. mv /var/lib/pgsql/postgresql_odoo-8 17h16 /home/esmith/files/users/odoo/sauvegarde_odoo/ On vérifie ls -als /home/e-smith/files/users/odoo/sauvegarde_odoo/ total 9056 4 drwxrwxr-x 4 drwx-----4 -rwxr-xr-x 4 -rw-r----9036 -rw-r--r-15_17h16 4 -rwxr-xr-x 2 7 1 1 1 odoo odoo odoo odoo postgres 1 odoo odoo 4096 odoo 4096 odoo 2864 odoo 492 postgres 9251485 odoo 15 15 15 15 15 janv. janv. janv. janv. janv. 17:17 17:02 17:09 17:09 17:16... odoo odoo-server.conf PostgreSQL_Odoo-8_2015-01- 276 15 janv. 17:09 rc.local 2.1. cron On pourrait créer un cron pour exécuter une sauvegarde hebdomadaire. Il serait préférable de faire la sauvegarde dans le répertoire personnel de root ou de l'usager odoo car ainsi les sauvegardes du Serveur SME sauvegarderaient aussi les sauvegardes PostgreSQL. 3. Restauration On affiche les fichiers de sauvegarde. ls -als /home/e-smith/files/users/odoo/sauvegarde_odoo/postgresql_odoo* 9036 -rw-r--r-- 1 postgres postgres 9251485 15 janv. 17:16 /home/esmith/files/users/odoo/sauvegarde_odoo/postgresql_odoo-8 17h16 On déplace le fichier de sauvegarde mv /home/e-smith/files/users/odoo/sauvegarde_odoo/postgresql_odoo-8_2015-0115_17h16 /var/lib/pgsql/ ls -als /var/lib/pgsql/postgresql_odoo-8 17h16 9036 -rw-r--r-- 1 postgres postgres 9251485 15 janv. 17:16 /var/lib/pgsql/postgresql_odoo8 17h16 On change pour l'usager postgres. su - postgres -bash-4.1$ 70 / 77 15 janvier 2015

Sauvegardes et restaurations PostgreSQL whoami root On liste le fichier de restauration. -bash-4.1$ ls -als PostgreSQL* 9036 -rw-r--r-- 1 postgres postgres 9251485 15 janv. 17:16 PostgreSQL_Odoo-8_2015-0115_17h16 -bash-4.1$ On restaure. -bash-4.1$ psql -f PostgreSQL_Odoo-8 17h16 SET SET SET DROP DATABASE SET SET SET COMMENT CREATE EXTENSION COMMENT REVOKE REVOKE GRANT GRANT -bash-4.1$ 4. Vérification On se logue avec un compte quelconque. Victoire totale. 71 / 77