Odoo preprod

Purtroppo questa sezione non è stata ancora tradotta in inglese a causa della mancanza di tempo, ogni contributo è ben accetto! :)

Questa sezione copre i concetti riguardanti le procedure per l’installazione e la configurazione degli ambienti di odoo di demo. Per favore leggere prima l’introduzione sulla pagina Odoo.

Per maggiori informazioni riguardanti l’architettura consultare lo schema sulla pagina Odoo e in caso di dubbi rivolgersi al BOFH.

Introduzione

L’ambiente di demo gira sotto docker swarm. Ad oggi l’unico nodo funzionante è docker-be-svil-manager01. Alcuni dei devs odoo già conoscono molte delle procedure per creare lo stack e la configurazione di Nginx.

Gitlab

Important

alcuni branch hanno bisogno di essere taggati anche per essere buildati in demo (ad es. ipi). Seguire lo step successivo solo se non si vede il Job per la build della demo nella tab CI/CD dopo aver pushato

  • Taggare la release del branch interessato su https://git.webmonks.org/odoo/odoo-docker-compose-recipe. Solitamente la nomenclatura del tag segue la regola r.<nomebranch>.<numero release> quindi ad esempio la release 8 del branch monk13 sarà taggata con r.monk13.8.

  • Buildare l’immagine della release per la produzione dal pannello CI/CD di gitlab.

Postgres

  • Creare il database su dbcl-preprod:

    ~$ sudo -i
    ~$ su - postgres
    ~$ psql
    
  • Creare utente e database rispettando la nomenclatura odoo<nome> per l’utente e odoo<nome>demo per il database:

    postgres=# CREATE USER odooappuntamenti WITH PASSWORD 'asdasdasd';
    postgres=# CREATE DATABASE odooappuntamentidemo OWNER odooappuntamenti;
    

Creazione stack Docker swarm

Entrare sul nodo docker-be-svil-manager01. È possibile trovare gli stack di odoo nel percorso /opt/odoo-demo.

  • se bisogna creare la directory dello stack, ricordarsi di rispettare la nomenclatura!! All’inizio vanno messi i primi 2 digit delle porte usate da quell’odoo <digit>-odoo-<nome>-demo, quindi ad es. 66-odoo-appuntamenti-demo

  • Per deployare uno stack:

    ~$ cd /opt/odoo-demo/66-odoo-appuntamenti-demo
    ~$ docker stack deploy -c odooappuntamenti-demo-stack.yml odooappuntamenti-demo
    

    Important

    quando crei gli stack se in odoo.conf ci stanno i workers impostati a 0 (quindi workers = 0) allora nello stack sia la porta http che la porta del longpolling di odoo sono uguali. Quindi la config delle porte dello stack dovrà essere:

    ports:
        - "6600:8069"
        - "6601:8069"
    

    Important

    La creazione del database può anche avvenire successivamente al deploy dello stack. In caso di problemi seguire la procedura di riavvio descritta in seguito nei comandi utili.

  • Inizializzazione database. Per farlo bisogna entrare nel container con il comando:

    ~$ docker exec -it odooappuntamenti-demo_odoo.1.uebflf3gjolnd223y3007yal7 bash
    

    e lanciare il comando per odoo > 11.0

    ~$ ./entrypoint.sh --no-http --stop-after-init --workers=0 -i base
    

    altrimenti

    ~$ ./entrypoint.sh --no-xmlrpc --stop-after-init --workers=0 -i base
    
  • Creazione file di config su Nginx:

    ~$ cd /etc/nginx/sites-available/odoo-demo
    

    e creare e riempire il file di configurazione stando attenti a rispettare la nomenclatura del file <nome>.odoo-demo.monksoftware.it, ad es. simica.odoo-demo.monksoftware.it. Creare successivamente il link simbolico per abilitarlo:

    ~$ cd /etc/nginx/odoo-enabled
    ~$ ln -s ../sites-available/odoo-demo/simica.odoo-demo.monksoftware.it
    
  • Testare la nuova configurazione di Nginx con nginx -t e se è tutto ok ricaricare la config con il comando:

    ~$ nginx -s reload
    

Aggiornamento stack docker swarm

Alcune demo di odoo presentano già nella CI/CD il Job automatico per l’aggiornamento dell’immagine nello stack in demo. Tuttavia per alcuni ancora è necessario aggiornare manualmente l’immagine dello stack. Per fare questo bisogna seguire dei semplici passaggi:

  • Entrare sul nodo docker-be-svil-manager01. È possibile trovare gli stack di odoo nel percorso /opt/odoo-demo.

  • Una volta identificata la directory dello stack editare il file yaml al suo interno, aggiornando la versione dell’immagine interessata (ad es. all’interno del file odooappuntamenti-demo-stack.yml).

  • Lanciare il comando:

    ~$ docker stack deploy -c odooappuntamenti-demo-stack.yml odooappuntamenti-demo
    

Comandi utili

per vedere i log del servizio (ad esempio odoo) su docker-be-svil-manager01:

~$ docker service logs -f odooappuntamenti-demo_odoo

in caso di problemi per riavviare un servizio dello stack senza distruggere lo stack (ad esempio odoo):

~$ docker service scale odooappuntamenti-demo_odoo=0
~$ docker service scale odooappuntamenti-demo_odoo=1