12) ERP

Created lundi 15 février 2016

Avant d'installer odoo, il faut d'abord récupérer postgreSQL, pour cela se reporter à la section postgres.

Ajouter les clés

1 wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
1 --2016-02-15 10:38:56--  https://nightly.odoo.com/odoo.key
2 Résolution de nightly.odoo.com (nightly.odoo.com)… 188.165.210.169
3 Connexion à nightly.odoo.com (nightly.odoo.com)|188.165.210.169|:443… connecté.
4 requête HTTP transmise, en attente de la réponse… 200 OK
5 Taille : 3112 (3,0K) [application/octet-stream]
6 Sauvegarde en : « STDOUT »
7 
8 -                              100%[======================================================>]   3,04K  --.-KB/s   ds 0s     
9 
10 2016-02-15 10:38:56 (105 MB/s) — envoi vers sortie standard [3112/3112]
11 
12 OK

Ajout des dépots

Les dépots contiennent les sources de l'application: nightly.odoo.com

1 echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list

On trouve dans les sources les scripts d'installation python, incluant la résolution des dépendances.
Il va aller chercher un fichier de configuration openerp hébergé sur github, et ce fichier est un dockerfiles

Mise a jour et installation

L'application utilise python, et va récupérer tout ce qu'il lui manque, et il lui en manque pas mal.
Mais ça ne laisse pas le temps de faire un café.

1 apt-get update && apt-get install odoo

Python

compéter l'installation en installant ceci.

1 # apt-get install python-cups python-dateutil python-decorator python-docutils python-feedparser \
2 python-gdata python-geoip python-gevent python-imaging python-jinja2 python-ldap python-libxslt1 \
3 python-lxml python-mako python-mock python-openid python-passlib python-psutil python-psycopg2 \
4 python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests \
5 python-simplejson python-tz python-unicodecsv python-unittest2 python-vatnumber python-vobject \
6 python-werkzeug python-xlwt python-yaml wkhtmltopdf

Sous debian

L'utilisateur odoo est crée automatiquement étape inutile.

Sous Ubuntu

Il semble que odoo ne soit pas crée (? a vérifier)
Résolu: voir 3) odoo.py le script python est fait pour un système débian, raison pour la quelle il faut créer le user.

Créer un utilisateur odoo

1 # adduser odoo --group odoo

Modifier le role odoo


Sous débian

Modification du role odoo qui est l'admin, avec le droit de création de database, avec un login, et le mot de passe chiffré (toutefois par défaut tout les mot de passe sont chiffré avec md5, et bien sur on met le mot de passe de son choix.

1 postgres=# ALTER ROLE odoo WITH CREATEDB LOGIN ENCRYPTED PASSWORD 'odoo';
2 ALTER ROLE
3 postgres=# 

Sous ubuntu

Création du role odoo qui est l'admin, avec le droit de création de database, avec un login, et le mot de passe chiffré (toutefois par défaut tout les mot de passe sont chiffré avec md5, et bien sur on met le mot de passe de son choix.

1 postgres=# CREATE ROLE odoo WITH CREATEDB LOGIN ENCRYPTED PASSWORD 'odoo';
2 CREATE ROLE
3 postgres=# 

créer la base

On crée la base odoo et, désigne odoo propriétaire de la base.

1 postgres=# CREATE DATABASE odoo OWNER odoo;
2 CREATE DATABASE
3 postgres=# 

Donner les droits

Augmentation des droits.

1 postgres=# GRANT ALL ON DATABASE odoo TO odoo;
2 GRANT 
3 postgres=# 

configuration

La configuration se fait via le fichier:
/etc/odoo/openerp-server.conf

1 vi /etc/odoo/openerp-server.conf

1 [options]
2 addons_path = /usr/lib/python2.7/dist-packages/openerp/addons
3 admin_passwd = admin
4 csv_internal_sep = ,
5 data_dir = /var/lib/odoo/.local/share/Odoo
6 db_host = localhost
7 db_maxconn = 64
8 db_name = odoo
9 db_password = mot2passe
10 db_port = 5432
11 db_template = template1
12 db_user = odoo
13 dbfilter = .*
14 debug_mode = False
15 demo = {}
16 dev_mode = False
17 email_from = False
18 geoip_database = /usr/share/GeoIP/GeoLiteCity.dat
19 import_partial =
20 limit_memory_hard = 2684354560
21 limit_memory_soft = 2147483648
22 limit_request = 8192
23 limit_time_cpu = 60
24 limit_time_real = 120
25 list_db = True
26 log_db = False
27 log_db_level = warning
28 log_handler = :INFO
29 log_level = info
30 logfile = /var/log/odoo/odoo-server.log
31 logrotate = False
32 longpolling_port = 8072
33 max_cron_threads = 2
34 osv_memory_age_limit = 1.0
35 osv_memory_count_limit = False
36 pg_path = None
37 pidfile = False
38 proxy_mode = False
39 reportgz = False
40 server_wide_modules = None
41 smtp_password = False
42 smtp_port = 25
43 smtp_server = localhost
44 smtp_ssl = False
45 smtp_user = False
46 syslog = False
47 test_commit = False
48 test_enable = False
49 test_file = False
50 test_report_directory = False
51 translate_modules = ['all']
52 unaccent = False
53 without_demo = False
54 workers = 0
55 xmlrpc = True
56 xmlrpc_interface = 0.0.0.0
57 xmlrpc_port = 8069

LOG

1 tail -f /var/log/odoo/odoo-server.log
2 2016-02-15 09:44:13,549 6894 INFO ? openerp: OpenERP version 9.0c-20160215
3 2016-02-15 09:44:13,549 6894 INFO ? openerp: addons paths: ['/var/lib/odoo/.local/share/Odoo/addons/9.0', u'/usr/lib/python2.7/dist-packages/openerp/addons']
4 2016-02-15 09:44:13,550 6894 INFO ? openerp: database: odoo@default:default
5 2016-02-15 09:44:14,109 6894 INFO ? openerp.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069

WEB

Le site est accessible via son <adresse_IP> sur le port 8069, le couple Identifiant/Mot_de_passe sont indiqué dans /etc/odoo/openerp-server.conf
admin/admin
Il fortement recommandé de le modifier..
Ensuite nous créerons une base.


Connexion

On se connecte avec son nouveau mot de passe

Choix de la base

A la base que l'on à crée précédement.

Présentation


Interface apps

Odoo propose une installation aisé des modules d'application métier.
Ils s'installent très rapidement et sont parfaitement adapté à vos équipe, il suffit de l'installer et vos utilisateur auront accés
2 petits onglets situés en haut à gauche permettent de basculer du mode installation de module à réglages.

Interface setting

C'est plutot claire est dégagé. Les accés aux sections de configrations sont rapide et aisé, difficile de faire plus simple, même en Anglais cela ne pose aucun probleme.

Création d'utilisateur.

Nous allons rapidement pouvoir créer des utilisateurs, gracec aux Templates


Resultat

Resultat avec psql
On constate la base jarvis à bien été crée, elle me servira pour exporter les dump de jarvis que j'ai en local ça me permettra de controler si on peut faire un pg_restore entre 2 base postgres qui ne sont pas de la même version.

1 postgres=# \l
2 
3 								  Liste des bases de données
4 	Nom    | Propriétaire | Encodage | Collationnement | Type caract. |    Droits d accès     
5 -----------+--------------+----------+-----------------+--------------+-----------------------
6  jarvis    | odoo         | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | 
7  odoo      | odoo         | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | =Tc/odoo             +
8 		   |              |          |                 |              | odoo=CTc/odoo
9  postgres  | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | 
10  template0 | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | =c/postgres          +
11 		   |              |          |                 |              | postgres=CTc/postgres
12  template1 | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | =c/postgres          +
13 		   |              |          |                 |              | postgres=CTc/postgres
14 (5 lignes)
1 postgres=# \du
2 										  Liste des rôles
3  Nom du rôle |                                Attributs                                 | Membre de 
4 -------------+--------------------------------------------------------------------------+-----------
5  odoo        | Créer une base                                                           | {}
6  postgres    | Superutilisateur, Créer un rôle, Créer une base, Réplication, Bypass RLS | {}
7 
8 postgres=# 

C'est là que j'ai perdu la connexion avec le serveur web.....
Le premier reflexe à avoir aller voir les logs.

1 tail -f /var/log/postgresql/postgresql-9.5-main.log                                              
2 
3 2016-02-15 20:07:58 CET [1640-1] LOG:  type de connexion « PostgreSQL » invalide
4 2016-02-15 20:07:58 CET [1640-2] CONTEXTE :  ligne 1 du fichier de configuration « /etc/postgresql/9.5/main/pg_hba.conf »
5 2016-02-15 20:07:58 CET [1640-3] FATAL:  'na pas pu charger pg_hba.conf'
6 2016-02-15 20:30:21 CET [1760-1] LOG:  'le système de bases de données a été arrêté à '2016-02-15 16:00:12 CET''
7 2016-02-15 20:30:21 CET [1760-2] LOG:  'MultiXact member wraparound protections are now enabled'
8 2016-02-15 20:30:21 CET [1759-1] LOG:  'le système de bases de données est prêt pour accepter les connexions
9 2016-02-15 20:30:21 CET [1764-1] LOG:   lancement du processus autovacuum'
10 2016-02-15 20:30:21 CET [1766-1] '[inconnu]@[inconnu] LOG:  paquet de démarrage incomplet'
11 2016-02-15 20:31:33 CET [1834-1] odoo@odoo ERREUR:  'na pas pu obtenir un verrou sur la relation « ir_cron »'
12 2016-02-15 20:31:33 CET [1834-2] odoo@odoo INSTRUCTION :  SELECT *
13 										   FROM ir_cron
14 										   WHERE numbercall != 0
15 											  AND active
16 											  AND nextcall <= (now() at time zone 'UTC')
17 											  AND id=2
18 										   FOR UPDATE NOWAIT
19 2016-02-15 20:32:34 CET [1845-1] odoo@jarvis ERREUR:  na pas pu obtenir un verrou sur la relation « ir_cron »
20 2016-02-15 20:32:34 CET [1845-2] odoo@jarvis INSTRUCTION :  SELECT *
21 										   FROM ir_cron
22 										   WHERE numbercall != 0
23 											  AND active
24 											  AND nextcall <= (now() at time zone 'UTC')
25 											  AND id=2
26 										   FOR UPDATE NOWAI

Penchons nous sur les fichiers de configuration, notament sur :

1 vi /etc/odoo/openerp-server.conf

il contient l'ensemble de la configuration du site, c'est même un dockerfiles, ce qui m'incite encore un peu plus à me lancer dans dockers
Et visiter le site pour voir les instructions de configuration serait des plus utile.
Il est indiqué qu'un fichier de config se situe également dans le répertoire utilisateur .$HOME/.openerp_serverrc

1 [options]
2 addons_path = /usr/lib/python2.7/dist-packages/openerp/addons
3 admin_passwd = 'mot2passe'							# Mot2passe admin
4 csv_internal_sep = ,								# Séparateur de champs du fichier csv
5 data_dir = /var/lib/odoo/.local/share/Odoo			# Répertoire des données de odoo
6 db_host = localhost									# Représente la machine
7 db_maxconn = 64
8 db_name = odoo										# Nom de la base
9 db_password = 'mot2passe'							# Mo2passe user_dbname
10 db_port = 5432										# Port par défault de postgres
11 db_template = template1								# Model de base 
12 db_user = odoo										# Utilisateur db
13 dbfilter = .*
14 debug_mode = False
15 demo = {}
16 dev_mode = False
17 email_from = False
18 geoip_database = /usr/share/GeoIP/GeoLiteCity.dat	#Utilitaire de geolocalisation
19 import_partial =
20 limit_memory_hard = 2684354560
21 limit_memory_soft = 2147483648
22 limit_request = 8192
23 limit_time_cpu = 60
24 limit_time_real = 120
25 list_db = True
26 log_db = False
27 log_db_level = warning
28 log_handler = :INFO
29 log_level = info
30 logfile = '/var/log/odoo/odoo-server.log'
31 logrotate = 'False'									#
32 longpolling_port = 8072
33 max_cron_threads = 2
34 osv_memory_age_limit = 1.0
35 osv_memory_count_limit = False
36 pg_path = None										#
37 pidfile = 'False'									# C'est ici que l'on indique oû créer le pidfile (processus; monit)
38 proxy_mode = False
39 reportgz = False
40 server_wide_modules = None
41 smtp_password = False								# Mot2passe SMTP
42 smtp_port = 25										# Port SMTP
43 smtp_server = localhost								# Indication du serveur mail
44 smtp_ssl = False									# Chiffrement SSL
45 smtp_user = False									# Utilisateur SMTP
46 syslog = False										# syslog est un utilitaire de lod
47 test_commit = False
48 test_enable = False
49 test_file = False
50 test_report_directory = False
51 translate_modules = ['all']
52 unaccent = False
53 without_demo = False
54 workers = 0
55 xmlrpc = True
56 xmlrpc_interface = 0.0.0.0							# Il semble que par défaut se soit ça
57 xmlrpc_port = 8069									# Port du serveur web

Sauvegarde configuration

C'est résolu, je vais sauvegarder la configuration.

1 cp /etc/odoo/openerp-server.conf /etc/odoo/openerp-server.conf.old