نصب openstack با devstack

خوش اومدید به آموزش نصب openstack با devstack از مجموعه آموزشی ابرآس
آیا می خوایین یک سرور Openstack را برای توسعه و آزمایش در اوبونتو های 22.04/20.04/18.04 پیاده سازی کنید؟ این راهنما برای توسعه دهندگان, SysAdmin و یا علاقه مندان به زیرساخت های ابری مناسب است که به دنبال یک Openstack Deployment ساده برای یادگیری و توسعه هستند. DevStack مجموعهای از اسکریپتها است که به شما این امکان را میدهد یک محیط OpenStack کامل را از git master، در ماشین مجازی، سیستم شخصی یا لپتاپ خود پیاده سازی کنید.
راهنمای مقاله
Toggleآشنایی با Openstack
OpenStack یک پلتفرم نرم افزاری رایگان و اوپن سورس است که زیرساخت پردازش ابری را فراهم می کند. مجموعه ای از خدمات را برای ساخت و مدیریت محیط های ابری از جمله پردازش، ذخیره سازی، شبکه و مدیریت هویت ارائه می دهد.
آشنایی با Devstack
Devstack ابزاری است که نصب OpenStack را روی یک سرور امکان پذیر می کند. در این آموزش، شما را از طریق فرآیند نصب یک سرور OpenStack با استفاده از Devstack در اوبونتو 22.04 راهنمایی می کنیم.
نصب Openstack با Devstack
DevStack تغییرات زیادی در سیستم شما ایجاد می کند، از سیستمی که قبلاً در حال استفاده است استفاده نکنید. برای جلوگیری از هر گونه مشکل در هنگام پیکربندی، بهتر است از یک سیستم که سیستم عاملش به تازگی نصب شده استفاده کنید.
نیازمندی ها
قبل از ادامه نصب، باید مطمئن شوید که سیستم شما شرایط زیر را برآورده می کند:
- اوبونتو 22.04
- حداقل 8 گیگابایت رم
- حداقل پردازنده (2vCPU یا بیشتر)
- کاربر Sudo
- حداقل 50 گیگابایت فضای دیسک
- اتصال به اینترنت سریع و پایدار
نکته آموزشی
برای نصب openstack با devstack می تونید زیرساخت تستی خودتون رو با کمک ابزار vagrant راه اندازی کنید.
راه اندازی سریع
برای راه اندازی سریع ماشین مجازی اوپن استک خودتون می تونید از دستورالعمل های vagrant استفاده کنید. اما قبل از شروع فرایند راه اندازی ماشین مجازی نیازه دستورات زیر رو داخل فایلی بنام Vagrantfile ذخیره کنید.
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.define "devstack" do |openstacknode| openstacknode.vm.box = "generic/ubuntu2004" openstacknode.vm.hostname = "openstack.local" openstacknode.vm.network "private_network", ip: "192.168.56.56" ### Virtual Box Provider ### ### vagrant plugin install vagrant-disksize ### openstacknode.vm.provider "virtualbox" do |vm| vm.memory = 8192 vm.cpus = 4 vm.name = 'devstack-virtualbox' # vm.disksize.size = '50GB' end ### KVM Provider ### openstacknode.vm.provider "libvirt" do |vm| vm.memory = 8192 vm.cpus = 4 # vm.storage :file, :size => '50G' end end end
اجرای vagrant
بعد از اینکه فایل Vagrantfile رو ایجاد و تنظیمات مربوطه که در بالا بهش اشاره شد رو ذخیره کردید می تونید از دستور زیر برای ایجاد ماشین مجازی کمک بگیرید.
vagrant up
ایجاد کاربر
یک کاربر با نام اختصاصی “stack” ایجاد کنید و دسترسی sudo را بهش اعطا کنید. ما دایرکتوری home را در /opt/stack/ تنظیم می کنیم و مطمئن می شویم که این دایرکتوری قابل خواندن است تا آپاچی بتواند به فایل ها دسترسی داشته باشد.
sudo useradd -s /bin/bash -d /opt/stack -m stack
بعد از اینکه کاربر خودمون رو ایجاد کردیم نیازه که بتونیم بدون وارد کردن پسوورد دستورات sudo رو اجرا کنیم.
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
اطمینان حاصل کنید که دایرکتوری home برای کاربر stack دارای مجوز اجرایی برای همه است، چرا که توزیع های مبتنی بر RHEL سطح دسترسی آن را با 700 و Ubuntu 21.04+ با 750 ایجاد می کنند که می تواند در حین پیاده سازی مشکلاتی ایجاد کند. برای جلوگیری از بروز این مشکل میتونیم از دستور زیر کمک بگیریم:
sudo chmod +x /opt/stack
و در اخر هم به کاربری که ساختیم سوییچ میکنیم و بقیه مراحل راه اندازی openstack از طریق یورز مربوطه جلو میبریم.
sudo -u stack -i
دانلود Devstack
بعد از به کاربر تازه ایجاد شده سوئیچ کردیم می تونیم آخرین نسخه اسکریپت های DevStack را از ریپازیتوری Git دریافت می کنیم.
git clone https://opendev.org/openstack/devstack cd devstack
ایجاد فایل local.conf
ما یک فایل پیکربندی ایجاد می کنیم که نحوه انجام اسکریپت های DevStack را مشخص می کند. این فایل کانفیگ میتونه شامل موارد زیر برای راه اندازی openstack باشه.
[[local|localrc]] HOST_IP=192.168.56.56 SERVICE_HOST=192.168.56.56 MYSQL_HOST=192.168.56.56 RABBIT_HOST=192.168.56.56 GLANCE_HOSTPORT=192.168.56.56:9292 ADMIN_PASSWORD=secret DATABASE_PASSWORD=secret RABBIT_PASSWORD=secret SERVICE_PASSWORD=secret ## Neutron options Q_USE_SECGROUP=True FLOATING_RANGE="192.168.56.0/24" IPV4_ADDRS_SAFE_TO_USE="10.10.240.0/24" Q_FLOATING_ALLOCATION_POOL=start=192.168.56.200,end=192.168.56.254 PUBLIC_NETWORK_GATEWAY="192.168.56.1" PUBLIC_INTERFACE=eth1 REGION_NAME=Tehran SERVICE_IP_VERSION=4 IP_VERSION=4 # Open vSwitch provider networking configuration Q_USE_PROVIDERNET_FOR_PUBLIC=True OVS_PHYSICAL_BRIDGE=br-ex PUBLIC_BRIDGE=br-ex OVS_BRIDGE_MAPPINGS=public:br-ex # Logging LOGFILE=$DEST/logs/stack.sh.log LOGDAYS=2
که شما میتونید بر اساس تنظیمات شبکه محیط پیاده سازی سرور خودتون, مقادیر آی پی رو تغییر بدید.
اجرای Devstack
برای اجرای اسکریپت نصب openstack با devstack میتونیم از دستور زیر کمک بگیریم:
./stack.sh
فایل openrc
بعد از اینکه مراحل نصب اسکریپت های OpenStack به اتمام رسید, ما میتونیم از دستور زیر کمک بگیریم و بصورت CLI به محیط openstack خودمون دسترسی داشته باشیم.
source openrc
فایل openrc در جایی که اسکریپت نصب openstack با devstack قرار داشت ایجاد شده است.
دسترسی SSH به ماشین های مجازی
ما یک تنظیمات امنیتی سکوریتی گروه openstack را تغییر می دهیم تا به ما امکان پینگ و دسترسی به VM ها از طریق SSH را بدهد.
openstack security group rule create --proto icmp --dst-port 0 default openstack security group rule create --proto tcp --dst-port 22 default
ایجاد آی پی های شناور
با کمک آی پی های شناور ما میتونیم به ماشین مجازی که در محیط openstack ایجاد کردیم دسترسی پیدا کنیم. برای اینکار:
openstack floating ip create public openstack server add floating ip <ip> <server-name>
صحبت پایانی:
خب به پایان آموزش نصب openstack با devstack رسیدیم, امیدوارم که براتون مفید بوده باشه و نهایت استفاده رو برده باشید.
ممنون میشم با ارسال این مقاله به دوستاتون از ما حمایت کنید.