تثبيت عدة مراكز بيانات من أجل BaaS لواجهة برمجة التطبيقات

Edge for Private Cloud ‏v4.18.01

يمكنك تثبيت بنية BaaS المستندة إلى واجهة برمجة التطبيقات في مراكز بيانات متعددة باستخدام إعداد نشط/نشط . يوضّح هذا المستند كيفية إضافة مركز بيانات BaaS إلى مركز بيانات BaaS حالي.

إضافة مركز بيانات عند مشاركة clust

يجب أن يكون لجميع مراكز البيانات نفس عدد عُقد Cassandra. يمكن أن يستخدم تثبيت BaaS المستند إلى واجهة برمجة التطبيقات مجموعة Cassandra الخاصة به، أو يمكنه مشاركة مجموعة Cassandra مع Edge.

إذا كان تثبيت BaaS يشارك مجموعة Cassandra مع Edge، عليك تعديل خادم الإدارة في مركز البيانات الأصلي لإعداده للتعرّف على عقد Cassandra في مركز البيانات الجديد.

تعديل مركز البيانات الحالي

تتطلب إضافة مركز بيانات BaaS جديد (مركز البيانات 2) تنفيذ الخطوات لتثبيت تكوين مركز البيانات الجديد، ولكنه يتطلب أيضًا تحديث مركز بيانات BaaS الأصلي (مركز البيانات 1) . هذه التعديلات ضرورية لأنّ:

  • تتم إضافة عقد Cassandra جديدة في مركز البيانات الجديد يجب أن يتمكّن مركز البيانات الحالي من الوصول إليها.
  • يجب عليك تهيئة معلومات النسخ المماثل التي تستخدمها عُقد حزمة BaaS في البيانات 1 لتضمين معلومات من مركز البيانات 2. لا يمكنك إجراء هذا الضبط إلا بعد تركيب مركز البيانات 2.

لإجراء هذه التعديلات على مركز البيانات 1، عليك تعديل ملف الإعداد الأصلي المستخدَم في تثبيت مركز البيانات 1، ثم إعادة تشغيل apigee-setup على عقد Cassandra في مركز البيانات 1. إذا تمت مشاركة مجموعة Cassandra لمركز البيانات 1 مع تثبيت Edge، فعندئذ يجب أيضًا تحديث خادم الإدارة.

إنشاء ملفات الإعداد

لتثبيت "مركز البيانات" 1، استخدِم الإعدادات الموضحة في تثبيت BaaS لواجهة برمجة التطبيقات. لا يحتاج ملف الإعداد إلى تضمين أي معلومات عن مركز البيانات 2 في وقت تثبيت مركز البيانات 1. يمكنك إضافة المعلومات إلى ملف الإعداد بعد تثبيت مركز البيانات 2.

في ما يلي ملفات الإعدادات الخاصة بمركز البيانات 2. يفترض ملف التهيئة هذا أنك بتثبيت dc-2 على 10 عُقد، كما هو موضح في سياسات التثبيت. عدِّل هذا الملف وفقًا لذلك إذا كنت بصدد التثبيت على 7 عقد.

يُرجى العِلم أنّ ملف الإعدادات الخاص بمركز البيانات 2 (dc-2) يحتوي على معلومات عن مركز البيانات 1 (dc-1):

# Specify IP address or DNS name of node for dc-2.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra dc-2 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra dc-2 (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra dc-2 (shared with Edge or standalone)

# Specify node information for dc-1
IP11=192.168.1.11   # Cassandra dc-1 (shared with Edge or standalone)
IP12=192.168.1.12   # Cassandra dc-1 (shared with Edge or standalone)
IP13=192.168.1.13   # Cassandra dc-1 (shared with Edge or standalone)
IP14=192.168.1.14   # API BaaS Stack
IP15=192.168.1.15   # API BaaS Stack

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Specify Cassandra data center and rack suffix.
# List dc-2 nodes first, then dc-1.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1"

# Specify the Cassandra region.
REGION=dc-2

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name as dc-2.
BAAS_CASS_LOCALDC=dc-2    

# Specify both data centers.
BAAS_CASS_DC_LIST=dc-1,dc-2

# Replication is in the form "dataCenterName:#CassandraNodes". 
# Specify both data centers.
BAAS_CASS_REPLICATION=dc-1:3,dc-2:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes per data center.
# Specify both data centers. 
BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces, for dc-2.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y
SMTPMAILFROM="My Company <myco@company.com>"

إضافة مركز بيانات BaaS

  1. ثبِّت مركز البيانات الأول كما هو موضَّح في تثبيت BaaS لواجهة برمجة التطبيقات. يتضمّن هذا المستند ملف الضبط الذي تستخدمه لتثبيت مركز البيانات 1.
  2. أنشئ ملف الإعداد لـ dc-2 كما هو موضح أعلاه.
  3. تثبيت Cassandra، إما كجزء من تثبيت Edge الحالي أو كبرنامج مستقل التجميع العنقودي لـ BaaS:
    1. ثبِّت الأداة apigee-setup في Edge على أول عقدة Cassandra من dc-2، الجهاز 8، باستخدام الإنترنت أو إجراء غير مرتبط بالإنترنت. اطّلِع على مزيد من المعلومات في مقالة تثبيت أداة apigee-setup في Edge.
    2. في موجه الأوامر، شغِّل النص البرمجي للإعداد لتثبيت Cassandra في العقدة الأولى:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      يحدد الخيار "-p c" تثبيت كاساندرا.

      يجب أن يكون ملف الإعداد قابلاً للوصول أو القراءة بواسطة "apigee" المستخدم.
    3. كرر الخطوتين 3 و4 لعقد Cassandra المتبقية، الجهازين 9 و10، في dc-2.
  4. في عقد Cassandra الخاصة بمركز البيانات 1، عدِّل ملف الضبط لإضافة عقد Cassandra من مركز البيانات 2 استنادًا إلى كيفية تثبيت Cassandra:

    # إدراج عقد dc-1 أولاً، ثم dc-2،
    # بما في ذلك مركز بيانات Cassandra ولاحقة الرف
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. في أول عقدة Cassandra من dc-1، شغّل setup.sh باستخدام ملف التهيئة dc-1 الجديد الذي ويتضمّن عُقد Cassandra من dc-2:
    . &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. كرر الخطوتين 6 و7 لعُقد Cassandra المتبقية في dc-1.
  7. إذا كنت تتصل بمجموعة Cassandra على dc-1 تمت مشاركتها مع Edge، أضف عُقد dc-2 Cassandra إلى ملف التهيئة لعقدة خادم الإدارة من dc-1 وقم بتشغيل setup.sh:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. حدِّث مساحات مفاتيح Cassandra باستخدام عامل النسخ الصحيح لمركزَي البيانات. ليس عليك سوى تنفيذ هذه الخطوة مرة واحدة على أي خادم Cassandra في أي من مركزَي البيانات:

    ملاحظة: تعمل جميع الأوامر أدناه على ضبط عامل النسخ على "3"، ما يشير إلى ثلاث عقد Cassandra في المجموعة. عدِّل هذه القيمة حسب الحاجة لعملية التثبيت.
    1. ابدأ أداة Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. نفِّذ أوامر CQL التالية في موجه "cqlsh>" لضبط مستويات النسخ المتعدّد لمساحات مفاتيح Cassandra:
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh&gt; ALTER KEYSPACE "system_auth" WITH النسخ المتماثل = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. يمكنك عرض مساحات المفاتيح باستخدام الأمر:
        cqlsh> select * from system.schema_keyspaces;
      7. الخروج من واجهة cqlsh:
        cqlsh&gt; خروج
  9. على جميع عقد Cassandra في dc-2، شغِّل الأمر rebuild مع تحديد اسم المنطقة dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1
  10. شغِّل الأمر "nodetool status" على كلّ عقدة من عقد Cassandra وتأكَّد من أنّ جميع عقد Cassandra تحتوي على "‎100%" لقيمة "Owns":
    > /opt/apigee/apigee-cassandra/bin/nodetool status
  11. تثبيت BaaS في dc-2:
    1. عدِّل ملف الإعداد لإدراج عقد Cassandra فقط في dc-2:
      # سرد عُقد dc-2 Cassandra،
      # حذف مركز بيانات Cassandra ولاحقة الحامل
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. تثبيت ElasticSearch على العُقد 4 و5 و6 من dc-2:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. تثبيت حزمة BaaS على العُقد 4 و5 و6 من dc-2:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. تثبيت بوابة BaaS على الجهاز 7:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p -f configFile
  12. عدِّل عقد حِزمة BaaS في مركز البيانات 1:
    1. في أول عقدة BaaS Stack في مركز البيانات 1، عدِّل /opt/apigee/customer/application/usergrid.properties في أحد المحررين. إذا لم يكن الملف متوفّرًا، أنشئه.
    2. أضِف السمات التالية إلى usergrid.properties:
      # القيمة نفسها التي تخص BAAS_CLUSTER_SEEDS في ملف الإعداد dc-2،
      # بدون علامتَي اقتباس.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # نفس القيمة BAAS_CASS_DC_LIST في ملف تهيئة dc-2.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. كرِّر الخطوتَين (أ) و(ب) على عقد BaaS Stack المتبقية.
    4. أعِد تشغيل جميع عقد BaaS Stack.

      ملاحظة: عند إعادة تشغيل عقد BaaS Stack، أعِد تشغيلها بالترتيب نفسه الذي تم إدراجها به في BAAS_CLUSTER_SEEDS. يسرد BAAS_CLUSTER_SEEDS ما يصل إلى عقدتَين من عقد الحزمة. بعد إعادة تشغيل هاتين العقدتَين بالترتيب، يمكنك إعادة تشغيل العقد المتبقية بأي ترتيب.

      > ‎/opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  13. عدِّل قيم مساحة مفاتيح BaaS. يجب ضبط مساحة المفاتيح هذه للتكرار في وقت التثبيت، ولكن ليس في وقت التشغيل. تؤدي إزالة النسخ المماثل أيضًا إلى حفظ ذاكرة "كاساندرا".

    يجب عليك تشغيل هذه الخطوة مرة واحدة فقط على أي خادم من خوادم Cassandra في أي من مركزي البيانات:
    1. ابدأ تشغيل أداة Cassandra cqlsh:
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. نفِّذ أوامر CQL التالية لضبط مستويات النسخ في مساحات مفاتيح Cassandra :
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. يمكنك عرض مساحات المفاتيح باستخدام الأمر:
        cqlsh> select * from system.schema_keyspaces;
      4. الخروج من واجهة cqlsh:
        cqlsh&gt; خروج

اكتمل الآن تثبيت مركز البيانات الثاني.

بعد الانتهاء من تثبيت مركزَي البيانات وتكوينهما، يمكنك والتحقق من صحة التثبيت باستخدام الإجراء التالي:

  1. في جميع عقد BaaS Stack، تحقّق من الحالة:
    > curl 0:8080/status
  2. التحقّق من عمل طلب بيانات من واجهة برمجة التطبيقات للحصول على الرمز المميّز:
    > curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}'
  3. جرِّب تسجيل الدخول إلى بوابة BaaS لوحدة dc-2. تحقق، يتم نسخ جميع البيانات في dc-2، مثل المجموعات التي تم إنشاؤها في dc-1.