Difference between revisions of "Installazione Odoo avanzata"

From PNLUG
Jump to: navigation, search
(Created page with " È consigliata per installazioni in produzione più avanzate o per coloro che vogliono sviluppare o modificare moduli Odoo sulla propria macchina.<br> L'installazione prevede...")
 
Line 81: Line 81:
 
git clone https://www.github.com/OCA/OCB --depth 1 --branch 12.0 --single-branch
 
git clone https://www.github.com/OCA/OCB --depth 1 --branch 12.0 --single-branch
 
</pre>
 
</pre>
 +
 +
Creare le directory necessarie
 +
 +
<pre>
 +
mkdir addons
 +
mkdir addons/12.0
 +
mkdir addons/12.0/OCA
 +
mkdir addons/12.0/custom
 +
 +
chmod 700 addons
 +
chmod 700 12.0
 +
</pre>
 +
 +
  
 
Creare l'ambiente virtualenv e attivarlo
 
Creare l'ambiente virtualenv e attivarlo
Line 86: Line 100:
 
<pre>
 
<pre>
 
python3 -m venv odoo12-venv
 
python3 -m venv odoo12-venv
 +
 
. odoo12-venv/bin/activate
 
. odoo12-venv/bin/activate
 
</pre>
 
</pre>
Line 100: Line 115:
  
  
 +
Creare il file di configurazione per l'istanza Odoo
  
 +
<pre>
 +
mkdir /etc/odoo
 +
 +
sudo cp /opt/odoo/OCB/debian/odoo.conf /etc/odoo/odoo12.conf
  
Predisporre una directory progetto (es. ~/odoo-dev11) e posizionarsi all’interno
+
chmod 640 /etc/odoo/odoo12.conf
  
<pre>
+
chown odoo:odoo /etc/odoo/odoo12.conf
mkdir odoo-dev11
 
cd odoo-dev11
 
 
</pre>
 
</pre>
  
 
+
Creare l'ambiente per gestire i log
Scaricare i file Odoo della versione 11 e salvarli nella directory OCB
 
  
 
<pre>
 
<pre>
git clone  https://github.com/OCA/OCB.git OCB --depth=1 --branch=11.0 --single-branch
+
cd /var/log
</pre>
 
  
 +
mkdir odoo
  
==== Odoo 12 ====
+
chown root:odoo odoo && chmod 750 odoo
  
 +
cd odoo
  
Predisporre una directory progetto (es. ~/odoo-dev12) e posizionarsi all’interno
+
touch odoo12-server.log
  
<pre>
+
chown odoo:adm odoo12-server.log && chmod 640 odoo12-server.log
mkdir odoo-dev12
 
cd odoo-dev12
 
 
</pre>
 
</pre>
  
  
Scaricare i file Odoo della versione 12 e salvarli nella directory OCB
+
Creare il servizio systemd specifico per Odoo creando un file in /etc/systemd/system/odoo12.service e aggiungendo il seguente contenuto
  
 
<pre>
 
<pre>
git clone  https://github.com/OCA/OCB.git OCB --depth=1 --branch=12.0 --single-branch
+
[Unit]
</pre>
+
Description=Odoo12
 
+
Requires=postgresql.service
 
+
After=network.target postgresql.service
=== Creazione ambiente virtuale ===
 
  
Generare l’ambiente virtuale con i file della versione Python desiderata creando una directory apposita (es. venv-3.6)
+
[Service]
 +
Type=simple
 +
SyslogIdentifier=odoo12
 +
PermissionsStartOnly=true
 +
User=odoo
 +
Group=odoo
 +
ExecStart=/opt/odoo/odoo12-venv/bin/python3 /opt/odoo/OCB/odoo-bin -c /etc/odoo/odoo12.conf --logfile /var/log/odoo/odoo12-server.log
 +
StandardOutput=journal+console
  
<pre>
+
[Install]
virtualenv -p /usr/bin/python3.6 venv-3.6
+
WantedBy=multi-user.target
 
</pre>
 
</pre>
  
Attivare l’ambiente virtuale VirtualEnv
+
Caricare il servizio appena creato
  
 
<pre>
 
<pre>
source venv-3.6/bin/activate
+
sudo systemctl daemon-reload
</pre>
 
 
 
Installare i pacchetti Python secondo le specifiche di Odoo
 
  
<pre>
+
sudo systemctl start odoo12.service
pip3 install -r OCB/requirements.txt
 
 
</pre>
 
</pre>
  
Installare eventuali pacchetti Python aggiuntivi
+
Per analizzare il log del servizio systemd appena lanciato
  
 
<pre>
 
<pre>
pip3 install paramiko
+
journalctl -u odoo12
pip3 install watchdog
 
pip3 install odfpy
 
pip3 install codicefiscale
 
pip3 install psycogreen
 
pip3 install pymssql
 
pip3 install pyodbc (richiede la libreria unixodbc-dev)
 
 
</pre>
 
</pre>
  
Per disattivare l’ambiente  VirtualEnv
 
  
<pre>
 
deactivate
 
</pre>
 
  
Installare eventuali pacchetti apt per la stampa cups
 
  
<pre>
 
sudo apt install cups
 
sudo apt install python-cups
 
sudo apt install libcups2-dev
 
sudo apt install python3-dev
 
</pre>
 
  
Installare eventuali pacchetti Python per la stampa cups
 
 
<pre>
 
python3 -m pip install --upgrade pip
 
python3 -m pip install pygments
 
python3 -m pip install pycups
 
python3 -m pip install zpl2 (opzionale)
 
</pre>
 
  
 
=== Configurazione di Pycharm con VirtualEnv ===
 
=== Configurazione di Pycharm con VirtualEnv ===

Revision as of 19:08, 9 October 2019

È consigliata per installazioni in produzione più avanzate o per coloro che vogliono sviluppare o modificare moduli Odoo sulla propria macchina.
L'installazione prevede l'impiego del programma VirtualEnv che consente di installare/gestire versioni diverse di Python (richieste da specifiche versioni di Odoo) mantenendo inalterati i pacchetti di sistema.

Procedura testata su Ubuntu 16.04 e Debian 9.3.0.

(Consigliamo di leggere una volta tutte le istruzioni e poi procedere.)

Requisiti

  • disponibilità programma Git: per installarlo sudo apt install git
  • disponibilità programma VirtualEnv: per installarlo sudo apt install python3-venv
  • disponibilità programma PostgreSQL: per installarlo sudo apt install postgresql
  • disponibilità di alcuni tool e librerie: per installarli
sudo apt install python3-pip python3-dev build-essential libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools


La struttura delle directory qui proposta per gestire l'installazione è la seguente:

 /opt/odoo 
         |__ 12.0
         |__ odoo12-venv
         |__ addons/12.0
         |             |__OCA
         |             |    |_ repo_oca_1
         |             |    |_ repo_oca_2
         |             |    |_ ...
         |             |
         |             |__ custom
         |                      |_repo_custom_1
         |                      |_repo_custom_2
         |                      |_ ...
         |__ 13.0
         |__ odoo13-venv
         |__ addons/13.0
                       |__ OCA
                       |     |_ repo_oca_1
                       |     |_ repo_oca_2
                       |     |_ ...
                       |
                       |__ custom
                                |_repo_custom_1
                                |_repo_custom_2
                                |_ ...
         


Può essere modificata allineando opportunamente le istruzioni di installazione.


Preparazione

Creare l'utente odoo, con home in /opt/odoo

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo

Installare postgres

sudo apt-get install postgresql

Creare l'utente odoo in postgres, che sarà il proprietario dei database Odoo

sudo su - postgres -c "createuser -s odoo"

Passare all'utente odoo, spostandosi nella sua home

sudo su - odoo

Clonare odoo in locale, selezionando il branch corretto

git clone https://www.github.com/OCA/OCB --depth 1 --branch 12.0 --single-branch

Creare le directory necessarie

mkdir addons
mkdir addons/12.0
mkdir addons/12.0/OCA
mkdir addons/12.0/custom

chmod 700 addons
chmod 700 12.0


Creare l'ambiente virtualenv e attivarlo

python3 -m venv odoo12-venv

. odoo12-venv/bin/activate

Installare da virtualenv i moduli necessari

pip3 install -r OCB/requirements.txt
pip3 install pyxb==1.2.6
pip3 install codicefiscale
pip3 install unidecode
pip3 install phonenumbers


Creare il file di configurazione per l'istanza Odoo

mkdir /etc/odoo

sudo cp /opt/odoo/OCB/debian/odoo.conf /etc/odoo/odoo12.conf

chmod 640 /etc/odoo/odoo12.conf

chown odoo:odoo /etc/odoo/odoo12.conf

Creare l'ambiente per gestire i log

cd /var/log

mkdir odoo

chown root:odoo odoo && chmod 750 odoo

cd odoo

touch odoo12-server.log

chown odoo:adm odoo12-server.log && chmod 640 odoo12-server.log


Creare il servizio systemd specifico per Odoo creando un file in /etc/systemd/system/odoo12.service e aggiungendo il seguente contenuto

[Unit]
Description=Odoo12
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo12
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo12-venv/bin/python3 /opt/odoo/OCB/odoo-bin -c /etc/odoo/odoo12.conf --logfile /var/log/odoo/odoo12-server.log
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Caricare il servizio appena creato

sudo systemctl daemon-reload

sudo systemctl start odoo12.service

Per analizzare il log del servizio systemd appena lanciato

journalctl -u odoo12




Configurazione di Pycharm con VirtualEnv

Avviare PyCharm e aprire un Progetto (non Nuovo progetto) puntando alla directory OCB nella directory_progetto.

Aggiungere l’interprete Python selezionando il menu

File → Settings → Project → Project Interpreter → Add : Existing Enviroment

Selezionare il file python (link al file della versione installata) della directory_virtualenv/bin e impostare il programma da lanciare e la configurazione da utilizzare in

Run → Debug-Configuration

Con + aggiungo una nuova configurazione di tipo Python impostando i parametri

script => punta al file odoo-bin del progetto (es. ~/odoo-dev/odoo10/OCA/OCB/odoo-bin)
script parameters => inserisco i parametri configurazione avvio Odoo

Tra i parametri di avvio ricordiamo --dev=all che ricarica automaticamente i file Python e le definizioni delle viste XML modificati senza richiedere il riavvio del server Odoo e l'aggiornamento del modulo.

Aggiungere l'utente di sistema a Postgres

Prima di avviare Odoo da PyCharm è necessario che l’utente di sistema (nome_utente) con cui si opera sia un utente Postgres.
Per aggiungere l’utente di sistema a Postgres:

sudo su
su postgres
createuser -s nome_utente

Avviare psql e modificare i ruoli di nome_utente

psql
psql=# alter role nome_utente with createdb;
psql=# alter role nome_utente with nocreaterole;
psql=# alter role nome_utente with nosuperuser;

Nota con installazione di produzione

Se è presente nella macchina una installazione di Odoo per produzione (vedi Installazione standard semplificata), prima di avviare PyCharm è necessario disabilitare il servizio Odoo con

systemctl disable odoo.service

oppure

service odoo stop
.

Installazione IDE di sviluppo

Per iniziare a sviluppare con Odoo è altamente consigliata l'installazione di una IDE di sviluppo.

Installazione Visual Studio Code

Seguire la seguente guida per l'installazione di VSCode

Installazione Pycharm Community Edition

Seguire la seguente guida per l'installazione di Pycharm CE

Risoluzione problemi

Vedi l'apposita sezione: Troubleshooting