يصف هذا وثيقة إطار عمل لنشر RSUp على خوادم C220 M6 UCS in order to ساندت cisco VPC-DI.
توصي Cisco بأن تكون لديك معرفة بالنظام الأساسي Red Hat OpenStack (RHOSP) وأن تمتلك مهارات قوية في Red Hat Enterprise Linux (RHEL). وبالإضافة إلى ذلك، يلزم توفر فهم قوي لمفاهيم المحاكاة الافتراضية والشبكات.
لا يقتصر هذا المستند على إصدارات برامج ومكونات مادية معينة.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
يوضح هذا الدليل تكامل RHOSP مع البنية الأساسية لنظام الحوسبة الموحدة (UCS)، مع التركيز على قابلية التطوير والموثوقية وتحسين الأداء.
يقدم تفاصيل أفضل الممارسات ويستخدم التشغيل التلقائي غير المحتمل القائم على البرامج النصية لنشر OpenStack ThreeO الذي يتكون من بنية UnderCloud و Overcloud.
من خلال إستخدام دليل النشر هذا، يمكن للمؤسسات تحقيق بنية أساسية قوية وفعالة لشبكات RSU تم تخصيصها لخدمة وظائف الشبكة الظاهرية (VNF) للمثيل الموزع (VPC-DI) المستندة إلى VNF.
RHOSP هو حل شبكات خاص من فئة المؤسسات مبني على مشروع OpenStack مفتوح المصدر، مدمج ومدعوم من قبل Red Hat. وهو يسمح للمؤسسات بنشر البنية الأساسية كخدمة (IAAs) وإدارتها للأجهزة الافتراضية (VM) والشبكات ووحدات التخزين حسب الطلب.
فهو يوفر ميزات مثل التوفر الفائق (HA) ووظائف الشبكة والمحاكاة الافتراضية وعمليات النشر القابلة للتخصيص.
يستند RHOSP في المقام الأول إلى مشروع OpenStack ThreeO. يستخدم OpenStack المدير الذي يعمل كمجموعة أدوات لتثبيت بيئة RSUp كاملة وإدارتها.
تم تصميم RSUp لتوفير بنية أساسية للسحابة تتسم بقابلية التطوير والمرونة. وتتكون هندسته المعمارية من مكونين رئيسيين هما: UnderCloud و overcloud.

UnderCloud هي عقدة الإدارة الرئيسية التي تحتوي على مجموعة أدوات مدير RSUp. وهو عبارة عن تثبيت OpenStack أحادي النظام يتضمن مكونات لإمداد عقد OpenStack التي تشكل بيئة OpenStack (عبر السحابة) وإدارتها.
تستخدم الشبكة الداخلية مكونات OpenStack كمجموعة أدوات أساسية لها. يعمل كل مكون ضمن حاوية منفصلة على الشبكة الفرعية:
تمثل السحابة بيئة RSUp الناتجة التي تم إنشاؤها باستخدام السحابة السفلية. ويتضمن ذلك أدوار عقد مختلفة يتم تعريفها استنادا إلى بيئة نظام OpenStack الأساسي (OSP) التي يهدف العميل إلى إنشائها.
توفر عقد وحدات التحكم الإدارة والشبكات والمجال HA لبيئة OpenStack. تحتوي بيئة OpenStack الموصى بها على ثلاث عقد لوحدة التحكم معا في مجموعة HA.
توفر عقد الحوسبة موارد حوسبة لبيئة OpenStack. يمكن أن تكون عقد الحوسبة قابلة للتوسعة/التطوير بناء على متطلبات الشبكة بمرور الوقت. تحتوي عقدة حساب افتراضية على المكونات المذكورة التالية:
توفر عقد التخزين التخزين التخزين لبيئة OpenStack.
ملاحظة: هناك عدة طرق لنشر UnderCloud/Director والمستودع دون اتصال (REPO) في شبكة العملاء - يمكن نشره مباشرة على عقدة Baremetal أو كجهاز VM أعلى برنامج مراقبة الأجهزة الافتراضية في لوحة المفاتيح والفيديو والماوس. في دليل النشر الحالي، يستضيف خادم Director UCS KVM (برنامج hypervisor) لنشر العديد من الأجهزة الافتراضية في الأعلى. يتم نشر عقدة مدير RHOSP وعقد Repo غير المتصلة ك VM على برنامج Hypervisor الخاص ب KVM.
يوفر Redhat أداة مساعدة تسمى reposync يمكن إستخدامها لتنزيل الحزم من شبكة توصيل المحتوى (CDN). لتنزيل جميع الحزم من قناة معينة، يجب الاشتراك في النظام إلى تلك القناة. في حالة عدم الاشتراك في النظام بالقناة المطلوبة، يتعذر على RepSync تنزيل هذه الحزم ومزامنتها على النظام المحلي.
يتم تكوين المستودعات في /etc/yum.repos.d/path بواسطة الملفات التي تنتهي بامتداد .repo. يمكن تعريف مستودعات متعددة في نفس الملف.
خدمة الشبكة (النترون) هي مكون الشبكة المعرفة بالبرامج (SDN) الخاص ب RSUp. تقوم خدمة شبكات RSUp بإدارة حركة المرور الداخلية والخارجية من مثيلات VM وإليها، كما توفر الخدمات الأساسية مثل التوجيه والتجزئة و DHCP وبيانات التعريف. وهو يوفر واجهة برمجة التطبيقات (API) لإمكانات الشبكة الظاهرية وإدارة المحولات والموجهات والمنافذ وجدران الحماية.
يقوم مدير RHOSP بتعيين خدمات OpenStack للشبكات المعزولة المختلفة. الشبكات التي تحمل كل نوع من أنواع حركة المرور هي: وحدة التحكم في الإدارة المتكاملة (CIMC) من Cisco والإمداد وواجهة برمجة التطبيقات الداخلية وبيانات التخزين وإدارة التخزين والمستأجر والخارجي (طبقة الأمان (SSH) والعمليات والإدارة والصيانة (OAM)).
يستخدم نشر RSUp منافذ فعلية مختلفة لخوادم Cisco UCS C220 M6 لأغراض اتصال مختلفة.

| الرقم التسلسلي |
المنافذ المادية |
التفاصيل |
| 1. |
CIMC |
توفر وحدة التحكم في إدارة اللوحة الأساسية (CIMC) إمكانية اتصال خارج النطاق لإمداد الخوادم وإدارتها. |
| 2. |
محاكاة افتراضية للإدخال/الإخراج أحادية الجذر (SR-IOV)/واجهة مكونات الأجهزة الطرفية Interconnect Express (PCIe) |
يتم إستخدام بطاقة واجهة شبكة PCIe (NIC) على عقد الحوسبة لشبكات DI-internal و Service ل VNF. |
| 3. |
شبكة محلية معيارية على اللوحة الأم (MLOM) |
يتم تكوين منافذ MLOM كسندات. osp_external و osp_internal و osp_tenant و osp_external و osp_storage_data و osp_storage_mgmt يستخدم منفذ MLOM للاتصال الداخلي. |
| 4. |
LAN على اللوحة الأم (LOM) |
يستخدم المدير منافذ LOM1 و LOM2، بينما تستخدم أجهزة الكمبيوتر ووحدات التحكم منفذ LOM1 فقط. يتم إستخدام LOM1 لنشر OpenStack أو توفيره على جميع الخوادم. يتم إستخدام LOM2 كشبكة OAM (شبكة خارجية) على الموجه. |
يوضح الرسم التخطيطي الاتصال المادي بالخوادم.

تحتوي شبكة RSUp على شبكات فرعية متعددة تقدم خدماتها إلى خدمات مختلفة داخل السحابة.

CIMC هي واجهة إدارة البرمجة الذكية (IPMI) التي تتحكم في إدارة جميع خوادم UCS. يتم تكوين شبكة CIMC هذه على منفذ CIMC المستقل لجميع خوادم UCS.
هذه الشبكة مسؤولة عن إدارة تمهيد بيئة تنفيذ الإعداد والتمهيد المسبق (PXE) لأجهزة الكمبيوتر وخوادم وحدات التحكم أثناء نشر الشبكات عبر السحابة وكذلك للحصول على بروتوكول DHCP IP. تم تكوين شبكة الإعداد كشبكة VLAN الأصلية على LOM1 منفذ من جميع خوادم UCS من أجل البساطة والتوافق. تعد شبكة الإعداد هذه مسؤولة عن نشر مجموعة النظراء على جميع الخوادم.
ونظرا للمحاكاة الافتراضية على خادم Director، يلزم إنشاء شبكة جسر على لوحة المفاتيح والفيديو والماوس لكي يتمكن مدير اللوحة الافتراضية من الاتصال بالخوادم الأخرى.
يتم إستخدام شبكة واجهة برمجة التطبيقات (API) الداخلية للاتصال بين خدمات OpenStack مثل النيوترون ونوفا وحجر المفاتيح وما إلى ذلك.
يتم تكوين الشبكة OSP_Internal على منافذ MLOM مرتبطة على عقد وحدة التحكم وعقد الحوسبة.
يتم إنشاء شبكة المستأجر بشكل افتراضي ضمن مشاريع السحابة لإدارة VNF. في الإعداد الحالي، يتم إنشاء مشروع OpenStack واحد فقط لنشر VNF.
يتم تكوين شبكة OSP_TENANT على منافذ MLOM مرتبطة في عقد وحدة التحكم وعقد الحوسبة.
يتم إستخدام الشبكة الخارجية لجميع شبكات الوصول الخارجي (مثل SSH) وواجهة برمجة التطبيقات (API).
يتم تكوين الشبكة OSP_External على منفذ LOM2 في عقدة Director وعلى منافذ MLOM مرتبطة في عقد وحدة التحكم وعقد الحوسبة.
يتم إستخدام شبكة OSP_Storage لجميع العمليات المتعلقة بالوصول إلى التخزين. هذا مطلوب للاتصال بين خدمة CEPH و VNF التي لديها متطلبات للوصول إلى التخزين. ويتم إستخدامه بواسطة وحدة التحكم وعقد الكمبيوتر و CEPH.
يتم تكوين شبكة OSP_Storage_Data على منافذ MLOM مرتبطة على عقد وحدة التحكم وعقد الحوسبة.
يستخدم نظام OpenStack Object Storage هذه الشبكة لمزامنة كائنات البيانات بين عقد النسخ المتماثلة المشاركة في مجموعة وحدات التخزين، والتي يتم تكوينها بين عقد وحدة التحكم-Compute.
يتم تكوين شبكة OSP_Storage_MGMT على منافذ MLOM مرتبطة على عقد وحدة التحكم وحوسبة.
يوضح الرسم التخطيطي كيفية توصيل الشبكات المنطقية تحت السحابة بكل نوع من العقد في مجموعة RSUp.

هناك العديد من الطرق لنشر UnderCloud/Director و Offline REPO في شبكة العميل. يمكن نشر هذه الأجهزة مباشرة على عقدة Bare-metal أو كأجهزة VM تعمل على برنامج hypervisor الخاص بلوحة المفاتيح والفيديو والماوس.
في دليل النشر الحالي، تم تكوين خادم Director UCS لاستضافة برنامج Hypervisor الخاص ب KVM، والذي يسهل إنشاء العديد من الأجهزة الافتراضية. يتم نشر عقدة مدير RHOSP وعقدة إعادة التوجيه دون اتصال كأجهزة افتراضية (VM) على برنامج مراقبة أجهزة KVM hypervisor هذا.
ملاحظة: يجب ملاحظة خطوات تثبيت لوحة المفاتيح والفيديو والماوس (KVM) القياسية من أجل نشر برنامج Hypervisor الخاص بلوحة المفاتيح والفيديو والماوس.
بي آر-بروف : ث0
br-ext : th1
يجب إنشاء هذه الجسور من خلال واجهة المستخدم النصية لإدارة الشبكة (NMTUI) GUI.
# dnf install qemu-kvm libvirt virt-install virt-manager virt-viewer libguestfs-tools

# mkdir /data # mkdir /data/offlineRepos # mkdir /data/isoImages # mkdir /data/qcow2Images # mkdir /data/images # scp -r root@[remote-IP]:/root/rhel-8.4-x86_64-dvd.iso /data/isoImages/
# scp -r root@[remote-IP]:/root/offlineRepos/RHEL8.4 /data/offlineRepos/
# scp -r root@[remote-IP]:/etc/yum.repos.d/offlinedvd.repo /etc/yum.repos.d/
# scp -r root@[remote-IP]:/root/rhel-8.4-x86_64-kvm.qcow2 /data/qcow2Images/
# scp -r root@[remote-IP]:/root/OSREPO_RHEL_84.qcow2 /data/images/
# scp -r root@[remote-IP]:/root/OSREPO_DIRECTOR_84.qcow2 /data/images/
# mount -t iso9660 -o loop /data/isoImages/rhel-8.4-x86_64-dvd.iso /mnt/iso
# cat /etc/yum.repos.d/offlinedvd.repo
[RHEL8.4_Appstream]
name=Red Hat Enterprise Linux 8.4.0 Appstream
mediaid=None
metadata_expire=-1
gpgcheck=0
enabled=1
baseurl=file:///data/offlineRepos/RHEL8.4/AppStream/
[RHEL8.4_BaseOS]
name=Red Hat Enterprise Linux 8.4.0 BaseOS
mediaid=None
metadata_expire=-1
gpgcheck=0
enabled=1
baseurl=file:///data/offlineRepos/RHEL8.4/BaseOS/
# dnf repolist

$ cd /var/lib/libvirt/images/
$ export LIBGUESTFS_BACKEND=direct
$ virt-customize -a /var/lib/libvirt/images/rhel-8.4-x86_64-kvm.qcow2 --root-password password:Cisco@123

$ virt-filesystems --long -h --all -a /var/lib/libvirt/images/rhel-8.4-x86_64-kvm.qcow2

$ qemu-img create -f qcow2 /var/lib/libvirt/images/rhel_84_osprepo.qcow2 500G

$ virt-resize --expand /dev/sda3 /var/lib/libvirt/images/rhel-8.4-x86_64-kvm.qcow2 /var/lib/libvirt/images/rhel_84_osprepo.qcow2

$ qemu-img create -f qcow2 -b /var/lib/libvirt/images/rhel_84_osprepo.qcow2 -F qcow2 /data/images/OSPREPO_RHEL_84.qcow2

$ guestfish -a /data/images/OSPREPO_RHEL_84.qcow2 -i ln-sf /dev/null /etc/systemd/system/cloud-init.service

$ osinfo-query os | grep rhel8

$ virt-install --cpu host --memory 32768 --vcpus 16 --os-variant rhel8.4 --disk path=/data/images/OSPREPO_RHEL_84.qcow2,device=disk,bus=virtio,format=qcow2 --import --noautoconsole --vnc --network bridge:br-ext --name OSPREPO_RHEL_84

$ virsh list --all

# qemu-img create -f qcow2 /var/lib/libvirt/images/rhel_84_ospdirector.qcow2 500G

# virt-resize --expand /dev/sda3 /var/lib/libvirt/images/rhel-8.4-x86_64-kvm.qcow2 /var/lib/libvirt/images/rhel_84_ospdirector.qcow2

# qemu-img create -f qcow2 -b /var/lib/libvirt/images/rhel_84_ospdirector.qcow2 -F qcow2 /data/images/OSPDIRECTOR_RHEL_84.qcow2

# guestfish -a /data/images/OSPDIRECTOR_RHEL_84.qcow2 -i ln-sf /dev/null /etc/systemd/system/cloud-init.service
# virt-install --cpu host --memory 131072 --vcpus 32 --os-variant rhel8.4 --disk path=/data/images/OSPDIRECTOR_RHEL_84.qcow2,device=disk,bus=virtio,format=qcow2 --import --noautoconsole --vnc --network bridge:br-prov --network bridge:br-ext --name OSPDIRECTOR_RHEL_84

# virsh list --all


# virsh list –all
# virsh console <domain-id>

يجب تسجيل خادم Repo مع Redhat CDN ويجب أن يكون لديه مستودع لجميع الحزم المتاحة ل RهوP 16.2 المطلوبة للنشر. يجب تنزيل حزم RHEL RPM وصور حاوية RHOSP إلى REPO VM باستخدام الوكيل.
يتم نشر الإصدار 16.2 من RSU في شبكة العملاء من خلال الأتمتة. يتم إستخدام البرامج النصية غير القابلة لأتمتة النشر عبر السحابة وميزة Overcloud.
الخطوات التي يجب اتباعها قبل بدء النشر الفعلي للسحابة:
# cd /home
# mkdir cisco
# cd /home/cisco
# mkdir automation
# cd /home/cisco/automation
ستتكون لوحة الترجمة من ثلاثة أشكال لدليل المجلد، تسمى كما يلي:
4. تثبيت حزمة sshpass. SSHPASS هي أداة مساعدة سطر أوامر تستخدم لتوفير كلمات مرور إلى SSH دون تفاعل. يستخدم بشكل أساسي في سيناريوهات البرمجة النصية أو التشغيل التلقائي حيث يكون الإدخال اليدوي لكلمة المرور غير ممكن.
# yum install gcc
# yum install make
# tar -xvzf sshpass.tar.gz
# cd sshpass-1.10/
# ./configure
# sudo make install
# sshpass -V
5. تتطلب عملية تثبيت الموجه قيام مستخدم غير جذري بتنفيذ الأوامر. يجب إنشاء مستخدم 'stack' في Director VM مع الوصول الآمن.
# useradd stack
# passwd stack
Disable password requirements for the ‘stack’ user when using sudo.
# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack
# chmod 0440 /etc/sudoers.d/stack
6. انسخ ملف rootCA.crt من خادم Repo إلى Director VM و KVM في المسار المحدد. قم أيضا بتحديث شهادة REPO VM الموجودة في قائمة الضمان.
# /etc/pki/ca-trust/source/anchors
# update ca-trust
7. تحديث تفاصيل اسم المضيف لخادم Repo المحلي في Director VM و KVM في ملف /وما إلى ذلك/الأجهزة المضيفة.
8. في لوحة المفاتيح والفيديو والماوس (KVM) والمخرج (VM)، قم بتركيب حزم إضافية مثل Python وغير قابلة للتطبيق وما إلى ذلك لتنفيذ برامج التشغيل التلقائي غير القابلة.
# dnf install python3 python3-devel ansible httpd -y
# update-alternatives --set python /usr/bin/python3
9. يجب أن تكون الشبكة الفرعية CIMC قابلة للوصول إليها من شبكة الإمداد للمدير من أجل تمكين الإمداد أثناء نشر السحابة. إذا كان مطلوبا، فقم بإضافة مسار ثابت لنفس الإجراء.
# ip -6 route add <CIMC Subnet> via <Provisioning Subnet>
10. في لوحة المفاتيح والفيديو والماوس (KVM) والمخرج VM، قم بإنشاء ملف مضيف تحت مجلد /غير قابل للتشغيل وإضافة تفاصيل محددة للمكدس حسب الحاجة.
[ospd]
# <PODNAME> ansible_host=<OSPD IP> ansible_ssh_user=stack ansible_ssh_pass='<STACKPASSWD>' ansible_ssh_common_args='-o StrictHostKeyChecking=no'
<podname> - Stack Name of the Cloud.
<OSPD IP> - Baremetal OSPD Node IP Address
<STACKPASSWD> - OSPD Node password for ‘stack’ user
11. تأكد من أنه يجب الاحتفاظ بجميع دفاتر التشغيل وملفات الإدخال غير القابلة للاستعمال في Director VM أسفل مجلد /home/stack.
هناك ملف متغير إدخال مكون من تفاصيل شبكة العميل المحددة التي يجب تحضيرها لنشر مجموعة النظراء.
المسار: /home/cisco/automation/ansible/podvars
اسم الملف: <stack-name>_vars.yml
قم بتحديث المعلمات المميزة وفقا لخطة IP الخاصة بالموقع/مستند تصميم منخفض المستوى.
ملاحظة: يتم إستخدام عناوين IP الدخيلة لغرض التمثيل فقط.
# #############################
# XR21 Specific Variables
# #############################
# ===========================
# Common Variables
# ===========================
# UCS hardware type: 'm4/m5/m6'
hardware: m6
# Platform type: 'epc/pcrf'
platform: epc
# RHEL version
rhel: { version: 84, tag: 8.4 }
# Openstack version
osp: { version: 16, major: 2 }
# Container version
container: { tag: 16.2, tools: 3.0 }
# Overcloud stack name
stack_name: ''
# OSPD full hostname
fqdn_hostname: '.epdg.ap.hamb.a6.cloud.com’
# OSPD host login
ospd_host: { ip: '2405:XXXX:089:1054::11', username: 'stack', password: '*******' }
# OSPD cimc login
ospd_cimc: { ip: '2405:XXXX:089:1054::11', username: 'admin', password: '********' }
# CIMC username and pasword must be same across all Overcloud nodes
cimc: { username: 'admin', password: '********', ip_pool: '2405:XXXX:089:1055::/64' }
# Undercloud-Overcloud provision
internal_network: {
ip_type: 'v6',
local_interface: 'eth0',
local_ip: ‘2405:XXXX:089:1041::103',
undercloud_public_host: ‘2405:XXXX:089:1041::105',
undercloud_admin_host: ‘2405:XXXX:089:1041::104',
cidr: ‘2405:XXXX:089:1041::/64',
dhcp_start: ‘2405:XXXX:089:1041::200',
dhcp_end: ‘2405:XXXX:089:1041::299',
gateway: ‘2405:XXXX:089:1041::199',
# nexthop: ‘2405:XXXX:089:1041::1',
inspection_iprange_start: ‘2405:XXXX:089:1041::300',
inspection_iprange_end: ‘2405:XXXX:089:1041::399',
}
# DNS
dns_ips: [ '2405:YYYY:a10:f100::1' ]
dns_search_domains: [ 'cloud.com' ]
# NTP
ntp_ips: [ '2405:YYYY:801:700::afa', '2405:YYYY:801:700::afb' ]
# Deployment type: 'offline/online'
repos: { rhel: 'offline', container: 'offline' }
# Offline details if repos is 'offline'
offline: {
environment: 'v01_00',
deliverymedia: '/home/stack/deliverymedia/'
}
# Satellite details if repos is 'online'
satellite: {
fqdn_name: 'rh-satellite2.mitg-bxb300.cisco.com',
ip: '10.XX.XX.XX',
org: 'MITG',
user: 'admin',
password: '*******',
environment: 'production',
activation_key: 'ak-rhel{{rhel.version}}-osp{{osp.version}}{{osp.major}}',
repos_file: 'rhel{{rhel.version}}osp{{osp.version}}{{osp.major}}.yaml'
}
# Offline container registry details
offline_registry: {
ip: '2405:XXXX:089:1055::100',
name: '. ',
port: '5000',
container_tag: '16.2.6',
user: 'ciscoadmin',
password: '******'
}
# Custom cloud domain details
domain_name: {
domain: '',
cloudshortname: 'nl'
}
# Container images namespace
container_namespace: 'mitg-{{satellite.environment}}-cv-rhel{{rhel.version}}-osp{{osp.version}}{{osp.major}}-rhel{{rhel.version}}-osp{{osp.version}}{{osp.major}}'
# List of cimc IPs
ctrl_cimc_ip:
- 2405:XXXX:YYYY:1036::12
- 2405:XXXX:YYYY:1036::13
- 2405:XXXX:YYYY:1036::14
osdc_cimc_ip:
cmpt_cimc_ip:
- 2405:XXXX:YYYY:1037::17
- 2405:XXXX:YYYY:1038::18
- 2405:XXXX:YYYY:1038::19
- 2405:XXXX:YYYY:1038::20
mgmt_cimc_ip:
- 2405:XXXX:YYYY:1051::15
- 2405:XXXX:YYYY:1051::16
# ===========================
# Hardware Specific Variables
# ===========================
# Isolcpu for cpu pinning
isolcpus: { osdc: '4-31,36-63', cmpt: '2-31,34-63', mgmt: '2-31,34-63' }
# Hugepages in 1G Pages
hugepages: { osdc: 428, cmpt: 448, mgmt: 448 }
# Reserved host memory in MB
reserved_host_memory: { osdc: 84000, cmpt: 64000, mgmt: 64000 }
# Number of VFs per SR-IOV port
sriov_vfs_per_port: 16
# List of SR-IOV ports
sriov_port_list: [ens1f0, ens1f1, ens9f0, ens9f1]
# List of OVS bonding interface
ovs_bond_interface: [eno5, eno6]
# Physical networks
physical_network: [phys_pcie1_0, phys_pcie1_1, phys_pcie2_0, phys_pcie2_1]
# Boot disk size
boot_disk_mb_size: { ctrl: 761985, osdc: 761985, cmpt: 761985, mgmt: 1524925 }
# Boot disk PD slot number
boot_disk_pd_slot: { ctrl: [1,2], osdc: [1,2], cmpt: [1,2], mgmt: [1,2] }
# Boot disk VD slot number
boot_disk_vd_slot: { ctrl: 237, osdc: 235, cmpt: 239, mgmt: 239 }
# Storage backend 'swift' or 'ceph'
storage_backend: 'swift'
# Storage disk size
storage_disk_mb_size: { swift: 761985, ceph: 914573, journal: 0 }
# Storage disk PD slot number
storage_disk_pd_slot: { swift: [6,7], ceph: [3,4,5,6], journal: [0] }
# Storage disk VD slot number
storage_disk_vd_slot: { swift: [238,239], ceph: [236,237,238,239], journal: [0] }
# Firmware version 'yes' or 'no' ???
firmware: { check: 'no', bios_version: '4.2.3c', cimc_version: '4.2(3e)' }
# ===========================
# OSP Specific Variables
# ===========================
# Timezone for overcloud nodes
timezone: 'Asia/Kolkata'
# Overcloud node count to deploy
node_count: { ctrl: 3, osdc: 0, cmpt: 11, mgmt: 2 }
local_network: {
ip_type: 'v6',
tenant_vlan_id: 1045,
tenant_net_cidr: '240f:ppp:rr:1045::/64',
tenant_alloc_pools_start: '240f:ppp:rr:1045::10',
tenant_alloc_pools_end: '240f:ppp:rr:1045:ffff:ffff:ffff:fffe',
storage_vlan_id: 1043,
storage_net_cidr: '240f:ppp:rr:1043::/64',
storage_alloc_pools_start: '240f:ppp:rr:1043::10',
storage_alloc_pools_end: '240f:ppp:rr:1043:ffff:ffff:ffff:fffe',
storage_mgmt_vlan_id: 1044,
storage_mgmt_net_cidr: '240f:ppp:rr:1044::/64',
storage_mgmt_alloc_pools_start: '240f:ppp:rr:1044::10',
storage_mgmt_alloc_pools_end: '240f:ppp:rr:1044:ffff:ffff:ffff:fffe',
internal_api_vlan_id: 1042,
internal_api_net_cidr: '240f:ppp:rr:1042::/64',
internal_api_alloc_pools_start: '240f:ppp:rr:1042::10',
internal_api_alloc_pools_end: '240f:ppp:rr:1042:ffff:ffff:ffff:fffe'
}
# External VLAN and IP configs
external_network: {
ip_type: 'v6',
vlan_id: 1046,
default_route: '2405:XXXX:YYYY:1055::1',
network_cidr: '2405:XXXX:YYYY:1055::/64',
alloc_pool_start: '2405:XXXX:YYYY:1055::100',
alloc_pool_end: '2405:XXXX:YYYY:1055::200',
horizon_ip: '2405:XXXX:YYYY:1055::107'
}
# Neutron mechanism driver 'ovs' or 'ovn'
neutron: {
driver: 'ovs',
dvr: false,
datacenter_vlan_start: 1050,
datacenter_vlan_end: 1070
}
# ===========================
# OS Specific Variables
# ===========================
# RHEL kernel version
kernelversion: '4.18.0-305.88.1.el8_4.x86_64'
# E810 ICE driver
ice_driver: { check: 'yes', version: 1.12.6, intel_aux_version: 1.0.1 }
# ENIC and FNIC verison
nic_version: { enic: '2.3.0.53', fnic: '1.6.0.53' }
# IPMI watchdog timer config
watchdog: { action: enabled, version: '2.0.31-3.el8.x86_64', timer: 250 }
# StorCLI raid management
storcliver: '007.2612.0000.0000-1.noarch'
# ===========================
# Platform Specific Variables
# ===========================
# Buffer pool size based on platform type
innodb_buffer_pool_size: 1610
# ##################################
# END - XR21 Specific Variables
# ##################################
يتم نشر UnderCloud باستخدام نصوص تفاعلية غير قابلة في سبع خطوات. يجب تنفيذ جميع الخطوات من مضيف KVM الذي يعمل كمضيف قفز في هذه الحالة.
| خطوة |
علامة |
الوصف |
بلاي بوك يامل |
| الخطوة 1. |
ملفات الاختيار |
تحقق من دفاتر التشغيل المطلوبة والبرامج النصية و RPM على مدير النظام الأساسي ل OpenStack (OSPD). |
osp16_published_playbooks_verify.yml |
| الخطوة 2. |
جينبودفار |
قم بإنشاء ملفات متغيرة خاصة ب POD مرتبطة بالأجهزة و RHEL وما إلى ذلك، مثل common_vars.yml (الأجهزة والبرامج وتفاصيل الشبكة) وhw_m6_vars.yaml (وحدة المعالجة المركزية (CPU) والذاكرة وصفحات البيانات وأقراص وبطاقة واجهة الشبكة (NIC) وما إلى ذلك) وrhel_84_vars.yml (RHEL، kernel، برنامج تشغيل ICE، إصدار NIC) وpf_esc_vars.yml (تفاصيل وحدة التحكم المرنة في الخدمات (ESC)) وOSP_16_vars الإصدار والمنطقة الزمنية ونوع IP ومعرف الشبكة المحلية الظاهرية (VLAN) وبروتوكول الإنترنت (IP) وتفاصيل النيوترون). |
osp16_generate_pod_specific_vars.yml |
| الخطوة 3. |
نشر مسبق |
تكوين اسم المجال المؤهل بالكامل (FQDN)، وبروتوكول وقت الشبكة (NTP)، وتحديث جميع الحزم على عقدة المدير. |
osp16_pre_undercloud_deploy.yml |
| الخطوة 4. |
أولي ستروبت |
قم بتنفيذ أول إعادة تمهيد لعقدة مدير UnderCloud بعد التكوين السابق وتثبيت الحزمة. |
osp16_undercloud_deploy.yml |
| الخطوة 5. |
نشر ucdeploy |
تثبيت مكدس UnderCloud على المدير |
osp16_undercloud_tuning.yml |
| الخطوة 6. |
كوست |
قم بتكوين إعدادات الحالة C لوحدة المعالجة المركزية BIOS على عقدة الموجه. |
osp16_cstate.yml |
| الخطوة 7. |
وثبة ثانية |
قم بإعادة التمهيد مرة ثانية على مدير الشبكة الداخلية بعد تغييرات BIOS. |
غير متوفر |
الملف الذي يحمل الاسم osp16_auto_undercloud_deploy.yml هو كتاب التشغيل العكسي الرئيسي الذي يمكن تشغيله في تكرار واحد ولكن من المستحسن تنفيذ دفتر التشغيل بشكل تدريجي باستخدام علامات تمييز مختلفة لتسهيل أستكشاف الأخطاء وإصلاحها في حالة حدوث أي مشاكل في النشر.
# cd /home/stack/ansible/
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags= TAG
For Ex –
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags=checkfiles
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags=genpodvars
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags=preucdeploy
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags=firstreboot
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags=ucdeploy
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags=cstate
# ansible-playbook -i hosts osp16_auto_undercloud_deploy.yml -e podname=<> --tags=secondreboot
Note :- Deployment Logs would be generated in “/home/stack/autologs” in Director-VM.
Post-Checks for Verification of Undercloud Deployment.
“stackrc” & “undercloud.conf” file must be generated in /home/stack folder.
# sudo podman ps -a
# source stackrc
# openstack stack list
# openstack stack show <stack-name> --fit
# openstack server list
# openstack network list
# openstack subnet list
يتم نشر ميزة Overcloud باستخدام ثلاث وحدات تحكم كحد أدنى في وضع HA ووحدة حوسبة واحدة. يتم نشر Overcloud باستخدام نصوص تفاعلية غير قابلة في 17 خطوة. يجب تنفيذ جميع الخطوات من Director-VM الذي يعمل كمضيف قفز في هذه الحالة.
| خطوة |
علامة |
الوصف |
بلاي بوك يامل |
| الخطوة 1. |
جينبودفار |
قم بإنشاء ملفات متغيرات POD خاصة ل OverCloud تتعلق بالأجهزة و RHEL وما إلى ذلك، مثل common_vars.yml (الأجهزة والبرامج وتفاصيل الشبكة) وhw_m6_vars.yaml (وحدة المعالجة المركزية (CPU) والذاكرة وصفحات البيانات وأقراص بطاقة واجهة الشبكة (NIC) وما إلى ذلك) وrhel_84_vars.yml (RHEL، kernel، برنامج تشغيل ICE، إصدار NIC) وpf_esc_vars.yml (تفاصيل ESC) وOSP_16_vars.yml (إصدار OSP، المنطقة الزمنية، نوع بروتوكول الإنترنت، معرف الشبكة المحلية الظاهرية (VLAN)، بروتوكول الإنترنت، تفاصيل النيوترون). |
osp16_generate_pod_specific_vars.yml |
| الخطوة 2. |
جينينساك |
قم بإنشاء ملف JSON من /var/common_vars.yml الذي تم إنشاؤه في الخطوة السابقة. يتطلب المدير قالب تعريف عقدة، يتم إنشاؤه يدويا. يستخدم هذا الملف instackenv.json تنسيق JSON ويحتوي على كافة تفاصيل إدارة الأجهزة والطاقة للعقد. تحقق هذه الخطوة أيضا من تكوين الأجهزة على خادم UCS قبل إنشاء الملف. |
osp16_generate_instackenv.yml |
| الخطوة 3. |
cimcvd |
قم بتكوين إعداد CIMC والأقراص الظاهرية (VDs) على كل خادم مما يشير إلى common_vars.yml، وhw_m6_vars.yaml، وrhel_84_vars.yml. |
osp16_cimc_vd_configure.yml |
| الخطوة 4. |
النشر المسبق |
تقوم هذه الخطوة بتنفيذ جميع المتطلبات الأساسية لنشر OverCloud. وهو يضبط FQDN، NTP، ويحدث كل الحزم، ويدفع الصورة إلى مسار للنشر. |
osp16_pre_overcloud_deploy.yml |
| الخطوة 5 |
مستوردات |
في هذه الخطوة، يتم عرض وحدة المعالجة المركزية (CPU) الخاصة بالخادم والذاكرة وبطاقة واجهة الشبكة (NIC) مع الواجهة والمنافذ الموجودة على محولات الشبكة. يتم إجراء ميزة التأمل على محولات الشبكة المتصلة لجميع وحدات التحكم والحوسبة. |
osp16_import_ironic_node.yml |
| الخطوة 6. |
ألواح رقيقة |
إنشاء ملفات قوالب مخصصة لوحدات التحكم والحسابات. في القالب المخصص، قم بتعريف أدوار وحدة التحكم والحساب لكافة الخدمات التي تعمل عليها. كما أنه يعمل على تقوية النظام من خلال تطبيق الشهادات والمسارات وما إلى ذلك. |
osp16_generate_custom_templates.yml |
| الخطوة 7. |
نشر |
في هذه الخطوة، يتم نشر OpenStack Overcloud. تشغيل deploy.sh الموفر من قبل Red Hat لنشر RSUp. |
osp16_overcloud_deploy.yml |
| الخطوة 8 |
جرد جيني |
في هذه الخطوة، يتم إنشاء ملف قائمة جرد لاستخدامه من قبل Ansible حيث يتم تخزين IP للإمداد و IPMI (CIMC) IP، وبيانات الاعتماد وتخطيطها باستخدام وحدة التحكم والحوسبة للتشغيل التلقائي لتسجيل الدخول في النظام وتنفيذ الخطوات الإضافية. |
osp16_build_inventory_v3.py |
| الخطوة 9. |
مقدم |
قم بتكوين OverCloud Offline REPO في الملف /etc/yum.repo.d/offline.repo النقطة إلى repo server عبر الشبكة الخارجية. |
osp16_config_offline_repo.yml |
| الخطوة 10. |
مبارزة السلاح |
قم بتكوين السياج على جميع عقدة وحدة التحكم من خلال التقاط العقدة الأخرى في الرأس (تقنية سياج في مجموعات HA) (Stonith). |
osp16_config_fencing.yml |
| الخطوة 11. |
ذاكرة التخزين المؤقت |
قم بتكوين إعداد ذاكرة التخزين المؤقت RAID لجميع وحدات التحكم، كما تقوم أجهزة الكمبيوتر بتكوين إعدادات تخزين SWIFT. |
osp16_raid_cache_tuning.yml |
| الخطوة 12. |
دنفوبيدات |
قم بتشغيل تحديثات DNF لجميع الحزم على كافة العقد. |
dnf_update_all_packages.yml |
| الخطوة 13. |
سيتيبلينك |
في هذه الخطوة، يتم تمكين التحكم في وضع الثقة لمنافذ SR-IOV لحركة مرور بيانات الحزم المتطورة (EPDG) الداخلية وحركة مرور البيانات. ويتوفر دعم منافذ SR-IOV في النيوترون، وهو يسمح للأجهزة الافتراضية بالوصول إلى الشبكة عبر الوظائف الظاهرية SR-IOV. |
osp16_setIpLink.yml |
| الخطوة 14. |
مراقبو |
في هذه الخطوة، يتم تكوين إعداد IPMI على عقدة الموجه لمهمة الإدارة على كل الملقمات الخاصة بالاتصال خارج النطاق. |
osp16_config_ipmi_watchdog.yml |
| الخطوة 15. |
إيكديريفر |
قم بتحديث بطاقات برنامج تشغيل الجليد E810 لمكونات الاتصال البيني للأجهزة الطرفية (PCI) إلى الإصدار 1. 12. 6 ل EPDG لاستخدام منافذ بطاقة واجهة الشبكة من Intel ك SR-IOV. |
osp16_ice_driver_install.yml |
| الخطوة 16. |
إعادة التشغيل |
قم بإعادة تمهيد جميع عقد السحابة بعد تنفيذ الخطوات السابقة. |
osp16_reboot_overcloud_hosts.yml |
| الخطوة 17. |
دقفيركسون |
التحقق من تكوين نشر RSUp وصحته. |
osp16_rhosp_verify.yml |
لتوفير عقد OverCloud، تستخدم UnderCloud 'overcloud-hardened-uefi-full.qcow2'. قبل بدء نشر OverCloud، يجب تخزين الصورة في مسار محدد في UnderCloud/Director.
انسخ ملف OverCloud QCOW2 من موقع بعيد.
# su - stack
# cd /home/stack
# mkdir deliverymedia
# cd deliverymedia
### Copy overcloud-hardened-uefi-full.qcow2 to deliverymedia ###
# scp overcloud-hardened-uefi-full.qcow2 stack@[Director-IP]:/home/stack/deliverymedia
[stack@[stack@ Undercloud ~]$ cd /home/stack/ansible/
[stack@[stack@ Undercloud ansible]$ ansible-playbook osp16_auto_overcloud_deploy.yml -e podname=POD_NAME –tags= TAG
For Ex –
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=genpodvars
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=geninstack
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=cimcvd
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=preocdeploy
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=importnodes
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=gentemplates
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=ocdeploy
#### Push & Update the rootCA.pem in all the Controllers & Computes ####
# for node in $(nova list | grep -i active | awk '{print $12}' | awk -F "=" '{print $2}' ); do scp -o StrictHostKeyChecking=no rootCA.pem heat-admin@[$node]:/home/heat-admin; ssh heat-admin@$node " sudo mv /home/heat-admin/rootCA.pem /etc/pki/ca-trust/source/anchors/ ; sudo chown root:root /etc/pki/ca-trust/source/anchors/rootCA.pem ; sudo update-ca-trust"; echo "" ; done
#### Append the Director Entry in "/etc/hosts" file ########
# for node in $(nova list | grep -i active | awk '{print $12}' | awk -F "=" '{print $2}' ); do ssh -o StrictHostKeyChecking=no heat-admin@$node "hostname; echo '2405:200:1412:9999::1:217 gujrjmngdcurp101co.qalabs.com gujrjmngdcurp101co' | sudo tee -a /etc/hosts" echo "" ; done
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=geninventory
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=offlinerepo
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=fencing
### In case of Fencing Failures, please check the reachability of CIMC Subnet from Controllers ######
## If CIMC Subnet is not pinging, Do add the static Route ###
# ip -6 route add <CIMC Subnet> via <Provisioning Subnet>
Ex: ip -6 route add 2405:XXXX:YYY:9999::/64 via 2405:XXXX:YYY:9999:1
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=raidcache
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=dnfupdate
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=setiplink
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=watchdog
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=icedriver
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=reboot
# ansible-playbook -i hosts osp16_auto_overcloud_deploy.yml -e podname=<> --tags=verifyrhosp
لمراقبة سجلات النشر، أستخدم أحدث ملف سجل.
# tail -F </home/stack/autologs/osp16_auto_overcloud_deploy_*.log>
تأكد من أن جميع الخطوات ال 17 قد مرت.
فشل عمليات الفحص => يجب أن يكون العدد 00.
السجلات => /home/stack/autologs/osp16_rhosp_verify.yml _20200703T042257.log
#===============================================================================================================
# الخطوة | علامة | الوصف | كتاب التشغيل
#===============================================================================================================
# الخطوة 1 | جينبودافار | إنشاء ملفات متغيرة خاصة ب POD | osp16_generate_pod_specific_vars.yml -e podname=
# الخطوة 2 | جينينساك | إنشاء ملف JSON من Instackenv | osp16_generate_instackenv.yml -e podname=
# الخطوة 3 | cimcvd | تكوين الأجهزة الافتراضية الخاصة بوحدة التحكم CIMC | osp16_cimc_vd_configure.yml
# الخطوة 4 | النشر المسبق | تكوين النشر عبر السحابة مسبقا | osp16_pre_overcloud_deploy.yml
# الخطوة 5 | الواردات | إستيراد عقد OpenStack Baremetal الساخرة | osp16_import_ironic_node.yml
# الخطوة 6 | اللوحات اللطيفة | إنشاء قوالب مخصصة | osp16_generate_custom_templates.yml
# الخطوة 7 | التوزيع | نشر OpenStack Overcloud | osp16_overcloud_deploy.yml
# الخطوة 8 | المخزون الجيني | إنشاء ملف المخزون | osp16_build_inventory_v3.py —ipmipass
# الخطوة 9 | مقدم العرض | تكوين Overcloud Offline Repo من ملف tar غير المتصل | osp16_config_offline_repo.yml
# الخطوة 10 | مبارزة السلاح | نشر بروتوكول MOP قبل إعادة التمهيد - تكوين السياجات | osp16_config_fencing.yml
# الخطوة 11 | ذاكرة التخزين المؤقت | نشر بروتوكول MOP قبل إعادة التمهيد - ذاكرة التخزين المؤقت ل RAID وضبط العلاقات العامة | osp16_raid_cache_tuning.yml
# الخطوة 12 | DNFUPDATE | نشر MOP قبل إعادة التمهيد - حزم تحديث DNF | dnf_update_all_packages.yml
# الخطوة 13 | إرتباط الفرز | نشر بروتوكول MOP قبل إعادة التمهيد - تعيين الثقة في إرتباط IP لبروتوكول VF على | osp16_setIpLink.yml
# الخطوة 14 | مراقب | نشر بروتوكول MOP قبل إعادة التمهيد - تكوين مراقبة IPMI | osp16_config_ipmi_watchdog.yml
# الخطوة 15 | النهر الجليدي | نشر بروتوكول MOP قبل إعادة التمهيد - تحديث برنامج تشغيل النظام الأساسي E810 | osp16_ice_driver_install.yml
# الخطوة 16 | إعادة تشغيل | إعادة تشغيل جميع العقد السحابية | osp16_reboot_overcloud_hosts.yml
# الخطوة 17 | التحقق من الصحة | التحقق من تكوين بيانات RHOSP وصحتها | osp16_rhosp_verify.yml -e podname=
#===============================================================================================================
إمكانية الوصول إلى جميع البيئات المضيفة
====================================================================================================================================================================================================================================================================================================================================================
عمليات الفحص التي تم إجراؤها => 17
التحققات التي تم تمريرها => 17
فشلت عمليات الفحص => 00
====================================================================================================================================================================================================================================================================================================================================================
الحالة العامة => تم تمريرها !!
====================================================================================================================================================================================================================================================================================================================================================
نشر نشر OverCloud بنجاح، تأكد من إمكانية الوصول إلى لوحة معلومات Horizon.
لعنوان URL للوحة معلومات الأفق، أستخدم 'OS_AUTH URL' من 'Overcloudrc'.

لوحة معلومات الأفق:

### Check OpenStack Services Status ###
# openstack compute service list
# openstack network agent list
# openstack volume service list
# openstack orchestration service list
# openstack identity service list
# openstack endpoint list
# openstack server list
# openstack image list
يوفر دليل النشر RSUp 16.2 إرشادات شاملة خطوة بخطوة لنشر بيئة سحابة OpenStack القابلة للتطوير وجاهزة للإنتاج باستخدام الأدوات والمنهجيات التي أثبتت كفاءتها بواسطة Red Hat. تم تصميم هذا الدليل خصيصا لمسؤولي النظام ومهندسي الشبكات، كما يركز على نشر RSUp 16.2 باستخدام مدير OpenStack، والذي يعتمد على ThreeO (OpenStack على OpenStack).
ويغطي الدليل جميع مراحل النشر الحرجة، بما في ذلك ما يلي:
ويعد هذا الدليل ضروريا للفرق التي تبحث عن منصة سحابية موثوقة من فئة المؤسسات مع دمج النظام الإيكولوجي ودعم نظام Red Hat.
| المراجعة | تاريخ النشر | التعليقات |
|---|---|---|
1.0 |
27-Apr-2026
|
الإصدار الأولي |