আপনার হোম ল্যাবে Ubuntu OS এ OpenStack ম্যানুয়ালি ইনস্টল করার জন্য বিস্তারিত ধাপগুলো নিচে দেওয়া হলো। প্রথমে একটি মেশিনে ইনস্টল করে পরে অন্য মেশিনে তা প্রসারিত করতে চান, তাই এটি একটি দীর্ঘ প্রক্রিয়া হবে।
ম্যানুয়াল ইনস্টলেশনের জন্য প্রতিটি মেশিনে কিছু পূর্বশর্ত পূরণ করতে হবে।
- RAM: প্রতি মেশিনে কমপক্ষে 8 GB RAM (১৬ GB প্রস্তাবিত)
- CPU: মাল্টিকোর প্রসেসর
- Storage: দ্রুত SSD, কমপক্ষে ১০০ GB ফ্রি স্পেস
- Network Interfaces: প্রতিটি নোডে কমপক্ষে দুটি নেটওয়ার্ক ইন্টারফেস কার্ড (NIC) থাকা আবশ্যক। একটি ম্যানেজমেন্ট নেটওয়ার্কের জন্য এবং অন্যটি ডেটা নেটওয়ার্কের জন্য।
- Management Network: OpenStack সার্ভিসগুলোর নিজেদের মধ্যে যোগাযোগের জন্য।
- Data/Tenant Network: ভার্চুয়াল মেশিন এবং বাইরের বিশ্বের সাথে যোগাযোগের জন্য।
আপনার তিনটি ডেস্কটপ মেশিনে উবুন্টু সার্ভার (LTS ভার্সন প্রস্তাবিত, যেমন Ubuntu 22.04 LTS) ইনস্টল করা আছে ধরে নিচ্ছি। যদি ডেস্কটপ ভার্সন থাকে, তবে কিছু অপ্রয়োজনীয় সার্ভিস বন্ধ করে পারফরম্যান্স অপ্টিমাইজ করা যেতে পারে।
প্রতিটি মেশিনে করুন:
-
সিস্টেম আপডেট:
sudo apt update sudo apt upgrade -y
-
হোস্টনেম সেটআপ: প্রতিটি মেশিনের জন্য স্বতন্ত্র হোস্টনেম সেট করুন (যেমন:
controller,compute1,compute2)।sudo hostnamectl set-hostname
sudo hostnamectl set-hostname controller
-
/etc/hostsফাইল কনফিগারেশন: প্রতিটি মেশিনের/etc/hostsফাইলে অন্য সব মেশিনের IP অ্যাড্রেস এবং হোস্টনেম যোগ করুন যাতে তারা একে অপরের সাথে নাম ব্যবহার করে যোগাযোগ করতে পারে।উদাহরণ: controller নোডে
127.0.0.1 localhost 192.168.0.63 controller 10.0.0.11 compute1 10.0.0.12 compute2
(আপনার নেটওয়ার্কের সাথে মিলিয়ে IP অ্যাড্রেসগুলো পরিবর্তন করুন)
-
নেটওয়ার্ক কনফিগারেশন: নেটওয়ার্ক ইন্টারফেসগুলো স্ট্যাটিক IP অ্যাড্রেস ব্যবহার করে কনফিগার করুন।
/etc/netplan/*.yamlফাইল এডিট করে এটি করতে পারেন।
This is the network config for Ubuntu 24.04 LTS (Noble)
nano /etc/netplan/
network:
version: 2
renderer: networkd
ethernets:
enp2s0:
dhcp4: false
addresses:
- 192.168.0.88/24
routes:
- to: default
via: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4পরিবর্তনের পর নেটপ্ল্যান এপ্লাই করুন:
```bash
sudo netplan apply
```
-
NTP সার্ভিস ইনস্টল ও কনফিগারেশন: সময় সিঙ্ক্রোনাইজেশনের জন্য প্রতিটি নোডে NTP সেটআপ করা অত্যন্ত গুরুত্বপূর্ণ।
sudo apt install chrony -y sudo nano /etc/chrony/chrony.conf
সার্ভার লাইনগুলো যোগ বা আনকমেন্ট করুন:
server 0.asia.pool.ntp.org iburst maxsources 1 server 1.asia.pool.ntp.org iburst maxsources 1 server 2.asia.pool.ntp.org iburst maxsources 2 # অন্যান্য NTP সার্ভার যোগ করতে পারেনসার্ভিস রিস্টার্ট করুন:
sudo systemctl restart chrony sudo systemctl enable chrony
আপনার প্রথম ডেস্কটপ মেশিনটিকে কন্ট্রোলার নোড হিসেবে ব্যবহার করব। এই নোডে OpenStack-এর মূল সার্ভিসগুলো (Keystone, Glance, Nova, Neutron, Horizon, Cinder, Heat ইত্যাদি) ইনস্টল করা হবে।
Keystone, Nova, Neutron, Glance-এর মতো পরিষেবাগুলির ডেটা সংরক্ষণের জন্য একটি ডাটাবেজ সার্ভার প্রয়োজন।
sudo apt install mariadb-server python3-pymysql -yMariaDB কনফিগারেশন:
/etc/mysql/mariadb.conf.d/50-server.cnf ফাইলটি এডিট করুন। [mysqld] সেকশনের অধীনে নিচের লাইনগুলো যোগ করুন:
[mysqld]
bind-address = 192.168.0.63 # আপনার controller নোডের ম্যানেজমেন্ট IP
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
সেভ করে MariaDB সার্ভিস রিস্টার্ট করুন:
sudo systemctl restart mariadb
sudo systemctl enable mariadbসিকিউর ইনস্টলেশন (ঐচ্ছিক কিন্তু প্রস্তাবিত):
sudo mysql_secure_installationপ্রম্পট অনুযায়ী রুট পাসওয়ার্ড সেট করুন এবং অন্যান্য অপশনগুলো Y প্রেস করে সম্পন্ন করুন।
OpenStack পরিষেবাগুলো একে অপরের সাথে যোগাযোগের জন্য একটি মেসেজ কিউ ব্যবহার করে। RabbitMQ একটি জনপ্রিয় পছন্দ।
sudo apt install rabbitmq-server -yRabbitMQ ব্যবহারকারী তৈরি:
sudo rabbitmqctl add_user openstack openstack#123 # openstack#123 এর বদলে একটি শক্তিশালী পাসওয়ার্ড দিন
sudo rabbitmqctl set_permissions openstack ".*" ".*" ".*"Keystone OpenStack-এর সমস্ত পরিষেবা এবং ব্যবহারকারীদের জন্য প্রমাণীকরণ (authentication) এবং অনুমোদন (authorization) পরিষেবা সরবরাহ করে।
-
ডাটাবেজ তৈরি:
sudo mysql -u root -p CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack#123'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack#123'; FLUSH PRIVILEGES; EXIT;
-
Keystone ইনস্টল:
sudo apt install keystone -y
-
Keystone কনফিগারেশন:
/etc/keystone/keystone.confফাইলটি এডিট করুন।[database]সেকশনে:connection = mysql+pymysql://keystone:openstack#123@controller/keystone[token]সেকশনে:provider = fernet -
ডাটাবেজ সিঙ্ক:
sudo su -s /bin/sh -c "keystone-manage db_sync" keystone -
ফার্নেট কী তৈরি:
sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
-
Keystone সার্ভিস রিস্টার্ট:
sudo systemctl restart apache2 sudo systemctl enable apache2
অ্যাডমিন ইউজার হিসেবে OpenStack কমান্ড চালানোর জন্য কিছু এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হবে।
-
অ্যাডমিন ইউজার তৈরি:
export OS_USERNAME=admin export OS_PASSWORD=openstack#123 export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3
এই ভেরিয়েবলগুলো একটি
admin-openrcফাইলে সেভ করে রাখতে পারেন:sudo nano admin-openrc
এবং উপরের লাইনগুলো পেস্ট করুন। যখনই অ্যাডমিন কমান্ড চালাতে হবে, তখন
source admin-openrcকমান্ডটি রান করুন। -
প্রজেক্ট, ইউজার এবং রোল তৈরি:
openstack domain create --description "An Example Domain" example openstack project create --domain default --description "Admin Project" admin openstack user create --domain default --password openstack#123 admin openstack role create admin openstack role add admin --project admin --user admin openstack project create --domain default --description "Service Project" service openstack project create --domain default --description "Demo Project" demo openstack user create --domain default --password openstack#123 demo openstack role add member --project demo --user demo
Glance ভার্চুয়াল মেশিন ইমেজ সংরক্ষণের জন্য দায়ী।
-
ডাটাবেজ তৈরি:
sudo mysql -u root -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack#123'; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack#123'; FLUSH PRIVILEGES; EXIT;
-
Glance ইউজার তৈরি:
source admin-openrc openstack user create --domain default --password openstack#123 glance openstack role add --project service --user glance admin -
Glance ইনস্টল:
sudo apt install glance -y
-
Glance কনফিগারেশন:
/etc/glance/glance-api.confএবং/etc/glance/glance-registry.confফাইলগুলো এডিট করুন।[database]সেকশনে (উভয় ফাইলে):connection = mysql+pymysql://glance:openstack#123@controller/glance[glance_store]সেকশনে (glance-api.conf):stores = file,http default_store = file filesystem_store_datadir = /var/lib/glance/images/[keystone_authtoken]সেকশনে (উভয় ফাইলে, পুরানো অংশ কমেন্ট করে নতুনগুলো যোগ করুন):[keystone_authtoken] # ... অন্যান্য লাইন কমেন্ট করুন বা মুছুন www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = glance password = openstack#123 -
ডাটাবেজ সিঙ্ক:
sudo su -s /bin/sh -c "glance-manage db_sync" glance -
সার্ভিস রিস্টার্ট:
sudo systemctl restart glance-api glance-registry sudo systemctl enable glance-api glance-registry -
ইমেজ আপলোড (পরীক্ষার জন্য):
wget http://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64.img openstack image create "Ubuntu 22.04" \ --file ubuntu-22.04-server-cloudimg-amd64.img \ --disk-format qcow2 --container-format bare \ --public
Nova ভার্চুয়াল মেশিনের জীবনচক্র পরিচালনা করে।
-
ডাটাবেজ তৈরি:
sudo mysql -u root -p CREATE DATABASE nova_api; CREATE DATABASE nova; CREATE DATABASE nova_cell0; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack#123'; GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'openstack#123'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack#123'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack#123'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack#123'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'openstack#123'; FLUSH PRIVILEGES; EXIT;
-
Nova ইউজার তৈরি:
source admin-openrc openstack user create --domain default --password openstack#123 nova openstack role add --project service --user nova admin -
Nova ইনস্টল:
sudo apt install nova-api nova-conductor nova-scheduler nova-novncproxy -y
-
Nova কনফিগারেশন:
/etc/nova/nova.confফাইলটি এডিট করুন।[api_database]সেকশনে:connection = mysql+pymysql://nova:openstack#123@controller/nova_api[database]সেকশনে:connection = mysql+pymysql://nova:openstack#123@controller/nova[DEFAULT]সেকশনে:transport_url = rabbit://openstack:openstack#123@controller my_ip = 192.168.0.63 # আপনার controller নোডের ম্যানেজমেন্ট IP use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver[api]সেকশনে:auth_strategy = keystone[keystone_authtoken]সেকশনে:# ... অন্যান্য লাইন কমেন্ট করুন বা মুছুন www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = openstack#123[vnc]সেকশনে:enabled = True server_listen = $my_ip server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html[glance]সেকশনে:api_servers = http://controller:9292[oslo_concurrency]সে:lock_path = /var/lib/nova/tmp -
ডাটাবেজ সিঙ্ক:
sudo su -s /bin/sh -c "nova-manage api_db sync" nova sudo su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova sudo su -s /bin/sh -c "nova-manage db sync" nova sudo su -s /bin/sh -c "nova-manage cell_v2 create_cell --name cell1 --verbose" nova
-
সার্ভিস রিস্টার্ট:
sudo systemctl restart nova-api nova-scheduler nova-conductor nova-novncproxy sudo systemctl enable nova-api nova-scheduler nova-conductor nova-novncproxy
Neutron OpenStack-এর নেটওয়ার্কিং সার্ভিস প্রদান করে।
-
ডাটাবেজ তৈরি:
sudo mysql -u root -p CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS'; FLUSH PRIVILEGES; EXIT;
-
Neutron ইউজার তৈরি:
source admin-openrc openstack user create --domain default --password NEUTRON_PASS neutron openstack role add --project service --user neutron admin -
Neutron ইনস্টল:
sudo apt install neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent -y
-
Neutron কনফিগারেশন:
/etc/neutron/neutron.confফাইলটি এডিট করুন।[database]সেকশনে:connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron[DEFAULT]সেকশনে:core_plugin = ml2 service_plugins = router allow_overlapping_ips = True transport_url = rabbit://openstack:openstack#123@controller auth_strategy = keystone notify_nova_on_port_status_changes = True notify_nova_on_security_group_changes = True[keystone_authtoken]সেকশনে:# ... অন্যান্য লাইন কমেন্ট করুন বা মুছুন www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = neutron password = NEUTRON_PASS[nova]সেকশনে:auth_url = http://controller:5000 auth_type = password project_domain_name = Default user_domain_name = Default region_name = RegionOne project_name = service username = nova password = openstack#123/etc/neutron/plugins/ml2/ml2_conf.iniফাইলটি এডিট করুন।[ml2]সেকশনে:type_drivers = flat,vlan,vxlan tenant_network_types = vxlan mechanism_drivers = linuxbridge,l2population extension_drivers = port_security[ml2_type_flat]সেকশনে:flat_networks = provider[ml2_type_vxlan]সেকশনে:vni_ranges = 1:1000[securitygroup]সেকশনে:enable_security_group = True enable_ipset = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver/etc/neutron/plugins/ml2/linuxbridge_agent.iniফাইলটি এডিট করুন।[linux_bridge]সেকশনে:physical_interface_mappings = provider:enp0s8[vxlan]সেকশনে:enable_vxlan = True local_ip = 192.168.0.63 l2_population = True[securitygroup]সেকশনে:enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver/etc/neutron/l3_agent.iniফাইলটি এডিট করুন।[DEFAULT]সেকশনে:interface_driver = linuxbridge/etc/neutron/dhcp_agent.iniফাইলটি এডিট করুন।[DEFAULT]সেকশনে:interface_driver = linuxbridge dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = True/etc/neutron/metadata_agent.iniফাইলটি এডিট করুন।[DEFAULT]সেকশনে:nova_metadata_host = controller metadata_proxy_shared_secret = METADATA_SECRET # একটি শক্তিশালী পাসওয়ার্ড দিনNova-Neutron ইন্টিগ্রেশন:
/etc/nova/nova.confফাইলে[neutron]সেকশনে নিচের লাইনগুলো যোগ করুন:[neutron] url = http://controller:9696 auth_url = http://controller:5000 auth_type = password project_domain_name = Default user_domain_name = Default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS service_metadata_proxy = True metadata_proxy_shared_secret = METADATA_SECRET -
ডাটাবেজ সিঙ্ক:
sudo su -s /bin/sh -c "neutron-manage db sync" neutron -
সার্ভিস রিস্টার্ট:
sudo systemctl restart neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-l3-agent neutron-metadata-agent sudo systemctl enable neutron-server neutron-linuxbridge-agent neutron-dhcp-agent neutron-l3-agent neutron-metadata-agent sudo systemctl restart nova-api # Nova-Neutron ইন্টিগ্রেশনের জন্য এটিও রিস্টার্ট করুন
Horizon হচ্ছে OpenStack-এর ওয়েব-ভিত্তিক ইউজার ইন্টারফেস।
-
Horizon ইনস্টল:
sudo apt install openstack-dashboard -y
-
Horizon কনফিগারেশন:
/etc/openstack-dashboard/local_settings.pyফাইলটি এডিট করুন।OPENSTACK_HOSTপরিবর্তন করুন:OPENSTACK_HOST = "controller"
ALLOWED_HOSTSএ আপনার কন্ট্রোলার IP বা ডোমেইন যোগ করুন:ALLOWED_HOSTS = ['controller', '192.168.0.63'] # আপনার কন্ট্রোলার IP
TIME_ZONEসেট করুন:TIME_ZONE = "Asia/Dhaka" # আপনার টাইমজোন
session_engineএ কিছু সিক্রেট কি সেট করুন।SECRET_KEY = 'a_very_long_and_random_string_of_characters_for_security'
OPENSTACK_KEystone_URLনিশ্চিত করুন:OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_DOMAINসেট করুন:OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
OPENSTACK_API_VERSIONSসেট করুন:OPENSTACK_API_VERSIONS = { "identity": 3, "image": 2, "compute": 2, "volume": 2, "network": 2, }
-
Apache সার্ভিস রিস্টার্ট:
sudo systemctl reload apache2
আপনার বাকি দুটি ডেস্কটপ মেশিনকে কম্পিউট নোড হিসেবে ব্যবহার করব। প্রতিটি কম্পিউট নোডে Nova Compute, Neutron Linuxbridge Agent ইনস্টল করতে হবে।
প্রতিটি কম্পিউট নোডে নিম্নলিখিত ধাপগুলো অনুসরণ করুন (যেমন compute1, compute2):
-
Nova ইনস্টল:
sudo apt install nova-compute -y
-
Nova কনফিগারেশন:
/etc/nova/nova.confফাইলটি এডিট করুন।[DEFAULT]সেকশনে:transport_url = rabbit://openstack:openstack#123@controller my_ip = 10.0.0.11 # এই কম্পিউট নোডের ম্যানেজমেন্ট IP (যেমন compute1 এর জন্য) use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver[api]সেকশনে:auth_strategy = keystone[keystone_authtoken]সেকশনে:# ... অন্যান্য লাইন কমেন্ট করুন বা মুছুন www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = openstack#123[vnc]সেকশনে:enabled = True server_listen = 0.0.0.0 server_proxyclient_address = 10.0.0.11 # এই কম্পিউট নোডের ম্যানেজমেন্ট IP novncproxy_base_url = http://controller:6080/vnc_auto.html[glance]সেকশনে:api_servers = http://controller:9292[oslo_concurrency]সেকশনে:lock_path = /var/lib/nova/tmp[libvirt]সেকশনে:virt_type = qemu # যদি আপনার CPU ভার্চুয়ালাইজেশন সমর্থন না করে, অন্যথায় kvm -
সার্ভিস রিস্টার্ট:
sudo systemctl restart nova-compute sudo systemctl enable nova-compute
-
Neutron ইনস্টল:
sudo apt install neutron-linuxbridge-agent -y
-
Neutron কনফিগারেশন:
/etc/neutron/neutron.confফাইলটি এডিট করুন।[DEFAULT]সেকশনে:transport_url = rabbit://openstack:openstack#123@controller auth_strategy = keystone[keystone_authtoken]সেকশনে:# ... অন্যান্য লাইন কমেন্ট করুন বা মুছুন www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = neutron password = NEUTRON_PASS/etc/neutron/plugins/ml2/linuxbridge_agent.iniফাইলটি এডিট করুন।[linux_bridge]সেকশনে:physical_interface_mappings = provider:enp0s8 # আপনার ডেটা নেটওয়ার্ক ইন্টারফেসের নাম[vxlan]সেকশনে:enable_vxlan = True local_ip = 10.0.0.11 # এই কম্পিউট নোডের ম্যানেজমেন্ট IP l2_population = True[securitygroup]সেকশনে:enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver -
সার্ভিস রিস্টার্ট:
sudo systemctl restart neutron-linuxbridge-agent sudo systemctl enable neutron-linuxbridge-agent
কন্ট্রোলার নোড থেকে নিম্নলিখিত কমান্ডগুলো চালিয়ে ইনস্টলেশন যাচাই করুন:
source admin-openrc
openstack service list
openstack compute service list
openstack network agent listআপনার সমস্ত OpenStack পরিষেবা Up অবস্থায় আছে কিনা এবং compute এবং network এজেন্টগুলো সঠিক ভাবে দেখাচ্ছে কিনা তা পরীক্ষা করুন।
Horizon ড্যাশবোর্ড (http://controller/) ব্যবহার করে অথবা CLI এর মাধ্যমে নেটওয়ার্ক, সাবনেট এবং রাউটার তৈরি করুন:
-
প্রোভাইডার নেটওয়ার্ক তৈরি (উদাহরণ):
openstack network create --share --external \ --provider-physical-network provider \ --provider-network-type flat provider
-
প্রোভাইডার সাবনেট তৈরি:
openstack subnet create --network provider \ --allocation-pool start=192.168.1.100,end=192.168.1.150 \ --dns-nameserver 8.8.8.8 --gateway 192.168.1.1 \ --no-dhcp --subnet-range 192.168.1.0/24 provider_subnet
(আপনার নেটওয়ার্ক অনুযায়ী IP অ্যাড্রেস এবং গেটওয়ে পরিবর্তন করুন)
-
টেন্যান্ট (প্রাইভেট) নেটওয়ার্ক এবং রাউটার তৈরি:
openstack network create private openstack subnet create --network private \ --dns-nameserver 8.8.8.8 --gateway 10.0.0.1 \ --subnet-range 10.0.0.0/24 private_subnet openstack router create router1 openstack router add subnet router1 private_subnet openstack router set router1 --external-gateway provider
যেহেতু আপনি ম্যানুয়ালি ইনস্টল করেছেন, অন্য দুটি মেশিনে এই প্রক্রিয়াটি সহজ করার জন্য কিছু কৌশল অবলম্বন করতে পারেন:
উপরে বর্ণিত প্রতিটি ধাপের জন্য Bash স্ক্রিপ্ট তৈরি করতে পারেন। উদাহরণস্বরূপ:
prepare_os.sh: হোস্টনেম,/etc/hosts, নেটওয়ার্ক এবং NTP কনফিগারেশনের জন্য।install_compute_nova.sh: Nova Compute ইনস্টল এবং কনফিগারেশনের জন্য।install_compute_neutron.sh: Neutron Linuxbridge Agent ইনস্টল এবং কনফিগারেশনের জন্য।
এই স্ক্রিপ্টগুলোতে পাসওয়ার্ড, IP অ্যাড্রেস, এবং ইন্টারফেসের নামগুলো ভেরিয়েবল হিসেবে রাখুন, যাতে প্রতিটি নোডের জন্য সহজে পরিবর্তন করা যায়।
প্রথম কম্পিউট নোড (compute1) সম্পূর্ণ সেটআপ করার পর, /etc/nova/nova.conf এবং /etc/neutron/plugins/ml2/linuxbridge_agent.ini ফাইলগুলো কপি করে দ্বিতীয় কম্পিউট নোডে (compute2) নিতে পারেন। শুধু IP অ্যাড্রেস এবং হোস্টনেমগুলো নতুন নোডের জন্য ম্যানুয়ালি এডিট করে দিলেই হবে।
উদাহরণস্বরূপ (compute1 থেকে compute2 তে কপি করার জন্য):
# compute1 থেকে
scp /etc/nova/nova.conf user@compute2:/tmp/nova.conf
scp /etc/neutron/plugins/ml2/linuxbridge_agent.ini user@compute2:/tmp/linuxbridge_agent.ini
# compute2 তে
sudo cp /tmp/nova.conf /etc/nova/nova.conf
sudo cp /tmp/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.iniগুরুত্বপূর্ণ: কপি করার পর অবশ্যই ফাইলগুলো এডিট করে compute2 এর নিজস্ব IP অ্যাড্রেস এবং hostname সেট করতে ভুলবেন না।
যদিও আপনার ফিজিক্যাল ডেস্কটপ, যদি ভবিষ্যতে আপনি VM এর উপর OpenStack ইনস্টল করেন, তবে একটি বেস VM তৈরি করে তার স্ন্যাপশট নিয়ে অন্যান্য নোড তৈরি করা সহজ হবে। কিন্তু এটি আপনার বর্তমান পরিস্থিতির জন্য প্রযোজ্য নয়।
- কন্ট্রোলার নোড: প্রথমে এটি পুরোপুরি সেটআপ করুন।
- প্রথম কম্পিউট নোড (compute1): এটি ইনস্টল করুন এবং নিশ্চিত করুন যে এটি কন্ট্রোলারের সাথে সঠিকভাবে যোগাযোগ করছে।
- দ্বিতীয় কম্পিউট নোড (compute2): একই প্রক্রিয়া অনুসরণ করে এটি ইনস্টল করুন।
প্রতিটি ধাপ সম্পূর্ণ হওয়ার পর, OpenStack ড্যাশবোর্ড এবং CLI ব্যবহার করে আপনার রিসোর্সগুলো ঠিকমতো দেখা যাচ্ছে কিনা তা যাচাই করুন।
ম্যানুয়াল ইনস্টলেশন একটি জটিল প্রক্রিয়া, তাই প্রতিটি কমান্ড সাবধানে অনুসরণ করুন এবং লগ ফাইলগুলো (যেমন /var/log/nova/nova-api.log, /var/log/neutron/neutron-server.log ইত্যাদি) পরীক্ষা করে সমস্যা সমাধান করুন।
যদি কোনো নির্দিষ্ট ধাপে আটকে যান বা কোনো ত্রুটি পান, তবে আমাকে জিজ্ঞাসা করতে দ্বিধা করবেন না।