26. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 interfaccia di Mailhog
21. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 https://xkcd.com/303/ Odoo is resetting Resetting
9. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 A questo punto, quando il correttore automatico del telefono cambia per l’ennesima volta “ Odoo ” in “ Odio ”, smetti di correggerlo perché forse in fondo ha ragione.
2. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 2 3 1 Problemi gestione progetti Odoo Installazione di Odoo Pubblicazione in test e produzione Gestione repo e moduli OCA
28. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 info@pytech.it https://www.pytech.it Q&A Grazie della tua attenzione Alessandro Uffreduzzi @AleUffre alessandro.uffreduzzi@pytech.it
13. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 ● No problemi di compatibilità: dipendenze dentro l’immagine ● Pubblico in test e in prod esattamente la stessa immagine che creo in sviluppo. ● Tutti i dati importanti sono conservati nei volumi
7. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Solo un altro script e poi smetto, giuro! Si inizia così. Poi... script per: ● Inizializzazione nuovo progetto. ● Setup della macchina di test. ● Setup della macchina di produzione. ● Ripristino di prod in test/devel.
10. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 2 3 1 Principi risolutivi Containerizzazione, isolamento e riproducibilità Strumenti open per semplificare, standardizzare, documentare processi Approccio dichiarativo ispirato all’IaC Infrastructure as Code
17. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 ● Repo dichiarati in file Yaml: ○ Configurazione diventa documentazione di progetto. ● Permette di fare merge di PR in approvazione . Git-Aggregator https://github.com/acsone/git-aggregator Scarica o aggiorna tutti i repo necessari
20. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Comandi CLI per facilitare operazioni comuni in Odoo: ● Inizializzazione, copia, distruzione db. ● Installazione, aggiornamento, disinstallazione moduli. ● Esportazione file .pot Mantenuti dalla comunità: testati, documentati. click-odoo-contrib https://github.com/acsone/click-odoo-contrib/
15. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 sulla base di alcune domande. Es: ● Versione di Odoo e Postgres ● Server SMTP ● Spazio di archiviazione per backup ● Configurazione reverse proxy Copier https://github.com/copier-org/copier F ornisce un progetto pre-configurato
25. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 ● In Devel e Test: Mailhog mostra mail senza mandarle. ● In Prod: Docker Mailserver ○ gestisce inoltro mail, anche in caso di problemi di rete. ○ può validare e/o sostituire indirizzo e dominio mittente. Configurazione di Odoo rimane invariata Mailhog e Docker mailserver https://github.com/mailhog/MailHog https://github.com/docker-mailserver/docker-mailserver/
11. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Strumenti ● Copier ● Git-Aggregator ● Click-odoo-contrib ● Invoke ● Mailhog e Docker Mailserver ● ... Doodba
5. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 3 Gestione repo e moduli Oca I repo sono tanti, milioni di milioni... ● Come aggiornarli tutti? ● Da aggiungere uno a uno al file di configurazione. ● Complesse operazioni manuali con git per fare test e merge di PR. Poca visibilità su moduli effettivamente installati.
23. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 ● Definisce comandi CLI in python: ○ Stabilisce flussi di lavoro principali. ○ Comandi con nomi facili da memorizzare. ○ Facilita onboarding sul progetto. Condivisione dei costi di sviluppo, debug, documentazione, manutenzione di comandi standard. Invoke https://www.pyinvoke.org/
4. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 2 Pubblicazione in test e produzione Step precedenti, più: ● Reverse proxy , mailserver , sistema di backup ... ● Risolvere problemi dovuti a differenze tra ambiente di sviluppo e di test/prod : ○ Differenze di versione di librerie. ○ configurazioni e dipendenze non esplicitate
8. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Problemi nell’uso di script custom ● Tempi e costi di sviluppo: ○ Inclusi tempi di debugging e documentazione. ○ Spesso fragili : possono rompersi con aggiornamenti di sistema operativo, di Odoo, di altre dipendenze. ● Difficile onboarding di nuove persone sul progetto: ○ Non basta conoscere Odoo, bisogna conoscere la propria infrastruttura.
27. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 ● conf e dipendenze (apt, pip, npm, ecc) dichiarate, e solo se diverse dal default. ● Docker Duplicity : Backup incrementali. ● Traefik Proxy : ascolta container e si autoconfigura. ● psql , pgweb , wdb , pre-commit , configurazione per VSCode/Codium ... E ancora...
22. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 ● click-odoo-initdb : inizializza database con moduli ○ Opzionalmente, può creare cache per rendere future inizializzazioni quasi istantanee ● click-odoo-update : aggiorna moduli ○ aggiornare solo moduli modificati da ultima esecuzione ○ Permette aggiornamento in parallelo con istanza live monitorando eventuali DB lock. click-odoo-contrib https://github.com/acsone/click-odoo-contrib/
12. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Doodba Do cker Od oo Ba se https://github.com/Tecnativa/doodba ● Progetto FLOSS di Tecnativa . ● Framework per gestire progetti Odoo con Docker e Compose . ● Integra svariati strumenti open che possono essere usati anche separatamente.
1. Odoo Days Italia odoo-italia.org Milano, 04 e 05 maggio 2023 Titolo Basta Script Bash! - Gestire progetti Odoo con Docker, Doodba e altro! Quando Venerdì 05/05/2023 16:15 – 16:45 Autore Alessandro Uffreduzzi Socio fondatore di PyTech SRL. In altre parole: Sviluppatore Python e Odoo Appassionato di Git, Docker, DevOps Parlatemi di NixOs e GNU Guix Riferimenti alessandro.uffreduzzi@pytech.it @AleUffre→Github, Gitlab, Matrix.org
3. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Installazione di Odoo ● Numerose librerie base da installare con pip, più: ○ Librerie aggiuntive richieste da altri moduli. ○ Librerie da installare con apt o npm ( es.: libmagic1 ) ● Installazione di postgresql e wkhtmltopdf . ● Gestione diverse versioni python . ● Usi Windows ? In bocca al lupo... 1
6. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Dai, è semplice... basta uno scriptino in bash! #!/bin/bash for DIR in extra-addons/ * ; do pushd " $DIR " git pull popd done Script update_all.sh per aggiornare tutti i repo
24. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 1. scarica / ripristina odoo e repo dichiarati 2. inizializza nuovo db con cache, con tutti i moduli “extra” 3. installa moduli “privati” 4. avvia lo stack di Odoo (postgres, mail server ecc.) 5. mostra i log Invoke invoke git-aggregate resetdb -e install -p start logs 1 2 3 4 5
19. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Legge addons.yaml e categorizza i moduli: ● Privati ● Core (Odoo S.A.) ● Extra (OCA e altri) Script addons # Installa tutti i moduli OCA addons init --extra # Aggiorna e testa moduli privati addons update --private --test # Installa solo le dipendenze # dei moduli privati addons init --private --dependencies
16. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 On which odoo version is it based? ❯ 16.0 Which proxy will you use to deploy odoo? ❯ Traefik If you want to initialize Odoo automatically in a specific language, write it here. The format must be ll_CC. ❯ it_IT What will be your odoo admin password? ❯ ********************** Do you want to list databases publicly? ❯ No Path to the docker image built from this Doodba project. ❯ docker.io/pytech/example-odoo Modificato per leggibilità dall’originale
18. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 ● Si dichiarano i moduli da utilizzare in file yaml. ● Odoo vede solo moduli dichiarati: ○ Diventa documentazione vivente del progetto. addons.yaml l10n-italy : - l10n_it_fiscalcode web : - web_company_color - web_responsive --- ONLY : DOODBA_ENVIRONMENT : - devel - test web : - web_environment_ribbon
14. Odoo Days Italia: Basta Script Bash! odoo-italia.org Milano, 04 e 05 maggio 2023 Configurazione chiara tramite variabili d’ambiente o yaml ● Dati di demo, porte, isolamento network... Compose services : odoo : build : args : ODOO_VERSION : " 16.0 " environment : EMAIL_FROM : info@pytech.it PGDATABASE : & dbname prod WITHOUT_DEMO : "${NODEMO-false}" db : image : postgres:15-alpine environment : POSTGRES_DB : * dbname parte di file compose.yaml