Odoo Installazione multipla unico server: differenze tra le versioni
(→CONFIGURAZIONE ISTANZE MULTIPLE) |
|||
Riga 8: | Riga 8: | ||
=== Premessa === | === Premessa === | ||
− | Odoo è una applicazione web. Questo è decisamente un punto di forza perché oltre | + | Odoo è una applicazione basata su servizi via web, così come la maggior parte della sua configurazione. Questo è decisamente un punto di forza perché oltre a permettere di esporre in internet contenuti aziendali integrati con le funzionalità ERP, consente anche di configurare il server in molti modi diversi, a seconda delle proprie necessità.<br> |
− | a permettere di esporre in internet contenuti aziendali integrati con le | + | Ad esempio lo si può installare in un server locale non esposto ad internet per massimizzare gli aspetti di sicurezza, oppure lo si può installare su un server esposto in internet come ad esempio una VPS.<br> |
− | funzionalità ERP, consente anche di configurare il server in molti modi. | + | |
− | esempio lo si può installare in un server locale non esposto ad internet per | + | |
− | massimizzare gli aspetti di sicurezza, oppure si può installare su un server | + | |
− | esposto in internet come ad esempio una VPS. | + | |
− | Nel caso di installazione in una VPS, potrebbe essere desiderabile mettere nella | + | Nel caso di installazione effettuata in una VPS, potrebbe essere desiderabile mettere nella stessa macchina fisica più istanze separate, per servire aziende diverse o per installazioni dipartimentali.<br> |
− | stessa macchina fisica più istanze separate | + | |
− | per installazioni dipartimentali. | + | |
− | Odoo | + | Odoo, tramite opportune configurazioni, permette di far convivere istanze isolate condividendo gli stessi sorgenti e lo stesso motore di database.<br> |
− | condividendo gli stessi sorgenti e lo stesso motore di database. | + | |
− | Delle procedure di installazione abbiamo già parlato | + | Delle procedure standard di installazione abbiamo già parlato nella pagina principale; se si effettua l'installazione utilizzando il file .deb verrà installato un ''daemon'' che farà avviare il servizio HTTP di Odoo utilizzando la porta standard 8069 e utilizzerà un file di configurazione presente nella cartella ''/etc/odoo'' per le restanti configurazioni.<br> |
− | il file .deb verrà installato un ''daemon'' che | + | |
− | + | ||
− | /etc/odoo per le restanti configurazioni. | + | |
− | In questo caso per lanciare ulteriori istanze | + | In questo caso, per lanciare ulteriori istanze, sarà necessario realizzare altri ''daemon'' simili al primo ma con i parametri modificati.<br> |
− | ''daemon'' simili al primo ma con i parametri modificati. | + | |
− | In alternativa si può effettuare l'installazione | + | In alternativa si può effettuare l'installazione dai sorgenti; in questo caso si dovranno realizzare tanti script di avvio quante sono le istanze di cui avremo la necessità. |
− | si | + | |
− | + | ||
=== Il comando screen === | === Il comando screen === | ||
− | Se siamo in una VPS è necessario fare in modo che gli script lanciati restino | + | Se siamo in una VPS è necessario fare in modo che gli script lanciati restino in esecuzione anche dopo che ci siamo disconnessi. Per fare questo abbiamo due soluzioni, o scriviamo un daemon che lancia gli script automaticamente, oppure piu semplicemente possiamo usare il ccomando screen per realizzare una shell virtuale che rimanga in esecuzione anche dopo la disconessione; ad esempio con il comando: |
− | in esecuzione anche dopo che ci siamo disconnessi. Per fare questo abbiamo due | + | |
− | soluzioni, o scriviamo un daemon che lancia gli script automaticamente, oppure | + | |
− | piu semplicemente possiamo usare il ccomando screen per realizzare una shell | + | |
− | virtuale che rimanga in esecuzione anche dopo la disconessione | + | |
screen su -s /bin/bash odoo | screen su -s /bin/bash odoo | ||
− | da utente root apre uno screen virtuale per l'utente odoo, poi | + | dato da utente ''root'', apre uno screen virtuale per l'utente ''odoo'', da dove poi possiamo digitare i comandi: |
− | i comandi | + | |
cd ~/ | cd ~/ | ||
Riga 51: | Riga 33: | ||
./script2.sh & | ./script2.sh & | ||
− | + | Ora abbiamo in esecuzione due istanze di Odoo e digitando da tastiera ''ctrl+A'' seguito da ''d'' effettuiamo il ''detach'' dal terminale e possiamo tranquillamente fare il logout dala sessione mentre il processo Odoo continuerà a girare.<br>In seguito, per rientrare nella sessione corrente, sarà sufficiente dare il comando: | |
− | seguito da d effettuiamo il detach e possiamo fare il | + | |
− | + | ||
screen -r | screen -r | ||
− | + | da dove poi possiamo ad esempio uscire da ''screen'' con il comando: | |
exit | exit | ||
− | + | Ovviamente, perchè tutto funzioni correttamente, avremo in precedenza preparato gli script da eseguire nella ''\home'' dell'utente ''odoo'', inserendo la configurazione che vedremo tra poco di seguito. | |
− | nella home dell'utente odoo | + | |
=== La configurazione di Odoo === | === La configurazione di Odoo === |
Versione delle 16:30, 8 gen 2017
CONFIGURAZIONE ISTANZE MULTIPLE
Premessa
Odoo è una applicazione basata su servizi via web, così come la maggior parte della sua configurazione. Questo è decisamente un punto di forza perché oltre a permettere di esporre in internet contenuti aziendali integrati con le funzionalità ERP, consente anche di configurare il server in molti modi diversi, a seconda delle proprie necessità.
Ad esempio lo si può installare in un server locale non esposto ad internet per massimizzare gli aspetti di sicurezza, oppure lo si può installare su un server esposto in internet come ad esempio una VPS.
Nel caso di installazione effettuata in una VPS, potrebbe essere desiderabile mettere nella stessa macchina fisica più istanze separate, per servire aziende diverse o per installazioni dipartimentali.
Odoo, tramite opportune configurazioni, permette di far convivere istanze isolate condividendo gli stessi sorgenti e lo stesso motore di database.
Delle procedure standard di installazione abbiamo già parlato nella pagina principale; se si effettua l'installazione utilizzando il file .deb verrà installato un daemon che farà avviare il servizio HTTP di Odoo utilizzando la porta standard 8069 e utilizzerà un file di configurazione presente nella cartella /etc/odoo per le restanti configurazioni.
In questo caso, per lanciare ulteriori istanze, sarà necessario realizzare altri daemon simili al primo ma con i parametri modificati.
In alternativa si può effettuare l'installazione dai sorgenti; in questo caso si dovranno realizzare tanti script di avvio quante sono le istanze di cui avremo la necessità.
Il comando screen
Se siamo in una VPS è necessario fare in modo che gli script lanciati restino in esecuzione anche dopo che ci siamo disconnessi. Per fare questo abbiamo due soluzioni, o scriviamo un daemon che lancia gli script automaticamente, oppure piu semplicemente possiamo usare il ccomando screen per realizzare una shell virtuale che rimanga in esecuzione anche dopo la disconessione; ad esempio con il comando:
screen su -s /bin/bash odoo
dato da utente root, apre uno screen virtuale per l'utente odoo, da dove poi possiamo digitare i comandi:
cd ~/ ./script1.sh & ./script2.sh &
Ora abbiamo in esecuzione due istanze di Odoo e digitando da tastiera ctrl+A seguito da d effettuiamo il detach dal terminale e possiamo tranquillamente fare il logout dala sessione mentre il processo Odoo continuerà a girare.
In seguito, per rientrare nella sessione corrente, sarà sufficiente dare il comando:
screen -r
da dove poi possiamo ad esempio uscire da screen con il comando:
exit
Ovviamente, perchè tutto funzioni correttamente, avremo in precedenza preparato gli script da eseguire nella \home dell'utente odoo, inserendo la configurazione che vedremo tra poco di seguito.
La configurazione di Odoo
La configurazione di Odoo può essere salvata in un file di configurazione, oppure si possono passare i parametri sulla riga di comando dello script di avvio.
Nella documentazione di odoo si trova la lista tutti i parametri di configurazione, a noi in questo momento interessano sol questi
I parametri da cambiare
- --xmlrpc-port con questo comando si può cambiare la porta per accedere a odoo la configurazione di default utilizza la porta 8069, ma noi per poter attivare più istanze di odoo possiamo attivare ulteriori porte ad esempio la 8070
- --addons-path oltre agli addons forniti di default è possibile aggiungere altre posizioni utilizzabili per installare altri addons, si può decidere di utilizzare i stessi percorsi per tutte le istanze, oppure utilizzare percorsi diversi.
- --db-filter in istanze diverse si desidera che non sia consentito agli utenti di scegliere database appartenenti ad altre istanze, con questo comando si limita l'accesso ai soli database previsti.
- --logfile per default odoo manda il log degli eventi a video, ma esistono una serie di comandi che permettono di scrivere il log altrove per controllarne l'attività
Gli script
A questo punto gli script per far partire odoo potrebbero essere simili a questi
#!/bin/sh ./OCB/odoo-bin --db-filter=OCB --addons-path=~/OCB/addons,~/myaddons --logfile=~/var/odoo.log --log-level=warn --logrotate
e
#!/bin/sh ./OCB/odoo-bin --xmlrpc-port=8070 --db-filter=ODOO2 --addons-path=~/OCB/addons,~/myaddons2 --logfile=~/var/odoo2.log --log-level=warn --logrotate
Attivazione e configurazione del virtualhost
A questo punto se la nostra macchina risponde al dominio mysite.com dal browser possiamo raggiungere le nostre istanze con
http://mysite.com:8069/
e
http://mysite.com:8070/
che però sono url non molto "gradite", sarebbe molto meglio avere indirizzi su domini di terzo livello sulla porta 80, per fare questo ci viene in aiuto il server web apache con la direttiva proxy.
Se non abbiamo ancora installato apache lo installiamo con tutti i necessari parametri di configurazione e poi apriamo un terminale come utente root e digitiamo:
nano /etc/apache2/sites-available/odoo.mysite.com.conf
e scriviamo il seguente codice:
<VirtualHost *:80> ServerAdmin info@mysite.com ServerName odoo.mysite.com ServerAlias www.odoo.mysite.com UseCanonicalName Off ErrorLog /home/odoo/error.log CustomLog /home/odoo/access.log combined <Proxy *> Order deny,allow Allow from all </Proxy> ProxyRequests Off ProxyPass / http://localhost:8069/ ProxyPassReverse / http://localhost:8069/ ProxyVia On LogLevel warn </VirtualHost>
Terminato l'inserimento salviamo il file e, per abilitarlo, digitiamo il comando:
a2ensite odoo.mysite.com.conf
e riavviamo il server apache con:
sudo service apache2 restart
Ora scriviamo un script simile per la seconda istanza ad esempio per l'inirizzo odoo2.mysite.com
ed ora potremo accedere da browser con:
http://odoo.mysite.com
e
http://odoo2.mysite.com
Da notare che apache direziona le chiamate dall'esterno sul proprio localhost, non ho provato ma in questo modo per aumentare la sicurezza si potrebbe attivare il firewall per impedire l'accesso da porte non standard come sono la 8069 e 8070
Tutti gli esempi di codice presentati sono indicativi ed andranno modificati
in funzione della propria configurazione di macchina.