پیاده سازی Openstack به شیوه tripleO

TripleO پروژه ای است با هدف نصب، ارتقا و بهره برداری از OpenStack با استفاده از امکانات ابری خود OpenStack به عنوان پایه و اساس - بنا بر سرویس های Nova، Ironic، Neutron و Heat برای خودکارسازی مدیریت ابر در مقیاس مرکز داده.TripleO را می توان در baremetal و همچنین در محیط های مجازی استفاده کرد. این بخش حاوی دستورالعمل هایی در مورد نحوه تنظیم محیط پیاده سازی است.TripleO را می توان به عنوان یک محیط مستقل با کلیه سرویس های نصب شده بر روی یک ماشین مجازی یا سرور فیزیکی استفاده کرد.Deployment Workflow Overview¶Environment PreparationPrepare your environment (baremetal or virtual)Install undercloudUndercloud Data PreparationCreate images to establish the overcloudRegister hardware nodes with undercloudIntrospect hardwareCreate flavors (node profiles)Deployment PlanningConfigure overcloud rolesAssign flavor (node profile to match desired hardware specs)Assign image (provisioning image)Size the role (how many instances to deploy)Configure service parametersCreate a Heat template describing the overcloud (auto-generated from above)DeploymentUse Heat to deploy your templateHeat will use Nova to identify and reserve the appropriate nodesNova will use Ironic to startup nodes and install the correct imagesPer-node SetupWhen each node of the overcloud starts it will gather its configuration metadata from Heat Template configuration filesHiera files are distributed across all nodes and Heat applies puppet manifests to configure the services on the nodesPuppet runs in multiple steps, so that after each step there can be tests triggered to check progress of the deployment and allow easier debugging.Overcloud InitializationServices on nodes of the overcloud are registered with Keystoneماشینی که روی آن deploy می شود باید حداقل مشخصات زیر را داشته باشد:4 core CPU8 GB memory60 GB free disk spaceTripleO را می توان در یک محیط مجازی با استفاده از ماشین های مجازی به جای baremetal واقعی استفاده کرد. با این حال، هنوز یک سرور baremetal برای عمل به عنوان میزبان ماشین های مجازی compute مورد نیاز است.پروژه tripleo-quickstart برای ایجاد محیط های مجازی برای استفاده با TripleO استفاده می شود. مستندات این روش در لینک زیر قابل مشاهده است:{+}https://docs.openstack.org/tripleo-quickstart/&amp;amp;lt;br/&amp;amp;gt;TripleO را می توان در یک محیط baremetal استفاده کرد. یک دستگاه برای (مشابه Deployment) Undercloud استفاده می شود، بقیه برای Overcloud استفاده می شود.حداقل تجهیزات مورد نیاز برای پیاده سازی:برای استقرار کوچکترین مقایس با TripleO، به ماشین‌های bare metal زیر نیاز دارید:1 Undercloud1 Overcloud Controller1 Overcloud Computeبرای هر نقش اضافی Overcloud، مانند Block Storage یا Object Storage، به یک دستگاه baremetal اضافی نیاز دارید.سرور های baremetal باید دارای حداقل مشخصات زیر باشند:8 core CPU12 GB memory60 GB free disk spaceبرای ماشین های Undercloud مقدار بیشتری رم و هارد مورد نیاز است و بهتر است که از هارد های SSD استفاده شود.در نظر داشته باشید در ماشین آندرکلاود برای ذخیره سازی ایمیج "overcloud-full" هارد بیشتری مورد نیاز است.نکته مهم:TripleO در حال حاضر صرفا از سیستم عامل های زیر پشتیبانی میکند:RHELCentOSآماده سازی محیط BareMetalشبکهگره های overcloud از ماشین undercloud دپلوی خواهند شد و بنابراین ماشین ها باید تنظیمات شبکه خود را اصلاح کنند تا امکان بوت شدن PXE نود های overcloud با استفاده از ماشین undercloud فراهم شود. به این ترتیب، تنظیمات زیر مورد نیاز است:همه ماشین‌های overcloud در راه‌اندازی باید از IPMI پشتیبانی کنند.یک شبکه management برای راه اندازی کلیه ماشین های overcloud. یک کارت شبکه از هر ماشین باید در همان broadcast domain شبکه provisioning باشد. در محیط آزمایش شده، این نیاز به راه اندازی یک VLAN جدید روی سوئیچ خواهد داشت. توجه داشته باشید که باید از یک کارت شبکه یکسان در هر یک از ماشین های overcloud استفاده کنید (به عنوان مثال: از کارت شبکه دوم در هر ماشین overcloud استفاده کنید). این به این دلیل است که در حین نصب باید به آن کارت شبکه با استفاده از یک نام واحد در همه ماشین‌های overcloud اشاره کنیم، به عنوان مثال. em2کارت شبکه شبکه provisioning نباید همان کارت شبکه ای باشد که برای اتصال از راه دور به ماشین undercloud استفاده می کنید. در طول نصب undercloud، یک بریج openvswitch برای neutron ایجاد می شود و کارت شبکه provisioning به بریج openvswitch متصل می شود. به این ترتیب، اگر از کارت شبکه provisioning نیز برای اتصال از راه دور به ماشین undercloud استفاده شود، اتصال از بین می رود.ماشین‌های overcloud می‌توانند PXE را از کارت شبکه ای که در VLAN پرایوت است بوت کنند. در محیط آزمایش شده، این امر مستلزم غیرفعال کردن راه‌اندازی شبکه در بایوس برای همه کارت شبکه هایی به غیر از کارتی است که می‌خواهیم بوت کنیم و سپس اطمینان حاصل کنیم که کارت شبکه انتخابی در بالای لیست الویت بوت قرار دارد (قبل از هارد دیسک محلی و CD/). درایوهای DVD).برای هر ماشین Overcloud موارد زیر نیاز است:مک آدرس کارت شبکه ای که از آن PXE BOOT بر روی شبکه provisioning استفاده می شود و مشخصات اتصال به IPMI. IP address of the IPMI NIC, IPMI username and password)دستورات مورد نیاز برای ستاپ ماشین undercloud در لینک زیر آمده است:{+}https://docs.openstack.org/project-deploy-guide/tripleo-docs/wallaby/environments/baremetal.html#setting-up-the-undercloud-machine+?&amp;amp;lt;br/&amp;amp;gt;دپلوی کردن سرور های OverCloud:{+}https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/15/html/hyperconverged_infrastructure_guide/deploy-hci-overcloud+?&amp;amp;lt;br/&amp;amp;gt;توضیحات کوتاه و خلاصه در خصوص نحوه پیاده سازی Undercloud و Overcloud (البته این مقاله و اکثر مقالات سایت های خارجی در خصوص TripleO بجز سایت خود اپن استک مربوط به قبل از سال 2019 بوده که نشان از محبوبیت پایین این روش پیاده سازی نسبت به سایر روش ها دارد){+}https://www.linuxtechi.com/install-tripleo-undercloud-centos-7/+?&amp;amp;lt;br/&amp;amp;gt;{+}https://www.linuxtechi.com/deploy-tripleo-overcloud-controller-computes-centos-7/+?پیاده سازی TripleO به شیوه QuickStart بر روی یک سروربا استفاده از این روش میتوانیم بر روی یک سرور مجازی یا اختصاصی با سیستم عامل Centos 8 و حداقل منابع زیر اپن استک را بصورت کامل به روش tripleO دپلوی نماییم:حداقل 24 گیگابایت رمحداقل 150 گیگابایت هاردحداقل 12 هسته سی پی یومراحلی که برای دپلوی انجام می شود:Provision a libvirt environmentInstall the UndercloudPrepare for the Overcloud deploymentDeploy the OvercloudValidate the Overcloud is functionalایجاد ssh-key و پس لس کردن ssh به لوکال هاست جهت اجرای انسیبل پلی بوک ها:ssh-keygenssh-copy-id 127.0.0.2ssh root@127.0.0.2کلون کردن پروژه tripleO-quickstart و نصب پیش نیاز های آن:yum updateyum upgraderebootyum install gitgitclone https://github.com/openstack/tripleo-quickstartcd tripleo-quickstartbash quickstart.sh --install-depsکلیه این مراحل توسط اسکریپت quickstart و انسیبل انجام می شود.توجه داشته باشید کلیه مراحل باید بدون خطا اجرا شود در غیر اینصورت مراحل بعدی نیز با خطا مواجه خواهد شد.فراهم کردن محیط LIBVIRT:export LIBGUESTFS_BACKEND_SETTINGS=network_bridge=virbr0bash quickstart.sh -R master --no-clone --tags all \--nodes config/nodes/1ctlr_1comp.yml -p quickstart.yml 127.0.0.2بررسی انجام شدن صحیح مرحله قبل: (این دستور ایجاد شدن سرور undercloud در محیط virsh را بررسی میکند و به آن ssh میزند.)ssh -F ~/.quickstart/ssh.config.ansible undercloudنصب UnderCloud:bash quickstart.sh -R master --no-clone --tags all --nodes config/nodes/1ctlr_1comp.yml \-I --teardown none -p quickstart-extras-undercloud.yml 127.0.0.2آماده سازی TripleO Overcloud برای دپلویمنت که شامل مراحل زیر است:configuration preparationcontainer preparationimporting Overcloud imagesironic introspection of the Overcloud nodescreating OpenStack flavors for profile matching the Overcloud nodes.network configurationSSL configurationbash quickstart.sh -R master --no-clone --tags all --nodes config/nodes/1ctlr_1comp.yml \-I --teardown none -p quickstart-extras-overcloud-prep.yml 127.0.0.2دپلوی کردن TripleO Overcloud :bash quickstart.sh -R master --no-clone --tags all --nodes config/nodes/1ctlr_1comp.yml \-I --teardown none -p quickstart-extras-overcloud.yml 127.0.0.2چک کردن قابل استفاده بودن overcloud:bash quickstart.sh -R master --no-clone --tags all --nodes config/nodes/1ctlr_1comp.yml \-I --teardown none -p quickstart-extras-validate.yml 127.0.0.2پس از طی کردن کلیه مراحل بدون خطا اپن استک دپلوی خواهد شد و آماده استفاده خواهد بود.دستورات کاربردی جهت مدیریت Openstack به شیوه ی tripleO-quickstartورود به یوزر stack در لینوکس سرور و مشاهده وضعیت ماشین های ایجاد شده :sudo su stackvirsh list --allدسترسی به ssh سرور undercloud از طریق سرور اصلی:ssh -F$HOME/.quickstart/ssh.config.ansible undercloudمشاهده سرویس های undercloud:[stack@undercloud ~]$ . stackrc[stack@undercloud ~]$ heat stack-list+----------...+------------+-----------------+---------------------+--------------+| id ...| stack_name | stack_status | creation_time | updated_time |+----------...+------------+-----------------+---------------------+--------------+| 988ad9c3-...| overcloud | CREATE_COMPLETE | 2016-03-21T14:32:21 | None |+----------...+------------+-----------------+---------------------+--------------+سورس کردن overcloudrc و ارتباط با آن:[stack@undercloud ~]$ . overcloudrc[stack@undercloud ~]$ nova service-list+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | Forced down |+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+| 787c92eb-4168-4cba-b490-9722a0145cd5 | nova-scheduler | overcloud-controller-0.localdomain | internal | enabled | up | 2022-01-15T08:43:44.000000 | - | False || 92fa1209-242e-4d89-b780-d77564d6dbe6 | nova-conductor | overcloud-controller-0.localdomain | internal | enabled | up | 2022-01-15T08:43:46.000000 | - | False || a93d38f4-abb4-4853-ad13-0a3eb69547df | nova-compute | overcloud-compute-0.localdomain | nova | enabled | up | 2022-01-15T08:43:41.000000 | - | False |+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+[stack@undercloud ~]$نام کاربری و رمز عبور admin اپن استک را از کجا پیدا کنم؟# SSH TO UnderCloudssh -F$HOME/.quickstart/ssh.config.ansible undercloud# View Overcloud Credentialscat overcloudrcدسترسی به سرور های overcloud (کنترلر و کامپیوت)ssh -F$HOME/.quickstart/ssh.config.ansible overcloud-controller-0چگونه به داشبورد اپن استک (horizon) متصل شوم؟با توجه به این که سرویس های اپن استک مانند horizon در سرور controler ران شده است و این سرور فاقد آی پی پابلیک می باشد ما امکان مشاهده آن را بصورت پیشفرض نداریم. بنابر این نیاز است تا برای دسترسی به داشبورد از Port Forwarding در SSH استفاده کنیم.ابتدا این دستور را بر روی سرور اصلی که آی پی پابلیک دارد ران میکنیم:با این دستور پورت 8080 این سرور به پورت 80 سرور overcloud که horizon بر روی آن ران می باشد و پورت 8443 به 443 و ... متصل میشود.ssh -F$HOME/.quickstart/ssh.config.ansible -L 8080:overcloud.localdomain:80 -L 8443:overcloud.localdomain:443 -L 13080:overcloud.localdomain:13080 undercloudسپس نیاز داریم که یک SSH Proxy بر روی سرور اصلی که آی پی پابلیک دارد ران کنیم و سپس از سیستم خودمان به این پراکسی متصل شویم:ssh -D 2122 -fCqN root@XXX.XXX.XXX.XXX (Main Server Valid IP Usedfor ssh)پس از این نیاز داریم تا بر روی مرورگر خودمان (ترجیحا فایرفاکس) افزونه FoxyProxy را نصب کرده و یک پراکسی با مشخصات زیر در آن ایجاد کنیم:سپس این پراکسی را فعال میکنیم و با آدرس زیر میتوانیم وارد داشبورد اپن استک شویم:https://localhost:8443/موفق و پیروز باشید.