كل المقالات

Getting Started

ما هي CICDoo البدء: معالج الإعداد الأولي لوحة التحكم وخريطة البنية التحتية

Concepts

مراحل الإنتاج والتجهيز والتطوير النطاقات والنطاقات الفرعية وSSL إصدارات Odoo وطبعاته (Community مقابل Enterprise) مساحات العمل والتعاون الجماعي

Servers

إضافة خادم نطاقات الخادم و DNS استخدام موازن الأحمال إجراءات الخادم: النشر والسجلات والمخططات

Projects & Git

إنشاء مشروع ربط GitHub ربط GitLab الفروع والنسخ وسم المشاريع وتصفيتها التوفر العالي مع عقد التطبيق

Instances & Console

إنشاء نسخة إعادة تشغيل نسخة وإيقافها وإزالتها دمج الفروع بين المراحل Web IDE والوصول عن بُعد شرح إعدادات النسخة عمليات النشر وقائمة المهام

Agent Tasks

ما هي مهام الوكيل إعداد مهام الوكيل تشغيل مهمة ومراجعة النتيجة وقت الوكيل وإعادة التعبئة

Monitoring & Backups

مراقبة نسختك النسخ الاحتياطي والاستعادة إشعارات التنبيه (البريد الإلكتروني والرسائل القصيرة)

Workspaces & Permissions

دعوة أعضاء مساحة العمل أذونات الأعضاء والوصول إلى الموارد عضو لا يستطيع رؤية مورد أو استخدامه

Account & Security

المصادقة الثنائية (2FA) إعدادات الملف الشخصي والتكاملات كلمات المرور واسترداد الحساب

Billing & Plans

الخطط والأسعار ترقية اشتراكك وإدارته إذا بقي اشتراك مشروع دون سداد برنامج شركاء القنوات

Support & Tickets

فتح تذكرة دعم الحصول على المساعدة من فريق CICDoo

Troubleshooting

استكشاف الأخطاء: تعذّر ربط خادم استكشاف الأخطاء: فشل عملية نشر استكشاف الأخطاء: فشل git push بخطأ 403 بعد نقل مستودع استكشاف الأخطاء: نسختي متوقّفة أو بطيئة استكشاف الأخطاء: مشكلات النطاق أو SSL

المشاريع وGit

التوفر العالي مع عقد التطبيق

كيفية تشغيل قاعدة بيانات إنتاج واحدة لـ Odoo على عدة خوادم، بمشروع رئيسي يشغّل قاعدة البيانات وعقد تطبيق تخدمها.

كيف يعمل

يتيح التوفر العالي تشغيل إنتاج قاعدة بيانات Odoo واحدة على عدة خوادم في الوقت نفسه. إذا توقف خادم عن الاستجابة، يُوجَّه الزوار إلى الخوادم الأخرى.

يتكوّن العنقود من مشاريع تشغّل الشيفرة نفسها:

  • المشروع الرئيسي: مشروع تشغّل نسخة الإنتاج فيه Odoo وقاعدة البيانات. قاعدة بياناته مفتوحة لعقد التطبيق ولا أحد غيرها.
  • عقد التطبيق: مشاريع أخرى، كل منها على خادم إنتاج مختلف، تشغّل نسخة الإنتاج فيها Odoo فقط وتستخدم قاعدة بيانات المشروع الرئيسي.

يستخدم الزوار عنوان المشروع الرئيسي. توجّه CICDoo هذا العنوان إلى المشروع الرئيسي وإلى كل عقدة تطبيق تستجيب، وتفحص كل عقدة كل بضع دقائق. العقدة التي تتوقف عن الاستجابة تُستبعد من العنوان حتى تتعافى.

أما قاعدة البيانات نفسها فما زالت تعمل على خادم واحد، هو خادم المشروع الرئيسي. تجعل عقد التطبيق جانب Odoo احتياطياً؛ فإذا تعطل خادم المشروع الرئيسي، يتعطل الموقع معه.

قبل أن تبدأ

  • الشيفرة نفسها: يجب أن تستخدم كل المشاريع في العنقود المستودع نفسه والفرع الافتراضي نفسه وإصدار Odoo وطبعته نفسيهما. إذا كانت Time Machine مفعّلة، فيجب أن تتطابق الإيداعات المثبّتة أيضاً.
  • خوادم مختلفة: يجب أن يكون لكل عقدة تطبيق خادم إنتاج خاص بها، مختلف عن خادم المشروع الرئيسي وعن خوادم العقد الأخرى.
  • وسيط Cloudflare: توزيع الحركة على العقد يعمل حالياً مع الخوادم التي فُعّل فيها وسيط Cloudflare. استخدم خوادم في المنطقة نفسها، لأن كل صفحة تقدّمها عقدة تطبيق تتصل بقاعدة بيانات المشروع الرئيسي.
  • مخزن ملفات مشترك: يجب أن يركّب كل خادم في العنقود التخزين المشترك نفسه لمخزن ملفات Odoo (filestore). بدونه، يكون المرفق المرفوع عبر عقدة مفقوداً على العقد الأخرى، ويُسجَّل خروج الزائر الذي ينتقل إلى عقدة أخرى. تواصل مع الدعم إذا احتجت إلى مساعدة في إعداده.
  • اتصالات قاعدة البيانات: تفتح كل عقدة تطبيق اتصالاتها الخاصة بقاعدة بيانات المشروع الرئيسي. كلما أضفت عقداً، ارفع max_connections في إعدادات PostgreSQL لنسخة الإنتاج في المشروع الرئيسي، في تبويب الإعدادات بوحدة تحكمها.

توجد إعدادات التوفر العالي في إعدادات المشروع، في تبويب متقدم، ضمن بطاقة التوفر العالي. تحتاج إلى صلاحية تغيير إعدادات المشروع.

إعداد المشروع الرئيسي

افتح المشروع الذي سيشغّل قاعدة البيانات، وانتقل إلى إعدادات المشروع > متقدم، وفي التوفر العالي اضبط الدور على رئيسي (تطبيق + قاعدة بيانات). انقر تطبيق وأكّد.

تُعاد تشغيل نسخة الإنتاج. وعندما تعود، تقبل قاعدة بياناتها الاتصالات من عقد التطبيق في العنقود. تكون الاتصالات بين الخوادم مشفّرة ما لم تكن خوادمك تتشارك شبكة خاصة.

يجب أن تستخدم نسخة الإنتاج قاعدة بياناتها المضمّنة الخاصة. المشروع الذي تشير نسخة الإنتاج فيه إلى قاعدة بيانات خارجية لا يمكن أن يكون رئيسياً.

إضافة عقدة تطبيق

أنشئ مشروعاً للعقدة كما تفعل عادةً: المستودع نفسه والفرع الافتراضي نفسه، والإصدار والطبعة نفسيهما، وخادم إنتاج خاص بها. احذف أي نسخ تجهيز وتطوير لديها: عقدة التطبيق تشغّل الإنتاج فقط، وفروع التجهيز والتطوير تبقى في المشروع الرئيسي.

ثم افتح إعدادات المشروع > متقدم للعقدة، واضبط الدور على عقدة تطبيق (تستخدم قاعدة بيانات مشروع رئيسي)، واختر المشروع الرئيسي في مصدر قاعدة البيانات، وانقر تطبيق وأكّد. لا تُعرض إلا المشاريع الرئيسية في مساحة العمل نفسها التي تشغّل الشيفرة نفسها.

لا تبدأ العقدة فوراً. يجب أولاً أن يسمح لها خادم المشروع الرئيسي، وهذا يحدث في فحصه التالي، عادةً خلال خمس دقائق. حتى ذلك الحين تعرض البطاقة "بانتظار سماح المشروع الرئيسي لهذه العقدة"، وتبدأ العقدة تلقائياً بمجرد السماح لها. وبعد بضع دقائق من بدء استجابتها، تبدأ في استقبال الزوار.

في المشروع الرئيسي، تسرد بطاقة التوفر العالي عقد التطبيق الخاصة به، وما إذا كان خادم قاعدة البيانات قد طبّق قائمة الوصول الحالية.

ما الذي يتغير في عقدة التطبيق

  • ليس لنسخة الإنتاج فيها قاعدة بيانات خاصة. تدير CICDoo إعدادات قاعدة بياناتها، ولا يمكن تغييرها في إعدادات Odoo للنسخة.
  • المهام المجدولة (مهام cron في Odoo) تعمل على المشروع الرئيسي فقط.
  • تُؤخذ النسخ الاحتياطية على المشروع الرئيسي. انسخ قاعدة بيانات العنقود احتياطياً واستعدها من المشروع الرئيسي.
  • الدفع إلى فرع عقدة التطبيق لا يفعل شيئاً بمفرده. يُحدَّث العنقود من المشروع الرئيسي.

نشر التحديثات

ادفع إلى فرع المشروع الرئيسي كالمعتاد. ثم تحدّث CICDoo العنقود كله بالترتيب:

  1. تُوقَف كل عقدة تطبيق.
  2. يُحدَّث المشروع الرئيسي، بما في ذلك أي ترقية للوحدات، بينما لا يستخدم أي خادم آخر قاعدة البيانات.
  3. تُشغَّل كل عقدة تطبيق من جديد بالشيفرة الجديدة.

يمكنك متابعة كل خطوة في تبويب قائمة الانتظار للنسخة التي تعمل عليها. إذا فشل تحديث المشروع الرئيسي، لا تُشغَّل عقد التطبيق من جديد، وتوضح مدخلاتها في قائمة الانتظار السبب. أصلح المشكلة وانشر مرة أخرى.

لأن ترقيات الوحدات تحتاج إلى قاعدة البيانات وحدها، يكون الموقع غير متاح أثناء تحديث المشروع الرئيسي، كما هو الحال مع النسخة المفردة.

مغادرة العنقود

لإزالة عقدة تطبيق، أعد الدور الخاص بها إلى مستقل (قاعدة بيانات خاصة) وانقر تطبيق. تتوقف نسخة الإنتاج فيها، لأن قاعدة بياناتها الخاصة لا تحتوي على بيانات العنقود. استعد نسخة احتياطية إليها قبل تشغيلها مجدداً.

لا يمكن تغيير المشروع الرئيسي ما دامت لديه عقد تطبيق. أزل العقد أولاً.

استكشاف الأخطاء وإصلاحها

  • العقدة تبقى بانتظار السماح: تحقق من أن نسخة الإنتاج في المشروع الرئيسي تعمل وأن خادمها متصل. يجب أن يُعاد تشغيل المشروع الرئيسي مرة واحدة بعد أن يصبح رئيسياً قبل السماح لأي عقدة.
  • العقدة تبدأ لكن Odoo لا يعمل: افتح سجلات العقدة. الرسالة التي تفيد بأن قاعدة بيانات المشروع الرئيسي غير مهيأة تعني أن المشروع الرئيسي لم يُكمل تشغيله الأول بعد.
  • الملفات المرفوعة أو جلسات الدخول لا تتبع الزوار بين العقد: الخوادم لا تتشارك مخزن الملفات. راجع "قبل أن تبدأ" أعلاه.

لمعرفة كيف تُقابَل النسخ بالفروع، راجع الفروع والنسخ، ولإعداد موازن الأحمال على مستوى الخادم، وهو ميزة مختلفة، راجع استخدام موازن الأحمال.

ما زلت عالقاً؟ افتح تذكرة من التطبيق أو تحدث إلى مهندس.