'Kilo'에 해당되는 글 2건

  1. 2015.10.13 OpenStack Kilo Single Node install (45)
  2. 2015.10.03 DevStack을 활용한 OpenStack Kilo 설치 - DVR (35)

OpenStack Kilo Single Node install

OpenStack/Install_OpenStack 2015.10.13 22:19

서버 하나에 OpenStack 설치


OpenStack을 설치하는 방법에는 여러가지가 있다.


대표적으로 Single Node / Multi Node로 나뉠 수 있는데 Single Node는 서버 하나에 모든 OpenStack을 설치하는 것이고 Multi Node는 OpenStack 서비스에 맞게 서버를 나뉘어 설치하는 것이다.


보통 Single Node에 설치하는 경우 DevStack 또는 ContOS에서 PackStack을 사용하곤 한다.

(CentOS 에서 사용하는 PackStack은 매우 매력적이다.)


DevStack을 이용하는 경우 설치 및 실행에는 문제가 없으나 서비스 별 리스타트를 해야하는 경우 꽤 복잡한 절차가 기다리고 있다.


이런 경우에 '그냥 서버 하나에 모두 설치할걸..' 하는 생각을 많이 하곤 한다.


본 포스팅은 서버하나에 OpenStack Kilo 버전을 설치하는 내용이다. (VirtualBox 및 VMware를 사용하지 않는다)



OpenStack Single Node Install (Kilo version)




1. 기본 설정


1-1. IP 설정

    • neutron 인스톨 이후에 br-ex를 사용
    • neutron 인스톨 전에는 eth0에 br-ex에 설정할 IP 내용이 적용되어야 함

$ sudo vi /etc/network/interfaces


# Public Network

auto br-ex

iface br-ex inet static

      address <Public_IP>

      gateway <Public Network GW>

      netmask 255.255.255.0

      dns-nameservers 8.8.8.8 8.8.4.4


auto eth0

iface eth0 inet manual

      up ip link set dev $IFACE up

      down ip link set dev $IFACE down


# Management Network

auto eth1

iface eth1 inet static

      address 10.0.0.5

      netmask 255.255.255.0


# Data Network

auto eth2

iface eth2 inet static

      address 20.0.0.5

      netmask 255.255.255.0


1-2. 업데이트 & 업그레이드 / 필수 프로그램 설치


$ sudo apt-get update

$ sudo apt-get -y upgrade


1-3. OpenStack Kilo Repository 설정


apt-get install ubuntu-cloud-keyring

$ sudo su

$ sudo echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list

$ exit

$ sudo apt-get update

$ sudo apt-get -y upgrade


$ sudo reboot



2. RabbitMQ Server


2-1. RabbitMQ Server install


sudo apt-get install -y rabbitmq-server


2-2. change user guest password

  • 본 예제에서 guest 사용자에 대한 password는 rabbit으로 교체

sudo rabbitmqctl change_password guest rabbit



3. MYSQL Server


3-1. MySql Server install

  • root password를 설정

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


3-2. MySql 설정


sudo vi /etc/mysql/my.cnf


--------------------------------------------------------------

...

[mysqld]

...

bind-address = 0.0.0.0

default-storage-engine = innodb

innodb_file_per_table

collation-server = utf8_general_ci

init-connect = 'SET NAMES utf8'

character-set-server = utf8

...

--------------------------------------------------------------


3-3. MySql Server 재실행


sudo service mysql restart



4. NTP 및 Utility


4-1. ntp/vlan/bridge-utils install


sudo apt-get install -y ntp vlan bridge-utils


4-2. NTP 설정


sudo vi /etc/sysctl.conf


--------------------------------------------------------------

net.ipv4.ip_forward=1

net.ipv4.conf.all.rp_filter=0

net.ipv4.conf.default.rp_filter=0

--------------------------------------------------------------


4-3. NTP 재실행


sudo sysctl -p



5. Keystone


5-1. keystone install


sudo apt-get install -y keystone


5-2. keystone DB 테이블 생성


$ mysql -u root -p


CREATE DATABASE keystone;

# GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone_dbpass';

# quit


5-3. keystone 설정


$ sudo vi /etc/keystone/keystone.conf


--------------------------------------------------------------

...

connection = mysql://keystone:keystone_dbpass@<management_ip>/keystone

...

--------------------------------------------------------------


5-4. keystone 재실행 및 DB sync


sudo service keystone restart

$ sudo keystone-manage db_sync


5-5. keystone 사용자 등록


export OS_SERVICE_TOKEN=ADMIN

$ export OS_SERVICE_ENDPOINT=http://<management_ip>:35357/v2.0


$ keystone tenant-create --name=admin --description="Admin Tenant"

$ keystone tenant-create --name=service --description="Service Tenant"

$ keystone user-create --name=admin --pass=admin --email=admin@example.com

$ keystone role-create --name=admin

$ keystone user-role-add --user=admin --tenant=admin --role=admin


5-6. keystone 서비스 및 endpoint 생성


keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"

$ keystone endpoint-create --region=testbed01 --service=keystone --publicurl=http://<management_ip>:5000/v2.0 --internalurl=http://<management_ip>:5000/v2.0 --adminurl=http://<management_ip>:35357/v2.0


5-7. export 정보 삭제


unset OS_SERVICE_TOKEN

$ unset OS_SERVICE_ENDPOINT


5-8. keystone admin 계정 파일 생성


$ vi admin_keystone


--------------------------------------------------------------

export OS_USERNAME=admin

export OS_PASSWORD=admin

export OS_TENANT_NAME=admin

export OS_AUTH_URL=http://<management_ip>:35357/v2.0

--------------------------------------------------------------


5-9. keystone 동작 및 토큰 확인


source admin_keystone


$ keystone token-get

$ keystone user-list



6. Glance


6-1. glance install


sudo apt-get install -y glance


6-2. glance DB 테이블 생성


mysql -u root -p


# CREATE DATABASE glance;

# GRANT ALL ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance_dbpass';

# quit


6-3. keystone 사용자 glance 등록


keystone user-create --name=glance --pass=glance_pass --email=glance@example.com

$ keystone user-role-add --user=glance --tenant=service --role=admin

$ keystone service-create --name=glance --type=image --description="Glance Image Service"

$ keystone endpoint-create --region=testbed01 --service=glance --publicurl=http://<management_ip>:9292 --internalurl=http://<management_ip>:9292 --adminurl=http://<management_ip>:9292



6-4. glance 설정


sudo vi /etc/glance/glance-api.conf


--------------------------------------------------------------

...

rabbit_password = rabbit

...

# sqlite_db = /var/lib/glance/glance.sqlite

connection = mysql://glance:glance_dbpass@<management_ip>/glance

...


[keystone_authtoken]

identity_uri = http://<management_ip>:35357

admin_tenant_name = service

admin_user = glance

admin_password = glance_pass

...


[paste_deploy]

flavor = keystone

...

--------------------------------------------------------------


sudo vi /etc/glance/glance-registry.conf


--------------------------------------------------------------

...

rabbit_password = rabbit

...

# sqlite_db = /var/lib/glance/glance.sqlite

connection = mysql://glance:glance_dbpass@<management_ip>/glance


...

[keystone_authtoken]

identity_uri = http://<management_ip>:35357

admin_tenant_name = service

admin_user = glance

admin_password = glance_pass


...

[paste_deploy]

flavor = keystone

...

--------------------------------------------------------------


6-5. glance 재실행


sudo service glance-api restart

$ sudo service glance-registry restart


6-6. glance DB sync 및 이미지 등록/확인


sudo glance-manage db_sync


$ glance image-create --name Cirros --is-public true --container-format bare --disk-format qcow2 --location https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img


$ glance image-list



7. NOVA


7-1. nova install


sudo apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient nova-compute nova-console


7-2. nova DB 테이블 생성


mysql -u root -p


# CREATE DATABASE nova;

# GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova_dbpass';

# quit


7-3. keystone 사용자 nova 등록


keystone user-create --name=nova --pass=nova_pass --email=nova@example.com

$ keystone user-role-add --user=nova --tenant=service --role=admin

$ keystone service-create --name=nova --type=compute --description="OpenStack Compute"

$ keystone endpoint-create --region=testbed01 --service=nova --publicurl=http://<management_ip>:8774/v2/%\(tenant_id\)s --internalurl=http://<management_ip>:8774/v2/%\(tenant_id\)s --adminurl=http://<management_ip>:8774/v2/%\(tenant_id\)s


7-4. nova 설정


sudo vi /etc/nova/nova.conf


--------------------------------------------------------------

[DEFAULT]

dhcpbridge_flagfile=/etc/nova/nova.conf

dhcpbridge=/usr/bin/nova-dhcpbridge

logdir=/var/log/nova

state_path=/var/lib/nova

lock_path=/var/lock/nova

force_dhcp_release=True

libvirt_use_virtio_for_bridges=True

verbose=True

ec2_private_dns_show_ip=True

api_paste_config=/etc/nova/api-paste.ini

enabled_apis=ec2,osapi_compute,metadata

rpc_backend = rabbit

auth_strategy = keystone

my_ip = <management_ip>

vnc_enabled = True

vncserver_listen = <management_ip>

vncserver_proxyclient_address = <management_ip>

novncproxy_base_url = http://<public_ip>:6080/vnc_auto.html


network_api_class = nova.network.neutronv2.api.API

security_group_api = neutron

linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver

firewall_driver = nova.virt.firewall.NoopFirewallDriver


scheduler_default_filters=AllHostsFilter


[database]

connection = mysql://nova:nova_dbpass@<management_ip>/nova


[oslo_messaging_rabbit]

rabbit_host = 127.0.0.1

rabbit_password = rabbit


[keystone_authtoken]

auth_uri = http://<management_ip>:5000

auth_url = http://<management_ip>:35357

auth_plugin = password

project_domain_id = default

user_domain_id = default

project_name = service

username = nova

password = nova_pass


[glance]

host = <management_ip>


[oslo_concurrency]

lock_path = /var/lock/nova


[neutron]

service_metadata_proxy = True

metadata_proxy_shared_secret = openstack

url = http://<management_ip>:9696

auth_strategy = keystone

admin_auth_url = http://<management_ip>:35357/v2.0

admin_tenant_name = service

admin_username = neutron

admin_password = neutron_pass

--------------------------------------------------------------


sudo vi /etc/nova/nova-compute.conf


[DEFAULT]

compute_driver=libvirt.LibvirtDriver

[libvirt]

virt_type=qemu


7-5. nova DB sync 및 재실행/확인


sudo nova-manage db sync


$ sudo service nova-api restart

$ sudo service nova-cert restart

$ sudo service nova-consoleauth restart

$ sudo service nova-scheduler restart

$ sudo service nova-conductor restart

$ sudo service nova-novncproxy restart

$ sudo service nova-compute restart

$ sudo service nova-console restart


$ sudo nova-manage service list



8. Neutron


8-1. neutron install


sudo apt-get install -y neutron-server neutron-plugin-openvswitch neutron-plugin-openvswitch-agent neutron-common neutron-dhcp-agent neutron-l3-agent neutron-metadata-agent openvswitch-switch


8-2. neutron DB 테이블 생성


mysql -u root -p


# CREATE DATABASE neutron;

# GRANT ALL ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron_dbpass';

# quit


8-3. keystone 사용자 neutron 등록


keystone user-create --name=neutron --pass=neutron_pass --email=neutron@example.com

$ keystone service-create --name=neutron --type=network --description="OpenStack Networking"

$ keystone user-role-add --user=neutron --tenant=service --role=admin

$ keystone endpoint-create --region=testbed01 --service=neutron --publicurl http://<management_ip>:9696 --adminurl http://<management_ip>:9696  --internalurl http://<management_ip>:9696


8-4. neutron 설정


sudo vi /etc/neutron/neutron.conf


--------------------------------------------------------------

[DEFAULT]

......

verbose = True

debug = True

core_plugin = ml2

service_plugins = router

auth_strategy = keystone

allow_overlapping_ips = True

notify_nova_on_port_status_changes = True

notify_nova_on_port_data_changes = True

nova_url = http://<management_ip>:8774/v2

nova_region_name = testbed01

...

rpc_backend=rabbit


[agent]

......

root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf


[keystone_authtoken]

auth_uri = http://<management_ip>:5000

auth_url = http://<management_ip>:35357

auth_plugin = password

project_domain_id = default

user_domain_id = default

project_name = service

username = neutron

password = neutron_pass


[database]

......

connection = mysql://neutron:neutron_dbpass@<management_ip>/neutron


[nova]

......

auth_url = http://<management_ip>:35357

auth_plugin = password

project_domain_id = default

user_domain_id = default

region_name = testbed01

project_name = service

username = nova

password = nova_pass


[oslo_concurrency]

......

lock_path = /var/lock/neutron/


[oslo_messaging_rabbit]

......

rabbit_host = localhost

rabbit_userid = guest

rabbit_password = rabbit

rabbit_virtual_host = /

--------------------------------------------------------------


sudo vi /etc/neutron/plugins/ml2/ml2_conf.ini


--------------------------------------------------------------

[ml2]

type_drivers = flat,vlan,gre,vxlan

tenant_network_types=vxlan

mechanism_drivers=openvswitch

...


[ml2_type_gre]

tunnel_id_ranges = 1:1000


[ml2_type_vxlan]

vni_ranges = 1001:2000


[securitygroup]

enable_security_group=True

enable_ipset = True

firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver


[ovs]

local_ip = <data_ip>

tunnel_type = vxlan

tunnel_bridge = br-tun

integration_bridge = br-int

tunnel_id_ranges=1001:2000

tenant_network_type = vxlan

enable_tunneling = True


[agent]

minimize_polling = True

root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf

tunnel_types = vxlan

vxlan_udp_port = 4789

l2_population = False

--------------------------------------------------------------


sudo vi /etc/neutron/metadata_agent.ini


--------------------------------------------------------------

[DEFAULT]

auth_url = http://<management_ip>:5000/v2.0

auth_region = testbed01

admin_tenant_name = service

admin_user = neutron

admin_password = neutron_pass

metadata_proxy_shared_secret = openstack

--------------------------------------------------------------


sudo vi /etc/neutron/dhcp_agent.ini


--------------------------------------------------------------

[DEFAULT]

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

use_namespaces = True

--------------------------------------------------------------


sudo vim /etc/neutron/l3_agent.ini


--------------------------------------------------------------

[DEFAULT]

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

use_namespaces = True

--------------------------------------------------------------


8-5. ovs 브릿지 생성 및 포트 바인딩

    • 최초 설정한 네트워크(/etc/network/interfaces)의 br-ex 활성화

$ sudo ovs-vsctl add-br br-ex

$ sudo ovs-vsctl add-port br-ex eth0


8-6. neutron DB sync 및 재실행


sudo neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade kilo


$ sudo service neutron-server restart

$ sudo service neutron-plugin-openvswitch-agent restart

$ sudo service neutron-metadata-agent restart

$ sudo service neutron-dhcp-agent restart

$ sudo service neutron-l3-agent restart



9. Horizon


9-1. horizon install


sudo apt-get install -y openstack-dashboard



10. 사용자 UI 접속 및 서비스 사용


horizon url : http://<public_ip>/horizon


user name : admin

password : admin



Trackbacks 0 : Comments 45

DevStack을 활용한 OpenStack Kilo 설치 - DVR

OpenStack/Install_OpenStack 2015.10.03 10:57

DevStack kilo 기반 DVR


OpenStack을 설치하면서 고생고생 한 사람들은 DevStack의 위대함을 새삼 느끼게 된다!!!


사실 OpenStack Kilo 버전이 나오면서 OpenStack 설치 및 설정이 매우 간편해지고 안정적으로 설치되는 편이지만 처음 접하는 사람들은 쉽지않을 것이다.


대부분의 OpenStack 입문자들이 만나게 되는 솔루션이 바로 DevStack인데 매우 간단하게 OpenStack이 설치된다.


본 포스팅에서는 DevStack을 사용한 OpenStack Kilo Install을 알아보고자 한다.



DevStack Kilo Install



사실 DevStack이라고 하는 것은 쉽게 말하면 OpenStack을 구성하는 각 Node에 각각 모듈을 다운 받고 DB 테이블을 생성하고 Keystone 사용자를 추가하고 각 서비스별 설정 과정을 프로그래밍화 하여 local.conf 또는 localrc 파일에 정보를 입력하면 이 파일을 가지고 OpenStack 설치를 자동화(?)하는 편리한 툴이다.


즉, 사용자는 local.conf 또는 localrc 파일만 적절하게 만들면 그 뒤는 알아서 설치 및 설정하게 되는 것이다.


본 포스팅에서는 VirtualBox를 활용하여 DevStack을 인스톨하고자 한다.



1. 준비 및 기본


1-1. VirtualBox



    • 사용 이미지
      • Ubuntu 14.04.3 Desktop 또는 이에 준하는 이미지 (예: Lubuntu 14.04.3 Desktop)
    • VirtualBox 네트워크 구성
      • 어댑터1: NAT
      • 어댑터2: Host-Only
    • 생성 VM
      • controlnode
      • networknode
      • computenode


1-2. VM 기본 설정

    • 네트워크 구성
      • eth0: VirtualBox의 NAT
      • eth1: VirtualBox의 VM 사이의  통신을 위한 인터페이스 (OpenStack의 Management Network)
    • 사용자
      • devstack 관련한 기본 사용자는 stack으로 되어 있기 때문에 될 수 있으면 VM 설치시 user 이름을 stack으로 한다.

1-3. controlnode 네트워크 기본 설정

$ sudo vi /etc/network/interfaces

------------------------------------------------------------------------
# interfaces(5) file used by ifup(8) and ifdown(8)
#auto lo
#iface lo inet loopback

auto eth0
iface eth0 inet static
        address 10.0.2.100
        gateway 10.0.2.2
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8 8.8.4.4

auto eth1
iface eth1 inet static
        address 192.168.56.100
        netmask 255.255.255.0
-------------------------------------------------------------------------
$ sudo reboot


1-4. networknode 네트워크 기본 설정

$ sudo vi /etc/network/interfaces

------------------------------------------------------------------------
# interfaces(5) file used by ifup(8) and ifdown(8)
#auto lo
#iface lo inet loopback

auto eth0
iface eth0 inet static
        address 10.0.2.101
        gateway 10.0.2.2
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8 8.8.4.4

auto eth1
iface eth1 inet static
        address 192.168.56.101
        netmask 255.255.255.0
-------------------------------------------------------------------------
$ sudo reboot


1-5. computenode 네트워크 기본 설정

$ sudo vi /etc/network/interfaces

------------------------------------------------------------------------
# interfaces(5) file used by ifup(8) and ifdown(8)
#auto lo
#iface lo inet loopback

auto eth0
iface eth0 inet static
        address 10.0.2.102
        gateway 10.0.2.2
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8 8.8.4.4

auto eth1
iface eth1 inet static
        address 192.168.56.102
        netmask 255.255.255.0
-------------------------------------------------------------------------
$ sudo reboot

1-6. 공통 기본 설정
    • 기본 설정

$ sudo su

$ apt-get update

$ apt-get upgrade

$ apt-get dist-upgrade

$ reboot

    • DevStack 다운로드
$ sudo apt-get install -y git
$ git clone -b stable/kilo https://github.com/openstack-dev/devstack.git
    • DevStack 디렉토리 확인
$ cd devstack
$ ls


다음과 같이 파일을 확인할 수 있으면 정상적으로 다운로드 받은 것 이다.



위 그림에서 보는 것 처럼 devstack 디렉토리에 위치한 파일들이 내가 설정한 OpenStack을 구성하게 된다.


devstack 디렉토리 파일 중 유심히 보아야 할 파일은 stack.sh 파일이다.


local.conf 또는 localrc 파일의 설정값을 읽어서 실제 OpenStack 구성을 하는 스크립트인데 ./stack.sh 명령으로 실행된다.



2. DevStack 인스톨


DevStack은 서두에서 설명한 것 처럼 local.conf 또는 localrc 파일을 활용하여 설치한다.


DevStack은 local.conf/localrc 파일에 따라서 다음과 같이 설치된다.

    • All-in-one 설치 : VirtualBox에서 생성한 하나의 VM에 OpenStack의 Control/Network/Compute 모두 설치
    • Milti-node 설치 : VirtualBox에 각각의 Node에 해당하는 VM을 생성하고 Node별 설치

본 포스팅에서는 DVR을 활용하는 DevStack을 구성하고자 한다.

    • Control Node (VirtualBox VM) : OpenStack의 Control Node 설치
    • Network Node (VirtualBox VM) : OpenStack의 Network Node 설치 
    • Compute Node (VirtualBox VM) : OpenStack의 Compute Node 설치
즉, 위에서 생성한 VM이 3개 필요하다는 의미이다. (당연히 IP는 달라야 한다)


2-1. local.conf 파일 생성 (Control Node)

본 파일은 http://assafmuller.com/2015/04/06/multinode-dvr-devstack/ 에서 참조함

$ cd devstack

$ vi local.conf


------------------------------------------------------------------------------------

[[local|localrc]]

DEST=/opt/stack

DATA_DIR=$DEST/data

LOGFILE=$DATA_DIR/logs/stack.log

SCREEN_LOGDIR=$DATA_DIR/logs

VERBOSE=True

MYSQL_PASSWORD=openstack

RABBIT_PASSWORD=openstack

SERVICE_TOKEN=openstack

SERVICE_PASSWORD=openstack

ADMIN_PASSWORD=openstack


disable_service n-net

enable_service neutron

enable_service q-svc

enable_service q-meta

enable_service q-agt

enable_service q-dhcp

enable_service q-l3


# TODO: Set this host's IP

HOST_IP=192.168.56.100


[[post-config|$NEUTRON_CONF]]

[DEFAULT]

router_distributed=True


[[post-config|/$Q_PLUGIN_CONF_FILE]]

[ml2]

type_drivers=flat,vlan,vxlan

tenant_network_types=vxlan

mechanism_drivers=openvswitch,l2population


[ml2_type_vxlan]

vni_ranges=1001:2000


[ovs]

local_ip=$HOST_IP


[agent]

tunnel_types=vxlan

l2_population=True

enable_distributed_routing=True


[[post-config|$Q_L3_CONF_FILE]]

[DEFAULT]

agent_mode=dvr

router_delete_namespaces=True


[[post-config|$Q_DHCP_CONF_FILE]]

[DEFAULT]

dhcp_delete_namespaces=True

------------------------------------------------------------------------------------------


2-2. Control Node DevStack 실행


$ ./stack.sh


2-3. local.conf 파일 생성 (Network Node)

본 파일은 http://assafmuller.com/2015/04/06/multinode-dvr-devstack/ 에서 참조함

$ cd devstack

$ vi local.conf


------------------------------------------------------------------------------------

[[local|localrc]]

DEST=/opt/stack

DATA_DIR=$DEST/data

LOGFILE=$DATA_DIR/logs/stack.log

SCREEN_LOGDIR=$DATA_DIR/logs

VERBOSE=True

MYSQL_PASSWORD=openstack

RABBIT_PASSWORD=openstack

SERVICE_TOKEN=openstack

SERVICE_PASSWORD=openstack

ADMIN_PASSWORD=openstack


ENABLED_SERVICES=neutron,q-agt,q-l3,q-meta


# TODO: Set this host's IP

HOST_IP=192.168.56.101


# TODO: Set the controller's IP

SERVICE_HOST=192.168.56.100

MYSQL_HOST=$SERVICE_HOST

RABBIT_HOST=$SERVICE_HOST

GLANCE_HOSTPORT=$SERVICE_HOST:9292


[[post-config|/$Q_PLUGIN_CONF_FILE]]

[ovs]

local_ip=$HOST_IP


[agent]

tunnel_types=vxlan

l2_population=True

enable_distributed_routing=True


[[post-config|$Q_L3_CONF_FILE]]

[DEFAULT]

agent_mode=dvr_snat

router_delete_namespaces=True

------------------------------------------------------------------------------------


2-4. Network Node DevStack 실행


$ ./stack.sh



2-5. local.conf 파일 생성 (Compute Node)

본 파일은 http://assafmuller.com/2015/04/06/multinode-dvr-devstack/ 에서 참조함

$ cd devstack

$ vi local.conf


------------------------------------------------------------------------------------

[[local|localrc]]

DEST=/opt/stack

DATA_DIR=$DEST/data

LOGFILE=$DATA_DIR/logs/stack.log

SCREEN_LOGDIR=$DATA_DIR/logs

VERBOSE=True

MYSQL_PASSWORD=openstack

RABBIT_PASSWORD=openstack

SERVICE_TOKEN=openstack

SERVICE_PASSWORD=openstack

ADMIN_PASSWORD=openstack


ENABLED_SERVICES=n-cpu,neutron,n-novnc,q-agt,q-l3,q-meta


# TODO: Set this host's IP

HOST_IP=192.168.56.102


# TODO: Set the controller's IP

SERVICE_HOST=192.168.56.100

MYSQL_HOST=$SERVICE_HOST

RABBIT_HOST=$SERVICE_HOST

Q_HOST=$SERVICE_HOST

GLANCE_HOSTPORT=$SERVICE_HOST:9292


VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP

VNCSERVER_LISTEN=0.0.0.0


[[post-config|/$Q_PLUGIN_CONF_FILE]]

[ovs]

local_ip=$HOST_IP


[agent]

tunnel_types=vxlan

l2_population=True

enable_distributed_routing=True


[[post-config|$Q_L3_CONF_FILE]]

[DEFAULT]

agent_mode=dvr

router_delete_namespaces=True

------------------------------------------------------------------------------------


2-6. Compute Node DevStack 실행


$ ./stack.sh




3. Horizon 확인


devstack 설치가 완료되면 horizon을 통하여 확인 가능하다.


contronnode의 devstack 설치 완료 메시지를 보면 horizon 주소 및 계정이 보인다.







4. DevStack 종료


devstack 실행 후 VM을 종료하기 위해서는 devstack 환경을 종료하여야 한다.


만일 그대로 VM을 종료한다면 문제가 발생할 수 있다.


각 노드에 다음과 같이 명령을 내린다.


$ cd devstack

$ ./unstack.sh



tags : devstack, DVR, Kilo
Trackbacks 0 : Comments 35