Android

Cum se implementează odoo 11 pe ubuntu 18.04

Automatizarea proceselor de productie

Automatizarea proceselor de productie

Cuprins:

Anonim

Odoo este cel mai popular software de afaceri all-in-one din lume. Oferă o serie de aplicații de afaceri, inclusiv CRM, site web, comerț electronic, facturare, contabilitate, fabricație, depozit, management de proiect, inventar și multe altele, toate integrate perfect.

Există mai multe moduri de a instala Odoo în funcție de cazul de utilizare necesar. Cea mai simplă și rapidă cale de a instala Odoo este folosirea depozitelor lor oficiale de APT.

Acest ghid acoperă pașii necesari pentru instalarea și configurarea Odoo pentru producție folosind sursa Git și mediul virtual Python pe un sistem Ubuntu 18.04.

Înainte de a începe

Conectați-vă la mașina Ubuntu ca utilizator sudo și actualizați sistemul la cele mai recente pachete:

sudo apt update && sudo apt upgrade

Instalați Git, Pip, Node.js și instrumentele necesare pentru a construi dependențe Odoo:

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Creați un utilizator Odoo

Creați un nou utilizator de sistem și grupați cu directorul principal /opt/odoo care va rula serviciul Odoo.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Puteți numi utilizatorul orice doriți, asigurați-vă doar că creați un utilizator postgres cu același nume.

Instalați și configurați PostgreSQL

Instalați pachetul PostgreSQL din depozitele implicite ale Ubuntu:

sudo apt install postgresql

După terminarea instalării, creați un utilizator PostgreSQL cu același nume ca și utilizatorul sistemului creat anterior, în cazul nostru, odoo :

sudo su - postgres -c "createuser -s odoo"

Instalați Wkhtmltopdf

Pachetul wkhtmltox oferă un set de instrumente de linie de comandă open source care pot face HTML în PDF și diferite formate de imagine. Pentru a tipări rapoarte PDF, veți avea nevoie de instrumentul wkhtmltopdf . Versiunea recomandată pentru Odoo este 0.12.1 care nu este disponibilă în depozitele oficiale Ubuntu 18.04.

Descărcați pachetul folosind următoarea comandă wget:

wget

După terminarea descărcării, instalați pachetul tastând:

sudo apt install./wkhtmltox_0.12.1.3-1~bionic_amd64.deb

Instalați și configurați Odoo

Vom instala Odoo din depozitul GitHub într-un mediu virtual Python izolat, astfel încât să putem avea mai mult control asupra versiunilor și actualizărilor.

Înainte de a începe procesul de instalare, asigurați-vă că treceți la utilizator odoo .

sudo su - odoo

Pentru a confirma că sunteți autentificat ca utilizator odoo puteți utiliza următoarea comandă:

whoami

Acum putem începe cu procesul de instalare. Prima clonare a odoo din depozitul GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11

  • Dacă doriți să instalați o altă versiune Odoo, trebuie doar să schimbați numărul versiunii după --branch --branch. Puteți numi directorul după cum doriți, de exemplu, în loc de odoo11 puteți utiliza numele domeniului dvs.

Pentru a crea un nou mediu virtual pentru instanța Odoo 11, executați:

cd /opt/odoo python3 -m venv odoo11-venv

activați mediul cu următoarea comandă:

source odoo11-venv/bin/activate

și instalați toate modulele Python necesare cu pip3:

pip3 install wheel pip3 install -r odoo11/requirements.txt

pip3 este un instrument pentru instalarea și gestionarea pachetelor Python.

După finalizarea instalării, dezactivați mediul și reveniți la utilizatorul sudo utilizând următoarele comenzi:

deactivate

exit

sudo mkdir /opt/odoo/odoo11-custom-addons sudo chown odoo: /opt/odoo/odoo11-custom-addons

În continuare, trebuie să creăm un fișier de configurare, fie îl putem crea unul nou de la zero, fie copiem fișierul de configurare inclus:

sudo cp /opt/odoo/odoo11/debian/odoo.conf /etc/odoo11.conf

Deschideți fișierul și editați-l astfel:

/etc/odoo11.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo db_password = False addons_path = /opt/odoo/odoo11/addons; If you are using custom modules; addons_path = /opt/odoo/odoo11/addons, /opt/odoo/odoo11-custom-addons Nu uitați să schimbați my_admin_passwd la ceva mai sigur și să reglați addons_path dacă utilizați module personalizate.

Creați un fișier de unitate de sistem

Pentru a rula odoo ca serviciu, vom crea un fișier de unitate odoo11.service în directorul /etc/systemd/system/ cu următorul conținut:

/etc/systemd/system/odoo11.service

Description=Odoo11 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo11 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf StandardOutput=journal+console WantedBy=multi-user.target

Notificați systemd că am creat un nou fișier de unitate și porniți serviciul Odoo executând:

sudo systemctl daemon-reload sudo systemctl start odoo11

Puteți verifica starea serviciului cu următoarea comandă:

sudo systemctl status odoo11

● odoo11.service - Odoo11 Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-03 21:23:08 UTC; 3s ago Main PID: 18351 (python3) Tasks: 4 (limit: 507) CGroup: /system.slice/odoo11.service └─18351 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf

și dacă nu există erori, puteți activa lansarea automată a serviciului Odoo:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Testați instalarea

Deschideți browserul și tastați: http://:8069 http://:8069

Dacă presupunem că instalarea este reușită, va apărea un ecran similar cu următoarele:

Configurați Nginx ca proxy de încheiere SSL

  • Aveți un nume de domeniu îndreptat către IP-ul serverului dvs. public. În acest tutorial vom folosi example.com . Aveți Nginx instalat urmând aceste instrucțiuni. Aveți un certificat SSL instalat pentru domeniul dvs. Puteți instala un certificat SSL gratuit Encrypt urmând aceste instrucțiuni.

Serverul web implicit Odoo servește traficul prin HTTP. Pentru a face mai sigură implementarea Odoo, vom configura Nginx ca un proxy de terminare SSL, care va servi traficul prin

Proxy de terminare SSL este un server proxy care gestionează criptarea / decriptarea SSL. Aceasta înseamnă că proxy-ul nostru de reziliere (Nginx) va gestiona și decripta conexiunile TLS primite (HTTPS) și va transmite cererile necriptate către serviciul nostru intern (Odoo), astfel încât traficul dintre Nginx și Odoo nu va fi criptat (HTTP).

Trebuie să-i spunem lui Odoo că vom folosi un proxy, vom deschide fișierul de configurare și adăugăm următoarea linie:

/etc/odoo11.conf

proxy_mode = True

Reporniți serviciul Odoo pentru ca modificările să aibă efect:

sudo systemctl restart odoo11

Utilizarea Nginx ca proxy ne oferă mai multe avantaje. În acest exemplu vom configura Terminarea SSL, redirecționarea HTTP la HTTPS, redirecționarea WWW la non-WWW, vom memora în cache fișierele statice și vom activa compresia GZip.

/etc/nginx/sites-enabled/example.com

# Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Handle longpoll requests location /longpolling { proxy_pass http://odoochat; } # Handle / requests location / { proxy_redirect off; proxy_pass http://odoo; } # Cache static files location ~* /web/static/ { proxy_cache_valid 200 90m; proxy_buffering on; expires 864000; proxy_pass http://odoo; } # Gzip gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; } Nu uitați să înlocuiți example.com cu domeniul dvs. Odoo și să setați calea corectă pentru fișierele certificat SSL Fragmentele utilizate în această configurație sunt create în acest ghid.

După ce ați terminat, reporniți serviciul Nginx cu:

sudo systemctl restart nginx

Schimbați interfața de legare

Acest pas este opțional, dar este o bună practică de securitate. În mod implicit, serverul Odoo ascultă portul 8069 pe toate interfețele, astfel încât dacă doriți să dezactivați accesul direct la instanța dvs. Odoo, puteți bloca portul 8069 pentru toate interfețele publice sau să forțați Odoo să asculte doar pe interfața locală.

În acest ghid vom forța Odoo să asculte doar pe 127.0.0.1 , deschidem configurația Odoo adăugând următoarele două linii la sfârșitul fișierului:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Salvați fișierul de configurare și reporniți serverul Odoo pentru ca modificările să aibă efect:

sudo systemctl restart odoo

Activați multiprocesarea

În mod implicit, Odoo lucrează în modul multitreading. Pentru implementările de producție, se recomandă trecerea la serverul de multiprocesare, deoarece crește stabilitatea și utilizarea mai bună a resurselor sistemului. Pentru a activa multiprocesarea, trebuie să edităm configurația Odoo și să stabilim un număr non-zero de procese de lucru.

Numărul de lucrători este calculat pe baza numărului de nuclee de procesor din sistem și a memoriei RAM disponibile.

Conform documentației oficiale Odoo pentru a calcula numărul de muncitori și dimensiunea de memorie RAM necesară, vom folosi următoarele formule și ipoteze:

Calcularea numărului lucrătorului

  • Numărul teoretic maxim de lucrător = (system_cpus * 2) + 11 lucrători pot servi ~ = 6 utilizatori concurenti Lucrătorii Cron necesită, de asemenea, procesor

Calcularea dimensiunii memoriei RAM

  • Vom considera că 20% din toate cererile sunt solicitări mari, în timp ce 80% sunt mai ușoare. Cererile mari utilizează aproximativ 1 GB RAM, în timp ce cele mai ușoare folosesc aproximativ 150 MB de RAM.

grep -c ^processor /proc/cpuinfo

Să zicem că avem un sistem cu 4 nuclee de procesor, 8 GB memorie RAM și 30 de utilizatori simultan Odoo.

  • 30 users / 6 = **5** (5 este numărul teoretic de lucrători necesari) (4 * 2) + 1 = **9** (9 este numărul teoretic maxim de lucrători)

Pe baza calculului de mai sus, putem folosi 5 lucrători + 1 muncitor pentru cron lucrător, care este în total 6 lucrători.

Calculați consumul de memorie RAM în funcție de numărul de lucrători:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

Calculul de mai sus ne arată că instalația noastră Odoo va avea nevoie de aproximativ 2 GB RAM.

Pentru a trece la modul multiprocesare, deschideți fișierul de configurare și adăugați următoarele linii:

/etc/odoo11.conf

limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 max_cron_threads = 1 workers = 5

Reporniți serviciul Odoo pentru ca modificările să aibă efect:

sudo systemctl restart odoo11

Restul resurselor sistemului vor fi utilizate de alte servicii care rulează pe mașina noastră. În acest ghid am instalat Odoo împreună cu PostgreSQL și Nginx pe același server și, în funcție de configurarea dvs., puteți avea și alte servicii care rulează pe serverul dvs.

Concluzie

Asta e! Acest tutorial te-a parcurs prin instalarea Odoo 11 pe Ubuntu 18.04 într-un mediu virtual Python folosind Nginx ca proxy invers. De asemenea, ați învățat cum să activați multiprocesarea și să optimizați Odoo pentru mediul de producție. De asemenea, poate doriți să consultați tutorialul nostru despre cum puteți crea copii de rezervă automate zilnice ale bazelor de date Odoo

ubuntu odoo postgresql python pip nginx proxy ssl