OpenStack Grizzly راهی آسان و آزمایش شده برای ایجاد پلتفرم OpenStack شخصی شما است.

حتما می‌دانید که به کمک OpenStack می‌توان سرور‌های فیزیکی را فضای ابری تبدیل کرد. در این مقاله به شما آموزش می‌دهیم که چطور نرم‌افزار OpenStack Grizzly به ساده‌ترین روش ممکن نصب کنید.

پیش‌نیازهای نصب OpenStack Grizzly

پیش از شروع نصب مطمئن شوید که این منابع را در اختیار دارید:

آماده ‌سازی Ubuntu

پس از نصب اوبونتو 12.04 یا 13.04 روی سرور 64 بیتی، باید از Sudo mode استفاده کنید و لطفا تا پایان نصب با همین کاربر ادامه دهید.

sudo su

اگر از اوبونتو 12.04 استفاده می‌کنید باید مخازن یا Grizzly Repositories را به این دستور اضافه کنید.

apt-get install -y ubuntu-cloud-keyring
echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list

سیستم خود را به روز کنید:

apt-get update -y
apt-get upgrade -y
apt-get dist-upgrade -y

تنظیمات شبکه

در نظر داشته باشید که فقط یک NIC باید اجازه دسترسی به اینترنت را داشته باشد.

#For Exposing OpenStack API over the internet
auto eth1
iface eth1 inet static
address 192.168.100.51
netmask 255.255.255.0
gateway 192.168.100.1
dns-nameservers 8.8.8.8

#Not internet connected(used for OpenStack management)
auto eth0
iface eth0 inet static
address 10.10.10.51
netmask 255.255.255.0

حالا با این دستور سرویس شبکه را restart کنید.

service networking restart

 MySQL & RabbitMQ

با این دستور MySQL را نصب کنید:

apt-get install -y mysql-server python-mysqldb

حالا آن را برای برای پذیرش تمام درخواست های دریافتی پیکربندی کنید:

sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
service mysql restart

RabbitMQ

RabbitMQ را نصب کنید:

apt-get install -y rabbitmq-server

نصب سرویس NTP:

apt-get install -y ntp

این پایگاه‌های داده را ایجاد کنید:

mysql -u root -p

#Keystone
CREATE DATABASE keystone;
GRANT ALL ON keystone.* TO 'keystoneUser'@'%' IDENTIFIED BY 'keystonePass';

#Glance
CREATE DATABASE glance;
GRANT ALL ON glance.* TO 'glanceUser'@'%' IDENTIFIED BY 'glancePass';

#Quantum
CREATE DATABASE quantum;
GRANT ALL ON quantum.* TO 'quantumUser'@'%' IDENTIFIED BY 'quantumPass';

#Nova
CREATE DATABASE nova;
GRANT ALL ON nova.* TO 'novaUser'@'%' IDENTIFIED BY 'novaPass';

#Cinder
CREATE DATABASE cinder;
GRANT ALL ON cinder.* TO 'cinderUser'@'%' IDENTIFIED BY 'cinderPass';

quit;

نصب سرویس‌های دیگر:

apt-get install -y vlan bridge-utils

فعال کردن IP_Forwarding:

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

# To save you from rebooting, perform the following
sysctl net.ipv4.ip_forward=1

Keystone

با Keystone package  شروع کنید:

apt-get install -y keystone

ویژگی اتصال در /etc/keystone/keystone.conf را با پایگاه داده جدید تطبیق دهید:

connection = mysql://keystoneUser:keystonePass@10.10.10.51/keystone

سرویس احراز هویت را مجدداً راه اندازی  و پایگاه داده را همگام سازی کنید:

service keystone restart
keystone-manage db_sync

پایگاه داده keystone را با استفاده از دو اسکریپت موجود در Scripts folder این مخزن git پر کنید:

#Modify the **HOST_IP** and **EXT_HOST_IP** variables before executing the scripts

wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_MultiNode/KeystoneScripts/keystone_basic.sh
wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_MultiNode/KeystoneScripts/keystone_endpoints_basic.sh

chmod +x keystone_basic.sh
chmod +x keystone_endpoints_basic.sh

./keystone_basic.sh
./keystone_endpoints_basic.sh

یک فایل اعتبارنامه ساده (credential file) ایجاد  و آن را بارگذاری کنید تا بعداً اذیت نشوید:

nano creds

#Paste the following:
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin_pass
export OS_AUTH_URL="http://192.168.100.51:5000/v2.0/"

# Load it:
source creds

برای آزمایش Keystone، از یک دستور ساده CLI استفاده می کنیم:

keystone user-list

Glance

اکنون باید Glance را نصب کنیم:

apt-get install -y glance

برای به روز رسانی /etc/glance/glance-api-paste.ini این دستور را اجرا کنید:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
delay_auth_decision = true
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = service_pass

/etc/glance/glance-registry-paste.ini را با استفاده از این دستور به روز رسانی کنید:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = service_pass

به روز رسانی /etc/glance/glance-api.conf با:

sql_connection = mysql://glanceUser:glancePass@10.10.10.51/glance

همچنین

[paste_deploy]
flavor = keystone

به روز رسانی/etc/glance/glance-registry.conf را با استفاده از:

sql_connection = mysql://glanceUser:glancePass@10.10.10.51/glance

و

[paste_deploy]
flavor = keystone

سرویس‌های glance-api و glance-registry را مجدداً راه‌اندازی کنید:

service glance-api restart; service glance-registry restart

همگام سازی پایگاه داده glance:

glance-manage db_sync

Quantum

سرور کوانتومی و مجموعه بسته OpenVSwitch را نصب کنید:

apt-get install -y quantum-server

فایل پیکربندی پلاگین او وی اس /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini را با این دستور ویرایش کنید:

#Under the database section
[DATABASE]
sql_connection = mysql://quantumUser:quantumPass@10.10.10.51/quantum

#Under the OVS section
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True

#Firewall driver for realizing quantum security group function
[SECURITYGROUP]
firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

ویرایش /etc/quantum/api-paste.ini

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass

/etc/quantum/quantum.conf را به روز کنید:

[keystone_authtoken]
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
signing_dir = /var/lib/quantum/keystone-signing

سرور کوانتومی را مجددا راه اندازی کنید:

service quantum-server restart

Nova

با نصب اجزای nova شروع کنید:

apt-get install -y nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy nova-doc nova-conductor

اکنون بخش authtoken را در فایل /etc/nova/api-paste.ini به این شکل تغییر دهید:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = service_pass
signing_dirname = /tmp/keystone-signing-nova
# Workaround for https://bugs.launchpad.net/nova/+bug/1154809
auth_version = v2.0

/etc/nova/nova.conf را به این صورت تغییر دهید:

[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler
rabbit_host=10.10.10.51
nova_url=http://10.10.10.51:8774/v1.1/
sql_connection=mysql://novaUser:novaPass@10.10.10.51/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf

# Auth
use_deprecated_auth=false
auth_strategy=keystone

# Imaging service
glance_api_servers=10.10.10.51:9292
image_service=nova.image.glance.GlanceImageService

# Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://192.168.100.51:6080/vnc_auto.html
novncproxy_port=6080
vncserver_proxyclient_address=10.10.10.51
vncserver_listen=0.0.0.0

# Network settings
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://10.10.10.51:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=service_pass
quantum_admin_auth_url=http://10.10.10.51:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
#If you want Quantum + Nova Security groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=quantum
#If you want Nova Security groups only, comment the two lines above and uncomment line -1-.
#-1-firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver

#Metadata
service_quantum_metadata_proxy = True
quantum_metadata_proxy_shared_secret = helloOpenStack

# Compute #
compute_driver=libvirt.LibvirtDriver

# Cinder #
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900

پایگاه داده خود را همگام سازی کنید:

nova-manage db sync

راه اندازی مجدد خدمات nova-*:

cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done

 Cinder

بسته های مورد نیاز را نصب کنید:

apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms

سرویس های iscsi را پیکربندی کنید:

sed -i 's/false/true/g' /etc/default/iscsitarget

راه اندازی مجدد سرویس ها:

service iscsitarget start
service open-iscsi start

/etc/cinder/api-paste.ini را مطابق دستور زیر پیکربندی کنید:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
service_protocol = http
service_host = 192.168.100.51
service_port = 5000
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = cinder
admin_password = service_pass
signing_dir = /var/lib/cinder

/etc/cinder/cinder.conf را ویرایش کنید:

[DEFAULT]
rootwrap_config=/etc/cinder/rootwrap.conf
sql_connection = mysql://cinderUser:cinderPass@10.10.10.51/cinder
api_paste_config = /etc/cinder/api-paste.ini
iscsi_helper=ietadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
iscsi_ip_address=10.10.10.51

سپس پایگاه داده خود را همگام سازی کنید:

cinder-manage db sync

در نهایت، فراموش نکنید که یک volumegroupایجاد کنید و نام آن را cinder-volumes بگذارید:

dd if=/dev/zero of=cinder-volumes bs=1 count=0 seek=2G
losetup /dev/loop2 cinder-volumes
fdisk /dev/loop2
#Type in the followings:
n
p
1
ENTER
ENTER
t
8e
w

به ایجاد physical volume و سپس volume group ادامه دهید:

pvcreate /dev/loop2
vgcreate cinder-volumes /dev/loop2

راه اندازی مجدد خدمات سیندر:

cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i restart; done

بررسی کنید که آیا سرویس‌های cinder در حال اجرا هستند:

cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i status; done

Horizon

برای نصب Horizon به این صورت عمل کنید:

apt-get install -y openstack-dashboard memcached

اگر تم اوبونتو OpenStack را دوست ندارید، می توانید با حذف این بسته ، آن را غیرفعال کنید:

dpkg --purge openstack-dashboard-ubuntu-theme

آپاچی و memcached را دوباره بارگیری کنید:

service apache2 restart; service memcached restart

بیشتر بخوانید:


https://hostida.com/blog/what-is-apache-web-server/

داشبورد OpenStack را در http://192.168.100.51/horizon بررسی کنید. می توانیم با admin / admin_pass وارد شویم

Network Node

 Node آماده سازی

پس از نصب اوبونتو 12.04 یا سرور 13.04 64 بیتی، sudo را اجرا کنید:

sudo su

اگر از اوبونتو 12.04 استفاده می‌کنید باید  Grizzly Repositories را به این دستور اضافه کنید.

apt-get install -y ubuntu-cloud-keyring
echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list

سیستم خود را به روز رسانی کنید»

apt-get update -y
apt-get upgrade -y
apt-get dist-upgrade -y

سرویس npt را نصب کنید:

apt-get install -y ntp

سرور NTP را برای controller node پیکربندی کنید:

#Comment the ubuntu NTP servers
sed -i 's/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g' /etc/ntp.conf

#Set the network node to follow up your conroller node
sed -i 's/server ntp.ubuntu.com/server 10.10.10.51/g' /etc/ntp.conf

service ntp restart

نصب سرویس های دیگر:

apt-get install -y vlan bridge-utils
فعال کردن IP_Forwarding:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

# To save you from rebooting, perform the following
sysctl net.ipv4.ip_forward=1

Networking

3 NIC باید وجود داشته باشد:

# OpenStack management
auto eth0
iface eth0 inet static
address 10.10.10.52
netmask 255.255.255.0

# VM Configuration
auto eth1
iface eth1 inet static
address 10.20.20.52
netmask 255.255.255.0

# VM internet Access
auto eth2
iface eth2 inet static
address 192.168.100.52
netmask 255.255.255.0

بخش اول OpenVSwitch

OpenVSwitch را نصب کنید:

apt-get install -y openvswitch-switch openvswitch-datapath-dkms

ایجاد پل ها:

#br-int will be used for VM integration
ovs-vsctl add-br br-int

#br-ex is used to make to VM accessible from the internet
ovs-vsctl add-br br-ex

Quantum

عامل Quantum openvswitch، l3 agent و dhcp agent را نصب کنید:

apt-get -y install quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent quantum-metadata-agent

ویرایش /etc/quantum/api-paste.ini:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass

فایل پیکربندی پلاگین OVS

/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini را با این دستور ویرایش کنید:

#Under the database section
[DATABASE]
sql_connection = mysql://quantumUser:quantumPass@10.10.10.51/quantum

#Under the OVS section
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.20.20.52
enable_tunneling = True

#Firewall driver for realizing quantum security group function
[SECURITYGROUP]
firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

به روز رسانی /etc/quantum/metadata_agent.ini:

# The Quantum user information for accessing the Quantum API.
auth_url = http://10.10.10.51:35357/v2.0
auth_region = RegionOne
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass

# IP address used by Nova metadata server
nova_metadata_ip = 10.10.10.51

# TCP Port used by Nova metadata server
nova_metadata_port = 8775

metadata_proxy_shared_secret = helloOpenStack

مطمئن شوید که IP rabbitMQ شما در /etc/quantum/quantum.conf روی controller node تنظیم شده باشد:

rabbit_host = 10.10.10.51

#And update the keystone_authtoken section

[keystone_authtoken]
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
signing_dir = /var/lib/quantum/keystone-signing

/etc/sudoers.d/quantum_sudoers را ویرایش کنید تا به این شکل دسترسی کامل داشته باشید (متاسفانه اجباری است)

nano /etc/sudoers.d/quantum_sudoers

#Modify the quantum user
quantum ALL=NOPASSWD: ALL

تمام سرویس ها را مجددا راه اندازی کنید:

cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i restart; done

بخش دوم OpenVSwitch

Eth2 را در /etc/network/interfaces ویرایش کنید تا به این شکل شود:

# VM internet Access
auto eth2
iface eth2 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off
down ifconfig $IFACE down

Eth2 را به br-ex اضافه کنید:

#Internet connectivity will be lost after this step but this won't affect OpenStack's work
ovs-vsctl add-port br-ex eth2

#If you want to get internet connection back, you can assign the eth2's IP address to the br-ex in the /etc/network/interfaces file.

KVM

مطمئن شوید که سخت افزار شما از مجازی سازی را پشتیبانی می کند:

apt-get install -y cpu-checker
kvm-ok

اکنون به سراغ نصب kvm بروید و آن را پیکربندی کنید:

apt-get install -y kvm libvirt-bin pm-utils

آرایه cgroup_device_acl را در فایل /etc/libvirt/qemu.conf ویرایش کنید:

cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc", "/dev/hpet","/dev/net/tun"
]

در این مرحله  virtual bridge پیش فرض را حذف کنید:

virsh net-destroy default
virsh net-undefine default

با به‌روزرسانی فایل /etc/libvirt/libvirtd.conf، انتقال زنده live migration را فعال کنید:

listen_tls = 0
listen_tcp = 1
auth_tcp = "none"

متغیر libvirtd_opts را در فایل /etc/init/libvirt-bin.conf ویرایش کنید:

env libvirtd_opts="-d -l"

فایل /etc/default/libvirt-bin را ویرایش کنید:

libvirtd_opts="-d -l"

برای بارگیری مقادیر جدید، سرویس libvirt و dbus را مجددا راه اندازی کنید:

service dbus restart && service libvirt-bin restart

OpenVSwitch

OpenVSwitch را نصب کنید:
apt-get install -y openvswitch-switch openvswitch-datapath-dkms

  :bridge

#br-int will be used for VM integration
ovs-vsctl add-br br-int

Quantum

عامل Quantum openvswitch را نصب کنید:

apt-get -y install quantum-plugin-openvswitch-agent

فایل پیکربندی پلاگین OVS

/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini را با این دستور ویرایش کنید:

#Under the database section
[DATABASE]
sql_connection = mysql://quantumUser:quantumPass@10.10.10.51/quantum

#Under the OVS section
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.20.20.53
enable_tunneling = True

#Firewall driver for realizing quantum security group function
[SECURITYGROUP]
firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

مطمئن شوید که IP rabbitMQ شما در /etc/quantum/quantum.conf روی controller node تنظیم شده باشد:

rabbit_host = 10.10.10.51

#And update the keystone_authtoken section

[keystone_authtoken]
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
signing_dir = /var/lib/quantum/keystone-signing

راه اندازی مجدد تمام خدمات:

service quantum-plugin-openvswitch-agent restart

Nova

اجزای مورد نیاز nova را برای compute node نصب کنید:

apt-get install -y nova-compute-kvm

اکنون بخش authtoken را در فایل /etc/nova/api-paste.ini به این شکل تغییر دهید:

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = service_pass
signing_dirname = /tmp/keystone-signing-nova
# Workaround for https://bugs.launchpad.net/nova/+bug/1154809
auth_version = v2.0

فایل /etc/nova/nova-compute.conf را ویرایش کنید:

[DEFAULT]
libvirt_type=kvm
libvirt_ovs_bridge=br-int
libvirt_vif_type=ethernet
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
libvirt_use_virtio_for_bridges=True

/etc/nova/nova.conf را به این صورت تغییر دهید:

[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler
rabbit_host=10.10.10.51
nova_url=http://10.10.10.51:8774/v1.1/
sql_connection=mysql://novaUser:novaPass@10.10.10.51/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf

# Auth
use_deprecated_auth=false
auth_strategy=keystone

# Imaging service
glance_api_servers=10.10.10.51:9292
image_service=nova.image.glance.GlanceImageService

# Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://192.168.100.51:6080/vnc_auto.html
novncproxy_port=6080
vncserver_proxyclient_address=10.10.10.53
vncserver_listen=0.0.0.0

# Network settings
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://10.10.10.51:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=service_pass
quantum_admin_auth_url=http://10.10.10.51:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
#If you want Quantum + Nova Security groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=quantum
#If you want Nova Security groups only, comment the two lines above and uncomment line -1-.
#-1-firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver

#Metadata
service_quantum_metadata_proxy = True
quantum_metadata_proxy_shared_secret = helloOpenStack

# Compute #
compute_driver=libvirt.LibvirtDriver

# Cinder #
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900
cinder_catalog_info=volume:cinder:internalURL

راه اندازی مجدد خدمات nova-*:

cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done

اولین ماشین مجازی شما

برای راه اندازی اولین ماشین مجازی ، ابتدا باید یک tenant، کاربر و شبکه داخلی جدید ایجاد کنیم.

keystone tenant-create --name project_one

یک کاربر جدید ایجاد کنید و نقش عضو را در tenant جدید به آن اختصاص دهید:

keystone user-create --name=user_one --pass=user_one --tenant-id $put_id_of_project_one --email=user_one@domain.com
keystone user-role-add --tenant-id $put_id_of_project_one  --user-id $put_id_of_user_one --role-id $put_id_of_member_role

یک شبکه جدید برای آن ایجاد کنید:

quantum net-create --tenant-id $put_id_of_project_one net_proj_one

یک زیر شبکه جدید در شبکه tenant جدید ایجاد کنید:

quantum subnet-create --tenant-id $put_id_of_project_one net_proj_one 50.50.1.0/24 --dns_nameservers list=true 8.8.8.7 8.8.8.8

یک روتر برای tenant جدید ایجاد کنید:

quantum router-create --tenant-id $put_id_of_project_one router_proj_one

روتر را به عامل l3 در حال اجرا اضافه کنید (اگر به طور خودکار اضافه نشده باشد):

quantum agent-list (to get the l3 agent ID)
quantum l3-agent-router-add $l3_agent_ID router_proj_one

روتر را به subnet اضافه کنید:

quantum router-interface-add $put_router_proj_one_id_here $put_subnet_id_here

راه اندازی مجدد تمام سرویس های کوانتومی:

cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i restart; done

یک شبکه خارجی با شناسه tenant متعلق به admin tenant ایجاد کنید.

quantum net-create --tenant-id $put_id_of_admin_tenant ext_net --router:external=True

یک زیر شبکه برای IP های شناور ایجاد کنید:

quantum subnet-create --tenant-id $put_id_of_admin_tenant --allocation-pool start=192.168.100.102,end=192.168.100.126 --gateway 192.168.100.1 ext_net 192.168.100.100/24 --enable_dhcp=False

حالا router’s gatewayخود را به شبکه خارجی تنظیم کنید:

quantum router-gateway-set $put_router_proj_one_id_here $put_id_of_ext_net_here

این قوانین امنیتی را اضافه کنید تا بتوانید پینگ ماشین های مجازی را بگیرید:

nova --no-cache secgroup-add-rule default icmp -1 -1 0.0.0.0/0
nova --no-cache secgroup-add-rule default tcp 22 22 0.0.0.0/0

با اختصاص یک IP شناور به tenant پروژه شروع کنید:

quantum floatingip-create ext_net

یک VM راه اندازی کنید:

nova --no-cach








e boot --image $id_myFirstImage --flavor 1 my_first_vm

شناسه پورت مربوط به VM خود را انتخاب کنید:

quantum port-list

IP شناور را به VM متصل کنید:

quantum floatingip-associate $put_id_floating_ip $put_id_vm_port

تمام شد!  پینگ VM خود را بگیرید و از OpenStack لذت ببرید.