#odoodaysit - 20) Alessandro Uffreduzzi - Basta script bash: gestire progetti Odoo con Docker, Doodba e altro!

Odoo Days Italia 2023 / slide

601 visualizzazioni
0 Mi piace
0 0
Descrizione: Molte software house corredano l'utilizzo e l'installazione di Odoo con una serie di script sviluppati in-house per l'installazione, il setup dell'ambiente di sviluppo, il rilascio in test e in produzione. Tutti questi strumenti richiedono tempo di sviluppo, debug, documentazione e aggiornamento continuo. Visto che le esigenze sono spesso molto simili, alcuni dei contributor internazionali più importanti in questo spazio hanno sviluppato degli strumenti standard per facilitare questo tipo di operazioni, rendendo il progetto più DRY e appoggiandosi ove possibile sui principi di riproducibiilità e Infrastructure as Code, facendo risparmiare tempo e fatica, e beneficiando del contributo di tuttə. La presentazione sarà l'opportunità per presentare alcuni di questi strumenti, primo fra tutti Doodba sviluppato da Tecnativa, che è un vero e proprio framework per la gestione dei progetti Odoo, e poi tanti altri strumenti che sono integrati in Doodba ma possono essere utilizzati anche individualmente, come click-odoo, gitaggregate o pylint-odoo, il tutto in un contesto basato sull'utilizzo di docker e compose. (Più che disponibile a fare il talk in Inglese se c'è interesse.)

Condividi sui social Networks

Condividi Link

Usare un link permanente per condividere sui social media

Condividi con un amico

Cortesemente login per inviare questo presentation per email !

Inserisci nel tuo sito web

Seleziona pagina dalla quale partire

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

Viste

  • 601 Visite totali
  • 403 Website Visite
  • 198 Embedded Views

Azioni

  • 0 Condivisioni social
  • 0 Mi piace
  • 0 Non mi piace
  • 0 Commentis

Condividi conti

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+