============ 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 :doc:`index`. Per maggiori informazioni riguardanti l'architettura consultare lo schema sulla pagina :doc:`index` 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..`` 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: .. code:: sh ~$ sudo -i ~$ su - postgres ~$ psql - Creare utente e database rispettando la nomenclatura ``odoo`` per l’utente e ``odoodemo`` per il database: .. code:: sql 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** ``-odoo--demo``, quindi ad es. ``66-odoo-appuntamenti-demo`` - Per deployare uno stack: .. code:: sh ~$ 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: .. code:: yaml 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: .. code:: sh ~$ docker exec -it odooappuntamenti-demo_odoo.1.uebflf3gjolnd223y3007yal7 bash e lanciare il comando per odoo > 11.0 .. code:: sh ~$ ./entrypoint.sh --no-http --stop-after-init --workers=0 -i base altrimenti .. code:: sh ~$ ./entrypoint.sh --no-xmlrpc --stop-after-init --workers=0 -i base - Creazione file di config su Nginx: .. code:: sh ~$ cd /etc/nginx/sites-available/odoo-demo e creare e riempire il file di configurazione stando attenti a rispettare la nomenclatura del file ``.odoo-demo.monksoftware.it``, ad es. ``simica.odoo-demo.monksoftware.it``. Creare successivamente il link simbolico per abilitarlo: .. code:: sh ~$ 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: .. code:: sh ~$ 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: .. code:: sh ~$ 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``: .. code:: sh ~$ 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