एंड्रॉयड

Ubuntu 18.04 पर odoo 11 कैसे तैनात करें

उबंटू 18.04 पर Odoo 11 स्थापित करने के लिए

उबंटू 18.04 पर Odoo 11 स्थापित करने के लिए

विषयसूची:

Anonim

ओडू दुनिया में सबसे लोकप्रिय ऑल-इन-वन बिजनेस सॉफ्टवेयर है। यह CRM, वेबसाइट, ई-कॉमर्स, बिलिंग, अकाउंटिंग, मैन्युफैक्चरिंग, वेयरहाउस, प्रोजेक्ट मैनेजमेंट, इन्वेंट्री और बहुत अधिक सहित सभी व्यावसायिक अनुप्रयोगों की पेशकश करता है, जो सभी समेकित रूप से एकीकृत हैं।

आवश्यक उपयोग के मामले के आधार पर ओडू स्थापित करने के कई तरीके हैं। ओडू को स्थापित करने का सबसे आसान और तेज तरीका उनके आधिकारिक एपीटी रिपॉजिटरी का उपयोग करना है।

इस गाइड में उबंटू 18.04 सिस्टम पर Git स्रोत और पायथन वर्चुअल वातावरण का उपयोग करके उत्पादन के लिए Odoo को स्थापित करने और कॉन्फ़िगर करने के लिए आवश्यक कदम शामिल हैं।

शुरू करने से पहले

आप एक यूडो मशीन के रूप में उबंटू मशीन में लॉग इन करें और सिस्टम को नवीनतम पैकेज में अपडेट करें:

sudo apt update && sudo apt upgrade

Git, Pip, Node.js और 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

Odoo यूजर बनाएं

ओडू सेवा चलाने वाले होम डायरेक्टरी /opt/odoo साथ एक नया सिस्टम उपयोगकर्ता और समूह बनाएं।

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo आप उपयोगकर्ता को जो चाहें पसंद कर सकते हैं, बस यह सुनिश्चित कर लें कि आप उसी नाम से एक पोस्टग्रेज उपयोगकर्ता बनाएँ।

PostgreSQL को स्थापित और कॉन्फ़िगर करें

Ubuntu के डिफ़ॉल्ट रिपॉजिटरी से PostgreSQL पैकेज स्थापित करें:

sudo apt install postgresql

एक बार इंस्टॉलेशन पूरा हो जाने के बाद, पोस्टग्रेएसक्यूएल उपयोगकर्ता को उसी नाम से बनाया जाए, जो पहले बनाए गए सिस्टम यूजर के नाम पर है, हमारे मामले में odoo :

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

Wkhtmltopdf स्थापित करें

wkhtmltox पैकेज ओपन सोर्स कमांड लाइन टूल का एक सेट प्रदान करता है जो HTML को पीडीएफ और विभिन्न छवि प्रारूपों में प्रस्तुत कर सकता है। पीडीएफ रिपोर्ट प्रिंट करने के लिए, आपको wkhtmltopdf टूल की आवश्यकता होगी। ओडू के लिए अनुशंसित संस्करण 0.12.1 है जो आधिकारिक उबंटू 18.04 रिपॉजिटरी में उपलब्ध नहीं है।

निम्नलिखित विग कमांड का उपयोग करके पैकेज डाउनलोड करें:

wget

एक बार डाउनलोड पूरा होने के बाद टाइप करके पैकेज स्थापित करें:

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

ओडू को स्थापित और कॉन्फ़िगर करें

हम एक अलग-अलग पायथॉन आभासी वातावरण के अंदर GitHub रिपॉजिटरी से Odoo स्थापित करेंगे ताकि हम संस्करणों और अपडेट पर अधिक नियंत्रण रख सकें।

स्थापना प्रक्रिया से शुरू करने से पहले, सुनिश्चित करें कि आप उपयोगकर्ता को odoo स्विच करते हैं।

sudo su - odoo

पुष्टि करने के लिए कि आप लॉग-इन के रूप में odoo उपयोगकर्ता हैं, आप निम्न कमांड का उपयोग कर सकते हैं:

whoami

अब हम स्थापना प्रक्रिया के साथ शुरू कर सकते हैं। GitHub रिपॉजिटरी से ओडू का पहला क्लोन:

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

  • यदि आप एक अलग ओडू संस्करण स्थापित करना चाहते हैं - बस के बाद संस्करण संख्या को --branch दें - --branch स्विच। आप निर्देशिका को जैसा चाहें नाम दे सकते हैं, उदाहरण के लिए इसके बजाय odoo11 आप अपने डोमेन के नाम का उपयोग कर सकते हैं।

Odoo 11 इंस्टेंस रन के लिए एक नया वर्चुअल वातावरण बनाने के लिए:

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

निम्नलिखित कमांड के साथ पर्यावरण को सक्रिय करें:

source odoo11-venv/bin/activate

और pip3 के साथ सभी आवश्यक पायथन मॉड्यूल स्थापित करें:

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

pip3 पायथन पैकेज को स्थापित करने और प्रबंधित करने का एक उपकरण है।

एक बार इंस्टॉलेशन पूरा हो जाने के बाद पर्यावरण को निष्क्रिय करें और निम्न कमांड का उपयोग करके अपने sudo उपयोगकर्ता पर वापस जाएँ:

deactivate

exit

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

अगला, हमें एक कॉन्फ़िगरेशन फ़ाइल बनाने की आवश्यकता है, हम या तो स्क्रैच से एक नया बना सकते हैं या शामिल कॉन्फ़िगरेशन फ़ाइल की प्रतिलिपि बना सकते हैं:

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

फ़ाइल खोलें और इसे निम्नानुसार संपादित करें:

/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 यदि आप कस्टम मॉड्यूल का उपयोग कर रहे हैं, तो my_admin_passwd को कुछ अधिक सुरक्षित और my_admin_passwd को समायोजित करने के लिए बदलना न भूलें।

एक Systemd इकाई फ़ाइल बनाएँ

ओडू को सेवा के रूप में चलाने के लिए हम निम्नलिखित सामग्री के साथ /etc/systemd/system/ निर्देशिका में एक odoo11.service यूनिट फ़ाइल odoo11.service :

/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

सिस्टम को सूचित करें कि हमने एक नई यूनिट फ़ाइल बनाई है और निष्पादित करके ओडू सेवा शुरू करते हैं:

sudo systemctl daemon-reload sudo systemctl start odoo11

आप निम्न कमांड के साथ सेवा की स्थिति देख सकते हैं:

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

और अगर कोई त्रुटि नहीं है, तो आप ओडू सेवा को बूट समय पर स्वचालित रूप से शुरू करने में सक्षम कर सकते हैं:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

स्थापना का परीक्षण करें

अपना ब्राउज़र खोलें और टाइप करें: http://:8069 http://:8069

यह मानते हुए कि इंस्टॉलेशन सफल है, निम्नलिखित के समान स्क्रीन दिखाई देगी:

Nginx को SSL समाप्ति प्रॉक्सी के रूप में कॉन्फ़िगर करें

  • आपके पास अपने सार्वजनिक सर्वर आईपी की ओर इशारा करते हुए एक डोमेन नाम है। इस ट्यूटोरियल में हम example.com का उपयोग करेंगे। आपके पास इन निर्देशों का पालन करके Nginx स्थापित है। आपके पास अपने डोमेन के लिए SSL प्रमाणपत्र स्थापित है। आप इन निर्देशों का पालन करके एक मुफ्त लेट्स एनक्रिप्ट एसएसएल प्रमाणपत्र स्थापित कर सकते हैं।

डिफ़ॉल्ट Odoo वेब सर्वर HTTP पर ट्रैफ़िक परोस रहा है। अपनी ओडू तैनाती को और अधिक सुरक्षित बनाने के लिए हम Nginx को एक SSL टर्मिनेशन प्रॉक्सी के रूप में कॉन्फ़िगर करेंगे जो HTTPS पर ट्रैफिक का काम करेगा।

SSL समाप्ति प्रॉक्सी एक प्रॉक्सी सर्वर है जो SSL एन्क्रिप्शन / डिक्रिप्शन को हैंडल करता है। इसका अर्थ है कि हमारी समाप्ति प्रॉक्सी (Nginx) आने वाले TLS कनेक्शन (HTTPS) को हैंडल और डिक्रिप्ट करेगी, और यह हमारी आंतरिक सेवा (Odoo) के लिए अनएन्क्रिप्टेड अनुरोधों को पारित करेगी ताकि Nginx और Odoo के बीच का ट्रैफ़िक एन्क्रिप्टेड (HTTP) नहीं होगा।

हमें ओडू को यह बताने की आवश्यकता है कि हम एक प्रॉक्सी का उपयोग करेंगे, कॉन्फ़िगरेशन फ़ाइल खोलें और निम्न पंक्ति जोड़ें:

/etc/odoo11.conf

proxy_mode = True

परिवर्तनों को प्रभावी करने के लिए Odoo सेवा को पुनरारंभ करें:

sudo systemctl restart odoo11

प्रॉक्सी के रूप में Nginx का उपयोग करने से हमें कई लाभ मिलते हैं। इस उदाहरण में हम SSL समाप्ति, HTTP को HTTPS पुनर्निर्देशन, WWW को गैर-WWW पुनर्निर्देशन, स्थिर फ़ाइलों को कैश और 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; } अपने ओडू डोमेन के साथ example.com को बदलना न भूलें और एसएसएल प्रमाणपत्र फ़ाइलों के लिए सही रास्ता तय करें। इस कॉन्फ़िगरेशन में उपयोग किए गए स्निपेट्स इस गाइड में बनाए गए हैं।

एक बार जब आप कर लें, तो Nginx सेवा को फिर से शुरू करें:

sudo systemctl restart nginx

बाइंडिंग इंटरफ़ेस बदलें

यह कदम वैकल्पिक है, लेकिन यह एक अच्छा सुरक्षा अभ्यास है। डिफ़ॉल्ट रूप से, ओडू सर्वर सभी इंटरफेस पर 8069 पोर्ट को सुनता है, इसलिए यदि आप अपने ओडू उदाहरण के लिए सीधी पहुंच को अक्षम करना चाहते हैं, तो आप पोर्ट 8069 को सभी सार्वजनिक इंटरफेस के लिए ब्लॉक कर सकते हैं या ओडू को केवल स्थानीय इंटरफ़ेस पर सुनने के लिए मजबूर कर सकते हैं।

इस गाइड में हम ओडू को केवल 127.0.0.1 पर सुनने के लिए बाध्य करेंगे, ओडू कॉन्फ़िगरेशन खोलें, फ़ाइल के अंत में निम्नलिखित दो पंक्तियाँ जोड़ें:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

कॉन्फ़िगरेशन फ़ाइल सहेजें और परिवर्तनों को प्रभावी करने के लिए Odoo सर्वर को पुनरारंभ करें:

sudo systemctl restart odoo

मल्टीप्रोसेसिंग सक्षम करें

डिफ़ॉल्ट रूप से, ओडू मल्टीथ्रेडिंग मोड में काम कर रहा है। उत्पादन परिनियोजन के लिए, मल्टीपर्सिंग सर्वर पर स्विच करने की सिफारिश की जाती है क्योंकि यह स्थिरता बढ़ाता है, और सिस्टम संसाधनों का बेहतर उपयोग करता है। बहुसंकेतन को सक्षम करने के लिए हमें ओडू कॉन्फ़िगरेशन को संपादित करने और गैर-शून्य संख्या में श्रमिक प्रक्रियाओं को सेट करने की आवश्यकता है।

सिस्टम में सीपीयू कोर की संख्या और उपलब्ध रैम मेमोरी के आधार पर श्रमिकों की संख्या की गणना की जाती है।

श्रमिकों की संख्या और आवश्यक रैम मेमोरी के आकार की गणना करने के लिए आधिकारिक ओडू प्रलेखन के अनुसार हम निम्नलिखित सूत्रों और मान्यताओं का उपयोग करेंगे:

कार्यकर्ता संख्या की गणना

  • कार्यकर्ता की सैद्धांतिक अधिकतम संख्या = (system_cpus * 2) + 11 कार्यकर्ता सेवा कर सकते हैं ~ = 6 समवर्ती उपयोगकर्ता

रैम मेमोरी साइज कैलकुलेशन

  • हम विचार करेंगे कि सभी अनुरोधों में से 20% भारी अनुरोध हैं, जबकि 80% हल्के हैं। भारी अनुरोध लगभग 1 GB RAM का उपयोग कर रहे हैं, जबकि लाइटर वाले लगभग 150 MB RAM RAM का उपयोग कर रहे हैं RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (Heavy_worker_ratio * Heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

मान लें कि हमारे पास 4 सीपीयू कोर, 8 जीबी रैम मेमोरी और 30 समवर्ती ओडू उपयोगकर्ताओं के साथ एक प्रणाली है।

  • 30 users / 6 = **5** (5 आवश्यक श्रमिकों की सैद्धांतिक संख्या है) (4 * 2) + 1 = **9** (9 श्रमिकों की सैद्धांतिक अधिकतम संख्या है)

ऊपर की गणना के आधार पर हम क्रोन कार्यकर्ता के लिए 5 श्रमिकों + 1 कार्यकर्ता का उपयोग कर सकते हैं जो कि 6 श्रमिकों की कुल है।

श्रमिकों की संख्या के आधार पर रैम मेमोरी खपत की गणना करें:

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

ऊपर की गणना हमें बताती है कि हमारे ओडू इंस्टॉलेशन को लगभग 2GB RAM की आवश्यकता होगी।

मल्टीप्रोसेसिंग मोड पर स्विच करने के लिए, कॉन्फ़िगरेशन फ़ाइल खोलें और निम्न पंक्तियों को जोड़ें:

/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

परिवर्तनों को प्रभावी करने के लिए Odoo सेवा को पुनरारंभ करें:

sudo systemctl restart odoo11

बाकी सिस्टम संसाधनों का उपयोग हमारी मशीन पर चलने वाली अन्य सेवाओं द्वारा किया जाएगा। इस गाइड में हमने एक ही सर्वर पर PostgreSQL और Nginx के साथ Odoo स्थापित किया है और आपके सेटअप के आधार पर आपके सर्वर पर चलने वाली अन्य सेवाएँ भी हो सकती हैं।

निष्कर्ष

बस! इस ट्यूटोरियल ने आपको रिवर्स प्रॉक्सी के रूप में नगनेक्स का उपयोग करते हुए पायथन आभासी वातावरण में उबंटू 18.04 पर ओडू 11 की स्थापना के माध्यम से चला गया। आपने यह भी सीखा कि उत्पादन वातावरण के लिए ओडू को बहुप्रचारित करने और अनुकूलित करने में कैसे सक्षम किया जाए। आप अपने ओडू डेटाबेस के स्वचालित दैनिक बैकअप बनाने के तरीके के बारे में हमारे ट्यूटोरियल की जांच करना चाहते हैं।

ubuntu odoo postgresql python pip nginx प्रॉक्सी ssl