Skip to content

1.2. Instal·lació d'Odoo

AramGarcia edited this page Jan 12, 2024 · 22 revisions

Versió d'Odoo

En el moment d'iniciar el desenvolupament de l'IMS, l'última versió estable és la d'Odoo és la v16.

Cal tenir en compte que Odoo no ofereix un mecanisme senzill d'actualitzar a versions més noves per a la versió Community i, per tant, es recomana fer servir la versió més nova disponible per garantir que es disposa de les últimes novetats i que la versió 16 corregeix els possibles bugs resultant altament estable quan l'IMS estigui llest.

Procés d'instal·lació

IsardVDI (opció recomanada)

S'ofereixen dues opcions per a realitzar la instal·lació d'Odoo dins d'una màquina virtual d'IsardVDI, en funció de si es vol fer servir una instal·lació amb contenidors o sense.

IsardVDI amb contenidors LXC/LXD (opció recomanada)

Aquesta instal·lació requereix més temps de desplegament (es tracta d'un procés automàtic), però té l'avantatge de disposar de snapshots, motiu pel qual es pot restaurar la màquina a estats anteriors si hi ha qualsevol mena de problema.

Cal crear un escriptori nou fent servir la plantilla de tipus "server" que inclou els scripts de desplegament:

image

Un cop arrencar l'escriptori, es mostraran els scripts disponibles; cal escollir l'anomenat "odoo-v16-container":

image

Un cop finalitzi la instal·lació, la màquina virtual es reiniciarà automàticament i tornarà a iniciar sessió de forma automàtica mostrant, alhora, totes les contrasenyes. Aquesta màquina virtual disposa d'una instància d'Ubuntu Server 22.04 dins un contenidor LXC/LXD on es troba instal·lat Odoo i, addicionalment, s'ha aplicat una redirecció de ports de tal manera que apuntar al port 8069 de la màquina virtual implica comunicar-se amb la instància d'Odoo que es troba instal·lada dins el contenidor.

Per a fer servir Odoo, és suficient amb obrir un navegador web i introduir l'adreça IP de la màquina virtual fent servir el port 8069. Altrament, per a modificar la configuració d'Odoo i desenvolupar mòduls, caldrà connectar-se primer a la màquina virtual via ssh i, després, accedir al contenidor:

ssh usuari@<ip-maquina-virtual>
lxc exec odoo-v16 -- /bin/bash

Per últim, cal tenir en compte que aquesta màquina inclou un snapshot inicial per si es volen revertir al moment de la instal·lació; les següents comandes poden ser d'utilitat:

  • Aturar el contenidor: lxc stop odoo-v16
  • Arrencar el contenidor: lxc start odoo-v16
  • Restaurar el contenidor: lxc restore odoo-v16 initial
  • Llistar tots els snapshots: lxc info odoo-v16
  • Crear un snapshot: lxc snapshot odoo-v16 <snapshot-name>
  • Restaurar un snapshot: lxc restore odoo-v16 <snapshot-name>
  • Esborrar un snapshot: lxc delete odoo-v16/<snapshot-name>

IsardVDI sense contenidors

Aquesta instal·lació requereix menys temps de desplegament (es tracta d'un procés automàtic), però té el desavantatge de no disposar de snapshots, motiu pel qual caldrà regenerar una màquina nova en cas de problemes.

Un cop arrencar l'escriptori, es mostraran els scripts disponibles; cal escollir l'anomenat "odoo-v16":

image

Un cop finalitzi la instal·lació, la màquina virtual es reiniciarà automàticament i tornarà a iniciar sessió de forma automàtica mostrant, alhora, totes les contrasenyes. Aquesta màquina virtual disposa d'una instància d'Odoo escoltant al port 8069 i, per a fer-lo servir, és suficient amb obrir un navegador web i introduir l'adreça IP de la màquina virtual fent servir el port 8069.

Altrament, per a modificar la configuració d'Odoo i desenvolupar mòduls, caldrà connectar-se a la màquina virtual via ssh:

ssh usuari@<ip-maquina-virtual>

Contenidors Podman

Aquest procés d'instal·lació és una alternativa ràpida i cómoda que es pot utilitzar sobre qualsevol entorn, ja sigui en una màquina dins d´IsardVDI, en una màquina VirtualBox o en una màquina física.

Com que Odoo necessita un servidor PostgreSQL per funcionar, en realitat haurem de tenir dos contenidors d'aplicacions en marxa, el propi d'Odoo i el de PostgreSQL. La manera més fàcil de comunicar entre sí diversos contenidors és incloure'ls dins d'un anomenat "pod". Per tant, el primer que farem serà crear aquest "pod", el qual exposarà en el port de la màquina amfitriona el port d'escolta de l'aplicació Odoo, el 8069 (al "pod" l'hem anomenat "odb"):

podman pod create --name odb -p 8069:8069

Tot seguit, eliminarem el volum on està allotjada una eventual BD PostgreSQL que hi pogués existir de creacions prèvies del contenidor de PostgreSQL (perquè si aquesta BD roman, la inicialització del nou PostgreSQL -és a dir, la creació dels usuaris, etc- s'aturarà) i just a continuació tornarem a recrear un nou volum (buit). Un volum és simplement un nom d'una carpeta dins de la màquina amfitriona que estarà mapejat a una determinada carpeta de l'interior del contenidor, per tal de tenir accessible aquesta des de la màquina amfitriona (en aquest cas, el que volem és tenir la base de dades PostgreSQL a mà, que dins del contenidor es troba a "/var/lib/postgresql/data"). No cal saber-ho, però físicament, el volum que hem creat (i que hem anomenat "postgrebd") estarà ubicat a la carpeta "~/.local/share/containers/storage/volumes/postgrebd"

podman volume rm postgrebd && podman volume create postgrebd

A continuació creem el contenidor del PostgreSQL dins del "pod". És necessari definir un usuari diferent de l'usuari per defecte ("postgres") perquè Odoo refusa utilitzar l'usuari "postgres" per connectar-s'hi a PostgreSQL (per motius de seguretat); com es pot veure, triem anomenar a aquest usuari "odoo" amb contrasenya "1234". La base de dades que es generarà en inicialitzar el contenidor PostgreSQL per primera vegada, en canvi, sí és recomanable que s'anomeni amb el nom "postgres" perquè és el nom que fa servir per defecte el contenidor d'Odoo

podman create --pod odb -v postgrebd:/var/lib/postgresql/data:Z -e POSTGRES_USER=odoo -e POSTGRES_DB=postgres -e POSTGRES_PASSWORD=1234 postgres:latest

I finalment, creem el contenidor d'Odoo dins del "pod", indicant les dades necessàries per connectar amb el servidor PostgreSQL:

podman create --pod odb -e HOST=127.0.0.1 -e PORT=5432 -e USER=odoo -e PASSWORD=1234 odoo:latest

Un cop fet tot això (un sol cop!), ja podrem arrencar totes les vegades que vulguem el nostre servidor Odoo+PostgreSQL simplement fent:

podman pod start odb

I a partir d'aquí, podrem accedir-hi indicant al navegador la IP de la màquina amfitriona i el port d'aquesta màquina (8069) que tenim mapejat al port intern del servidor Odoo (8069)

En qualsevol moment podem parar el "pod" fent:

podman pod stop odb

I ja está. Altres comandes que poden ser interessants de conéixer per fer-les servir en algun moment puntual són:

  • podman ps -a : Mostra l'estat (iniciats, parats, amb error, etc) de tots els contenidors existents a la màquina amfitriona
  • podman logs nomContenidor : Mostra els logs del contenidor concret indicat (el seu nom es pot consultar amb la comanda anterior); útil per saber el motiu de per què no es posa en marxa, per exemple.
  • podman pod rm odb : Elimina el "pod" i tots els contenidors que hi pertanyen (primer caldrà parar-lo, però)

LXC o màquina local

Aquest procés d'instal·lació només és necessari si s'ha escollit treballar sobre un entorn propi dins IsardVDI, amb contenidors LXC/LXD, o amb una màquina física; altrament, tant sobre VirtualBox com sobre IsardVDI s'ofereixen plantilles amb la instal·lació d'Odoo completada.

Afegir els repositoris

Un cop dins l'entorn de desenvolupament, sigui quin sigui (contenidor, màquina virtual o màquina host), cal afegir el repositori oficial d'Ubuntu al llistat de repositoris disponibles per tal de poder instal·lar Odoo:

wget -q -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/16.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
sudo apt-get update

Instal·lació

Ara es pot instal·lar Odoo fent servir els repositoris oficials, tenint en compte que aquest mecanisme permetrà mantenir Odoo actualitzat:

sudo apt-get install odoo -y

Finalment, cal instal·lar el component que permet generar PDFs a partir de pàgines HTML:

sudo apt install xfonts-base -y

wget http://es.archive.ubuntu.com/ubuntu/pool/universe/x/xfonts-75dpi/xfonts-75dpi_1.0.4+nmu1.1_all.deb -O xfonts-75dpi.deb
sudo dpkg -i xfonts-75dpi.deb

wget http://launchpadlibrarian.net/668074287/libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb -O libssl1.1.deb
sudo dpkg -i libssl1.1.deb

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.focal_amd64.deb -O wkhtmltox_0.12.5.deb
sudo dpkg -i wkhtmltox_0.12.5.deb

Amb el procés d'instal·lació finalitzat, es pot accedir a Odoo amb un navegador web tot introduint l'adreça IP de la màquina virtual i fent servir el port 8069.

VirtualBox

Amb la finalitat d'agilitzar el desenvolupament amb aquesta eina, s'ofereix una OVA de VirtualBox amb Odoo v16 instal·lat sobre un Ubuntu Server 22.04.1 LTS.

Tan sols cal importar la OVA dins de VirtualBox i arrencar-la en mode sense finestra com s'ha demostrat anteriorment. Per a fer servir Odoo, és suficient amb obrir un navegador web i introduir l'adreça IP de la màquina virtual fent servir el port 8069.

Altrament, per a modificar la configuració d'Odoo i desenvolupar mòduls, caldrà connectar-se a la màquina virtual via ssh:

ssh usuari@<ip-maquina-virtual>

Documentació i material de referència