Automatizarea proceselor de productie
Cuprins:
- Înainte de a începe
- Creați un utilizator Odoo
- Instalați și configurați PostgreSQL
- Instalați Wkhtmltopdf
- Instalați și configurați Odoo
- Creați un fișier de unitate de sistem
- Testați instalarea
- Configurați Nginx ca proxy de încheiere SSL
- Schimbați interfața de legare
- Activați multiprocesarea
- Concluzie
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 deodoo11puteț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:
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
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:
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:
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:
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 sslCum se implementează odoo 12 pe ubuntu 18.04
Acest tutorial acoperă pașii necesari pentru instalarea și configurarea Odoo 12 pentru producție folosind sursa Git și mediul virtual Python pe un sistem Ubuntu 18.04.
Cum se implementează rocket.chat pe ubuntu 18.04
Rocket.Chat este o platformă de comunicare a echipei open source, o alternativă Slack, care se găzduiește de sine stătătoare. Rocket.Chat este o soluție perfectă pentru companii și comunități care doresc să găzduiască propriul sistem de chat.
Cum se implementează cea mai importantă problemă pe ubuntu 18.04
Mattermost aduce toată echipa de comunicare într-un singur loc și oferă diverse funcții, inclusiv partajarea fișierelor, mesagerie individuală și de grup, emoji personalizate, apeluri video și multe altele.







