Android

Bereitstellen von odoo 11 unter Ubuntu 18.04

LMS.at – Lernmaterial aus OTP-Angebot im eigenen Kurs nutzen

LMS.at – Lernmaterial aus OTP-Angebot im eigenen Kurs nutzen

Inhaltsverzeichnis:

Anonim

Odoo ist die beliebteste All-in-One-Unternehmenssoftware der Welt. Es bietet eine Reihe von Geschäftsanwendungen, darunter CRM, Website, E-Commerce, Rechnungswesen, Buchhaltung, Fertigung, Lager, Projektmanagement, Inventar und vieles mehr, die nahtlos integriert sind.

Es gibt verschiedene Möglichkeiten, Odoo zu installieren, abhängig vom erforderlichen Anwendungsfall. Die einfachste und schnellste Möglichkeit, Odoo zu installieren, ist die Verwendung der offiziellen APT-Repositorys.

In diesem Handbuch werden die Schritte beschrieben, die zum Installieren und Konfigurieren von Odoo für die Produktion mit Git Source und Python Virtual Environment auf einem Ubuntu 18.04-System erforderlich sind.

Bevor Sie beginnen

Melden Sie sich als sudo-Benutzer auf Ihrem Ubuntu-Rechner an und aktualisieren Sie das System auf die neuesten Pakete:

sudo apt update && sudo apt upgrade

Installieren Sie Git, Pip, Node.js und die Tools, die zum Erstellen von Odoo-Abhängigkeiten erforderlich sind:

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

Erstellen Sie einen Odoo-Benutzer

Erstellen Sie einen neuen Systembenutzer und eine neue Systemgruppe mit dem /opt/odoo , in dem der Odoo-Dienst ausgeführt wird.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Sie können den Benutzer beliebig benennen, stellen Sie jedoch sicher, dass Sie einen Postgres-Benutzer mit demselben Namen erstellen.

Installieren und konfigurieren Sie PostgreSQL

Installieren Sie das PostgreSQL-Paket aus den Ubuntu-Standardrepositorys:

sudo apt install postgresql

Nach Abschluss der Installation erstellen Sie einen PostgreSQL-Benutzer mit demselben Namen wie der zuvor erstellte Systembenutzer. In unserem Fall odoo :

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

Installieren Sie Wkhtmltopdf

Das Paket wkhtmltox enthält eine Reihe von Open-Source-Befehlszeilentools, mit denen HTML in PDF- und verschiedene Bildformate wkhtmltox kann. Zum Drucken von PDF-Berichten benötigen Sie das Tool wkhtmltopdf . Die empfohlene Version für Odoo ist 0.12.1 die nicht in den offiziellen Ubuntu 18.04-Repositories verfügbar ist.

Laden Sie das Paket mit dem folgenden Befehl wget herunter:

wget

Sobald der Download abgeschlossen ist, installieren Sie das Paket, indem Sie Folgendes eingeben:

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

Installieren und konfigurieren Sie Odoo

Wir werden Odoo aus dem GitHub-Repository in einer isolierten virtuellen Python-Umgebung installieren, damit wir mehr Kontrolle über Versionen und Updates haben.

Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass Sie zu odoo user wechseln.

sudo su - odoo

Um zu bestätigen, dass Sie als odoo Benutzer angemeldet sind, können Sie den folgenden Befehl verwenden:

whoami

Nun können wir mit dem Installationsprozess beginnen. Klonen Sie zuerst das Odoo aus dem GitHub-Repository:

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

  • Wenn Sie eine andere Odoo-Version installieren möchten, ändern Sie einfach die Versionsnummer nach dem --branch Schalter. Sie können das Verzeichnis so benennen, wie Sie --branch Beispielsweise können Sie anstelle von odoo11 den Namen Ihrer Domain verwenden.

So erstellen Sie eine neue virtuelle Umgebung für die Odoo 11-Instanz:

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

aktiviere die Umgebung mit dem folgenden Befehl:

source odoo11-venv/bin/activate

und installiere alle benötigten Python-Module mit pip3:

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

pip3 ist ein Tool zum Installieren und Verwalten von Python-Paketen.

Sobald die Installation abgeschlossen ist, deaktivieren Sie die Umgebung und wechseln Sie mit den folgenden Befehlen zurück zu Ihrem sudo-Benutzer:

deactivate

exit

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

Als nächstes müssen wir eine Konfigurationsdatei erstellen. Wir können entweder eine neue von Grund auf erstellen oder die enthaltene Konfigurationsdatei kopieren:

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

Öffnen Sie die Datei und bearbeiten Sie sie wie folgt:

/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 Vergessen Sie nicht, my_admin_passwd in etwas my_admin_passwd zu ändern und den my_admin_passwd anzupassen, wenn Sie benutzerdefinierte Module verwenden.

Erstellen Sie eine System-Unit-Datei

Um odoo als Dienst odoo11.service , erstellen wir eine odoo11.service Unit-Datei im Verzeichnis /etc/systemd/system/ mit folgendem Inhalt:

/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

Benachrichtigen Sie systemd, dass wir eine neue Unit-Datei erstellt haben, und starten Sie den Odoo-Dienst, indem Sie Folgendes ausführen:

sudo systemctl daemon-reload sudo systemctl start odoo11

Sie können den Servicestatus mit dem folgenden Befehl überprüfen:

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

Wenn keine Fehler vorliegen, können Sie den Odoo-Dienst so konfigurieren, dass er beim Booten automatisch gestartet wird:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Testen Sie die Installation

Öffnen Sie Ihren Browser und geben Sie Folgendes ein: http://:8069 http://:8069

Angenommen, die Installation ist erfolgreich, wird ein Bildschirm ähnlich dem folgenden angezeigt:

Konfigurieren Sie Nginx als SSL-Terminierungs-Proxy

  • Sie haben einen Domainnamen, der auf Ihre öffentliche Server-IP verweist. In diesem Tutorial verwenden wir example.com Sie haben Nginx installiert, indem Sie diese Anweisungen befolgen. Sie haben ein SSL-Zertifikat für Ihre Domain installiert. Sie können ein kostenloses Let's Encrypt SSL-Zertifikat installieren, indem Sie diese Anweisungen befolgen.

Der Standard-Odoo-Webserver bedient den Datenverkehr über HTTP. Um unsere Odoo-Bereitstellung sicherer zu machen, konfigurieren wir Nginx als SSL-Terminierungs-Proxy, der den Datenverkehr über HTTPS bereitstellt.

Der SSL-Beendigungs-Proxy ist ein Proxy-Server, der die SSL-Verschlüsselung / -Entschlüsselung übernimmt. Dies bedeutet, dass unser Terminierungs-Proxy (Nginx) eingehende TLS-Verbindungen (HTTPS) verarbeitet und entschlüsselt und die unverschlüsselten Anforderungen an unseren internen Service (Odoo) weiterleitet, sodass der Datenverkehr zwischen Nginx und Odoo nicht verschlüsselt wird (HTTP).

Wir müssen Odoo mitteilen, dass wir einen Proxy verwenden, die Konfigurationsdatei öffnen und die folgende Zeile hinzufügen:

/etc/odoo11.conf

proxy_mode = True

Starten Sie den Odoo-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl restart odoo11

Die Verwendung von Nginx als Proxy bietet uns mehrere Vorteile. In diesem Beispiel konfigurieren wir die SSL-Beendigung, die HTTP-zu-HTTPS-Umleitung, die WWW-zu-Nicht-WWW-Umleitung, zwischenspeichern die statischen Dateien und aktivieren die GZip-Komprimierung.

/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; } Vergessen Sie nicht, example.com durch Ihre Odoo-Domain zu ersetzen und den korrekten Pfad zu den SSL-Zertifikatdateien festzulegen. Die in dieser Konfiguration verwendeten Snippets werden in diesem Handbuch erstellt.

Sobald Sie fertig sind, starten Sie den Nginx-Dienst neu mit:

sudo systemctl restart nginx

Ändern Sie die Bindungsschnittstelle

Dieser Schritt ist optional, stellt jedoch eine gute Sicherheitspraxis dar. Standardmäßig überwacht der Odoo-Server Port 8069 auf allen Schnittstellen. Wenn Sie also den direkten Zugriff auf Ihre Odoo-Instanz deaktivieren möchten, können Sie entweder den Port 8069 für alle öffentlichen Schnittstellen blockieren oder erzwingen, dass Odoo nur die lokale Schnittstelle überwacht.

In dieser Anleitung werden wir Odoo zwingen, nur auf 127.0.0.1 zu lauschen. Öffnen Sie die Odoo-Konfiguration und fügen Sie die folgenden zwei Zeilen am Ende der Datei hinzu:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Speichern Sie die Konfigurationsdatei und starten Sie den Odoo-Server neu, damit die Änderungen wirksam werden:

sudo systemctl restart odoo

Aktivieren Sie die Mehrfachverarbeitung

Standardmäßig arbeitet Odoo im Multithreading-Modus. Für Produktionsbereitstellungen wird empfohlen, auf den Multiprocessing-Server zu wechseln, um die Stabilität zu erhöhen und die Systemressourcen besser zu nutzen. Um Multiprocessing zu aktivieren, müssen Sie die Odoo-Konfiguration bearbeiten und eine von Null verschiedene Anzahl von Worker-Prozessen festlegen.

Die Anzahl der Worker wird basierend auf der Anzahl der CPU-Kerne im System und dem verfügbaren RAM-Speicher berechnet.

Gemäß der offiziellen Odoo-Dokumentation zur Berechnung der Anzahl der Mitarbeiter und der erforderlichen RAM-Speichergröße verwenden wir die folgenden Formeln und Annahmen:

Berechnung der Arbeitsnummer

  • theoretische maximale Anzahl von Arbeitern = (system_cpus * 2) + 11 Arbeitern kann ~ = 6 gleichzeitige Benutzer bedienen

Berechnung der RAM-Speichergröße

  • Wir werden davon ausgehen, dass 20% aller Anfragen schwere Anfragen sind, während 80% leichtere Anfragen sind. Starke Anforderungen belegen ungefähr 1 GB RAM, während die leichteren ungefähr 150 MB RAM belegen. Benötigter RAM = Anzahl_der_Arbeiter * ((Light_worker_Ratio * Light_worker_Ram_estimation) + (Heavy_worker_Ratio * Heavy_worker_Ram_estimation))

grep -c ^processor /proc/cpuinfo

Angenommen, wir haben ein System mit 4 CPU-Kernen, 8 GB RAM-Speicher und 30 gleichzeitigen Odoo-Benutzern.

  • 30 users / 6 = **5** (5 ist die theoretische Anzahl der benötigten Arbeitskräfte) (4 * 2) + 1 = **9** (9 ist die theoretische maximale Anzahl der Arbeitskräfte)

Basierend auf der obigen Berechnung können wir 5 Arbeiter + 1 Arbeiter für den Cron-Arbeiter verwenden, was insgesamt 6 Arbeitern entspricht.

Berechnen Sie den RAM-Speicherverbrauch anhand der Anzahl der Worker:

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

Die obige Berechnung zeigt, dass unsere Odoo-Installation etwa 2 GB RAM benötigt.

Öffnen Sie die Konfigurationsdatei, und fügen Sie die folgenden Zeilen hinzu, um in den Mehrfachverarbeitungsmodus zu wechseln:

/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

Starten Sie den Odoo-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl restart odoo11

Der Rest der Systemressourcen wird von anderen Diensten verwendet, die auf unserem Computer ausgeführt werden. In diesem Handbuch haben wir Odoo zusammen mit PostgreSQL und Nginx auf demselben Server installiert. Abhängig von Ihrem Setup können auch andere Dienste auf Ihrem Server ausgeführt werden.

Fazit

Das ist es! Dieses Tutorial führte Sie durch die Installation von Odoo 11 unter Ubuntu 18.04 in einer virtuellen Python-Umgebung mit Nginx als Reverse-Proxy. Sie haben auch gelernt, wie Sie Multiprocessing aktivieren und Odoo für die Produktionsumgebung optimieren können. Vielleicht möchten Sie auch in unserem Tutorial nachlesen, wie Sie automatische tägliche Backups Ihrer Odoo-Datenbanken erstellen.

ubuntu odoo postgresql python pip nginx proxy ssl