Odoo Installazione multipla unico server: differenze tra le versioni
(→Gli script) |
(→Attivazione e configurazione del virtualhost) |
||
Riga 82: | Riga 82: | ||
=== Attivazione e configurazione del virtualhost === | === Attivazione e configurazione del virtualhost === | ||
− | Giunti a questo punto, se la nostra macchina risponde al dominio ''mysite.com'', attraverso il browser possiamo raggiungere le nostre istanze, puntanto agli URL: | + | Giunti a questo punto e avviate le due istanze preparate qui sopra, se la nostra macchina risponde al dominio ''mysite.com'', attraverso il browser possiamo raggiungere le nostre istanze, puntanto agli URL: |
http://mysite.com:8069/ | http://mysite.com:8069/ | ||
Riga 91: | Riga 91: | ||
<br> | <br> | ||
− | che però sono URL non molto "gradite" ai vostri utenti, in quanto dovranno puntare allo stesso sito ma cambiando la porta per selezionare il | + | che però sono URL non molto "gradite" ai vostri utenti, in quanto dovranno puntare allo stesso indirizzo del sito ma cambiando obbligatoriamente la porta per selezionare il servizio desiderato a cui accedere.<br> Sarebbe molto meglio utilizzare degli indirizzi ''ad hoc'' su domini di terzo livello ma sempre presenti sulla porta HTTP 80; per fare questo ci viene in aiuto il server web Apache (noi abbiamo utilizzato questo...),con la direttiva ''proxy''.<br> |
− | Se non abbiamo ancora installato il server Apache, lo installiamo con tutti i necessari parametri standard di configurazione e | + | Se non abbiamo ancora installato il server Apache, lo installiamo con tutti i necessari parametri standard di configurazione (seguendo i vari esempipresenti in rete...) e successivamente apriamo un terminale come utente ''root'' e digitiamo: |
nano /etc/apache2/sites-available/odoo.mysite.com.conf | nano /etc/apache2/sites-available/odoo.mysite.com.conf | ||
Riga 126: | Riga 126: | ||
sudo service apache2 restart | sudo service apache2 restart | ||
+ | <br> | ||
− | Ora scriviamo un script simile al precedente per la seconda istanza; ad esempio per l'indirizzo interzo dominio: odoo2.mysite.com, copiando il primo codice e sostituendo il nome del sito. Procedere con l'abilitazione del sito e | + | Ora scriviamo un script simile al precedente per la seconda istanza; ad esempio per l'indirizzo interzo dominio: odoo2.mysite.com, copiando il primo codice e sostituendo il nome del sito e il numero della porta HTTP. Procedere con i comandi per l'abilitazione del sito e per il riavvio del servizio Apache. |
Versione delle 17:03, 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 effetuare installazioni dipartimentali.
Odoo, tramite alcune 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 configurati in modo diverso.
In alternativa si può effettuare l'installazione di Odoo tramite i file sorgente; in questo caso si dovranno realizzare tanti script di avvio quante sono le istanze di cui avremo la necessità.
Il comando screen
Se utilizziamo una VPS come server sarà necessario fare in modo che gli script lanciati restino in esecuzione anche dopo che ci saremo disconnessi. Per fare questo abbiamo due soluzioni, o scriviamo un daemon che lancia gli script automaticamente, oppure più semplicemente possiamo usare il comando screen per realizzare una shell virtuale che rimanga in esecuzione anche dopo la disconnessione dell'utente dalla VPS; ad esempio, con il comando:
screen su -s /bin/bash odoo
dato da utente root, l'istanza apre uno screen virtuale per l'utente odoo, da dove poi potremo digitare i comandi:
cd ~/ ./script1.sh & ./script2.sh &
per avviare le sessioni Odoo di nostro interesse.
Ora avendo avviato le due istanze di Odoo, sarà necessario digitare da tastiera Ctrl+A seguito da d per effettuare il detach da screen da terminale e successivamente potremo tranquillamente fare il logout dalla sessione, mentre i due processi di Odoo continueranno a girare normalmente.br>In seguito, per rientrare nella sessione corrente dopo il login alla VPS, sarà sufficiente dare il comando:
screen -r
per rientrare su screen.
Una volta terminato ciò che dovevamo fare, possiamo ad esempio uscire da screen con il comando:
exit
Ovviamente, perché tutto questo funzioni correttamente e le sessioni di Odoo vengano avviate normalmente, 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 inserire i vari comandi dei parametri sulla riga di comando dello script di avvio.
Nella documentazione di Odoo potete trovare la lista tutti i parametri di configurazione; a noi in questo momento interessano solo i comandi che trovate riportati di seguito.
I parametri da cambiare
- --xmlrpc-port, con questo comando si può cambiare la porta HTTP per accedere alla sessione di 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 cartelle in altre posizioni, utilizzabili per installare ulteriori addons. Si può decidere di utilizzare i stessi percorsi per tutte le istanze, oppure utilizzare dei percorsi diversi per ogni singola istanza.
- --db-filter, in istanze diverse si desidera che non sia consentito agli utenti di poter scegliere i database appartenenti ad altre istanze; con questo comando si limita l'accesso ai soli database desiderati.
- --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
Giunti a questo punto, iniziamo a vedere gli script occorrenti per far partire Odoo; potrebbero essere simili a questi:
script1.sh
#!/bin/sh ./OCB/odoo-bin --db-filter=OCB --addons-path=~/OCB/addons,~/myaddons --logfile=~/var/odoo.log --log-level=warn --logrotate
e
script2.sh
#!/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
Giunti a questo punto e avviate le due istanze preparate qui sopra, se la nostra macchina risponde al dominio mysite.com, attraverso il browser possiamo raggiungere le nostre istanze, puntanto agli URL:
http://mysite.com:8069/
e
http://mysite.com:8070/
che però sono URL non molto "gradite" ai vostri utenti, in quanto dovranno puntare allo stesso indirizzo del sito ma cambiando obbligatoriamente la porta per selezionare il servizio desiderato a cui accedere.
Sarebbe molto meglio utilizzare degli indirizzi ad hoc su domini di terzo livello ma sempre presenti sulla porta HTTP 80; per fare questo ci viene in aiuto il server web Apache (noi abbiamo utilizzato questo...),con la direttiva proxy.
Se non abbiamo ancora installato il server Apache, lo installiamo con tutti i necessari parametri standard di configurazione (seguendo i vari esempipresenti in rete...) e successivamente apriamo un terminale come utente root e digitiamo:
nano /etc/apache2/sites-available/odoo.mysite.com.conf
e scriviamo al suo interno 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 del codice per creare il primo servizio in terzo dominio (odoo.mysite.com) 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 al precedente per la seconda istanza; ad esempio per l'indirizzo interzo dominio: odoo2.mysite.com, copiando il primo codice e sostituendo il nome del sito e il numero della porta HTTP. Procedere con i comandi per l'abilitazione del sito e per il riavvio del servizio Apache.
Da ora, potremo accedere da browser ai due siti con:
http://odoo.mysite.com
e
http://odoo2.mysite.com
Da notare che Apache direziona le chiamate dall'esterno sul proprio localhost, non abbiamo effettuato ulteriori prove ma in questo modo per aumentare la sicurezza si potrebbe attivare il firewall per impedire l'accesso ai servizi utilizzando porte non standard, come la 8069 e la 8070 originarie.