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

Edge for Private Cloud، الإصدار 4.17.05

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

إن إضافة مركز بيانات عند تتم مشاركة مجموعة Cassandra مع Edge

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

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

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

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

  • أنت تضيف عُقد كاساندرا جديدة في مركز البيانات الجديد والتي يجب الوصول إليها عن طريق مركز البيانات الحالي.
  • يجب عليك تهيئة معلومات النسخ المماثل التي تستخدمها عُقد حزمة 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

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

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

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

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

    # أدرج عُقد dc-1 أولاً، ثم dc-2،
    # بما في ذلك مركز بيانات "كاساندرا" ولاحقة الحامل
    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:
    . > /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:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. حدِّث مساحات مفاتيح Cassandra باستخدام عامل النسخ الصحيح لمركزَي البيانات. إِنْتَ يجب تنفيذ هذه الخطوة مرة واحدة فقط على أي خادم من خوادم Cassandra في أيّ من مركزَي البيانات:

    ملاحظة: تُعيِّن الأوامر أدناه عامل النسخ على "3"، للإشارة إلى ثلاث عقد لـ "كاساندرا" في المجموعة العنقودية. عدِّل هذه القيمة حسب الضرورة لعملية التثبيت.
    1. ابدأ تشغيل أداة Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. تنفيذ أوامر CQL التالية في "cqlsh>" لضبط النسخ المتماثل مستويات Cassandra keyspaces:
      1. cqlsh> التغيير KEYSPACE "Apigee_Baas_dc_1" WITH nontion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> التغيير KEYSPACE "Apigee_Baas" WITH مكرّر = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh> التغيير KEYSPACE "Apigee_Baas_Locks" WITH nontion = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> لوحة المفاتيح البديلة "system_trace" WITH مكرّر = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> التغيير KEYSPACE "system_auth" WITH مكرّر = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. اعرض مساحة المفاتيح باستخدام الأمر:
        cqlsh> اختر * من system.schema_keyspaces;
      7. الخروج من واجهة cqlsh:
        cqlsh> خروج
  9. في جميع عُقد Cassandra في dc-2، شغّل أمر إعادة الإنشاء، مع تحديد اسم منطقة dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP إعادة إنشاء dc-1
  10. تنفيذ "حالة أداة nodetool" في كل عقدة Cassandra والتحقق من أن جميع عُقد Cassandra تحتوي على "100%" لقيمة "يمتلك":
    > /opt/apigee/apigee-cassandra/bin/nodetool
  11. تثبيت BaaS في dc-2:
    1. عدِّل ملف الإعداد لإدراج عقد Cassandra فقط في dc-2:
      # سرد عُقد dc-2 Cassandra،
      # حذف مركز بيانات Cassandra ولاحقة الحامل
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. تثبيت ElasticSearch على العُقد 4 و5 و6 من dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. تثبيت حزمة BaaS على العُقد 4 و5 و6 من dc-2:
      > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. تثبيت بوابة BaaS على الجهاز 7:
      > /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_COUNTRY_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. كرِّر الخطوتين a وb على عُقد تكديس BaaS المتبقية.
    4. أعِد تشغيل جميع عُقد حزمة BaaS.

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

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

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

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

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

  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.