پیاده سازی Openstack به شیوه tripleO
TripleO پروژه ای است با هدف نصب، ارتقا و بهره برداری از OpenStack با استفاده از امکانات ابری خود OpenStack به عنوان پایه و اساس - بنا بر سرویس های Nova، Ironic، Neutron و Heat برای خودکارسازی مدیریت ابر در مقیاس مرکز داده.
TripleO را می توان در baremetal و همچنین در محیط های مجازی استفاده کرد. این بخش حاوی دستورالعمل هایی در مورد نحوه تنظیم محیط پیاده سازی است.
TripleO را می توان به عنوان یک محیط مستقل با کلیه سرویس های نصب شده بر روی یک ماشین مجازی یا سرور فیزیکی استفاده کرد.
Deployment Workflow Overview¶
- Environment Preparation
Prepare your environment (baremetal or virtual)
Install undercloud - Undercloud Data Preparation
Create images to establish the overcloud
Register hardware nodes with undercloud
Introspect hardware
Create flavors (node profiles) - Deployment Planning
Configure overcloud roles
Assign flavor (node profile to match desired hardware specs)
Assign image (provisioning image)
Size the role (how many instances to deploy)
Configure service parameters
Create a Heat template describing the overcloud (auto-generated from above) - Deployment
Use Heat to deploy your template
Heat will use Nova to identify and reserve the appropriate nodes
Nova will use Ironic to startup nodes and install the correct images - Per-node Setup
When each node of the overcloud starts it will gather its configuration metadata from Heat Template configuration files
Hiera files are distributed across all nodes and Heat applies puppet manifests to configure the services on the nodes
Puppet 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 Initialization
Services on nodes of the overcloud are registered with Keystone
ماشینی که روی آن deploy می شود باید حداقل مشخصات زیر را داشته باشد:
- 4 core CPU
- 8 GB memory
- 60 GB free disk space
TripleO را می توان در یک محیط مجازی با استفاده از ماشین های مجازی به جای baremetal واقعی استفاده کرد. با این حال، هنوز یک سرور baremetal برای عمل به عنوان میزبان ماشین های مجازی compute مورد نیاز است.
پروژه tripleo-quickstart برای ایجاد محیط های مجازی برای استفاده با TripleO استفاده می شود. مستندات این روش در لینک زیر قابل مشاهده است:
{+}https://docs.openstack.org/tripleo-quickstart/<br/>
TripleO را می توان در یک محیط baremetal استفاده کرد. یک دستگاه برای (مشابه Deployment) Undercloud استفاده می شود، بقیه برای Overcloud استفاده می شود.
حداقل تجهیزات مورد نیاز برای پیاده سازی:
برای استقرار کوچکترین مقایس با TripleO، به ماشینهای bare metal زیر نیاز دارید:
- 1 Undercloud
- 1 Overcloud Controller
- 1 Overcloud Compute
برای هر نقش اضافی Overcloud، مانند Block Storage یا Object Storage، به یک دستگاه baremetal اضافی نیاز دارید.
سرور های baremetal باید دارای حداقل مشخصات زیر باشند:
- 8 core CPU
- 12 GB memory
- 60 GB free disk space
برای ماشین های Undercloud مقدار بیشتری رم و هارد مورد نیاز است و بهتر است که از هارد های SSD استفاده شود.
در نظر داشته باشید در ماشین آندرکلاود برای ذخیره سازی ایمیج "overcloud-full" هارد بیشتری مورد نیاز است.
نکته مهم:
TripleO در حال حاضر صرفا از سیستم عامل های زیر پشتیبانی میکند:
- RHEL
- CentOS
آماده سازی محیط 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+?<br/>
دپلوی کردن سرور های OverCloud:
{+}https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/15/html/hyperconverged_infrastructure_guide/deploy-hci-overcloud+?<br/>
توضیحات کوتاه و خلاصه در خصوص نحوه پیاده سازی Undercloud و Overcloud (البته این مقاله و اکثر مقالات سایت های خارجی در خصوص TripleO بجز سایت خود اپن استک مربوط به قبل از سال 2019 بوده که نشان از محبوبیت پایین این روش پیاده سازی نسبت به سایر روش ها دارد)
{+}https://www.linuxtechi.com/install-tripleo-undercloud-centos-7/+?<br/>
{+}https://www.linuxtechi.com/deploy-tripleo-overcloud-controller-computes-centos-7/+?
پیاده سازی TripleO به شیوه QuickStart بر روی یک سرور
با استفاده از این روش میتوانیم بر روی یک سرور مجازی یا اختصاصی با سیستم عامل Centos 8 و حداقل منابع زیر اپن استک را بصورت کامل به روش tripleO دپلوی نماییم:
حداقل 24 گیگابایت رم
حداقل 150 گیگابایت هارد
حداقل 12 هسته سی پی یو
مراحلی که برای دپلوی انجام می شود:
- Provision a libvirt environment
- Install the Undercloud
- Prepare for the Overcloud deployment
- Deploy the Overcloud
- Validate the Overcloud is functional
ایجاد ssh-key و پس لس کردن ssh به لوکال هاست جهت اجرای انسیبل پلی بوک ها:
ssh-keygen
ssh-copy-id 127.0.0.2
ssh root@127.0.0.2
کلون کردن پروژه tripleO-quickstart و نصب پیش نیاز های آن:
yum update
yum upgrade
reboot
yum install git
gitclone https://github.com/openstack/tripleo-quickstart
cd tripleo-quickstart
bash quickstart.sh --install-deps
کلیه این مراحل توسط اسکریپت quickstart و انسیبل انجام می شود.
توجه داشته باشید کلیه مراحل باید بدون خطا اجرا شود در غیر اینصورت مراحل بعدی نیز با خطا مواجه خواهد شد.
فراهم کردن محیط LIBVIRT:
export LIBGUESTFS_BACKEND_SETTINGS=network_bridge=virbr0
bash 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 preparation
- container preparation
- importing Overcloud images
- ironic introspection of the Overcloud nodes
- creating OpenStack flavors for profile matching the Overcloud nodes.
- network configuration
- SSL configuration
bash 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 stack
virsh 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 UnderCloud
ssh -F$HOME/.quickstart/ssh.config.ansible undercloud
# View Overcloud Credentials
cat 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 را نصب کرده و یک پراکسی با مشخصات زیر در آن ایجاد کنیم:
سپس این پراکسی را فعال میکنیم و با آدرس زیر میتوانیم وارد داشبورد اپن استک شویم:
موفق و پیروز باشید.
مطلبی دیگر در همین موضوع
نوشتن جستجوی پیشرفته در لاراول 5
مطلبی دیگر در همین موضوع
چه کسانی باید برنامه نویسی رو انتخاب کنند ؟
بر اساس علایق شما
نیازی که دیده نمیشه