본문 바로가기

Cloud Native/Install_OpenStack

OpenStack Juno Install using DevStack

OpenStack Juno 버전 설치 - DevStack DVR 설정


이번 포스팅에서는 VirtualBox 기반으로 DevStack을 활용하려고 한다.



VirtualBox



VirtualBox를 통하여 3개의 VM을 생성한다.

VM은 각각 All-in-one Node, Network Node, Compute Node로 설치될 것이다.

VirtualBox VM 생성에 사용할 이미지는 ubuntu 14.04 Server 버전을 사용하였다.

네트워크는 호스트 전용 2개를 만들었으며 하나는 Management 다른 하나는 Tunnel 전용 포트로 사용할 것이다.



All-in-one Node

Controller Node 및 Compute Node가 하나의 VM에서 동작한다.

NIC는 다음과 같이 설정하였다.

  • eth0: 인터넷과 연결되는 IP로 NAT 설정
  • eth1: Management 포트, 호스트 전용
  • eth2: Tunnel 포트, 호스트 전용


Compute Node

NIC는 다음과 같이 설정하였다.


  • eth0: 인터넷과 연결되는 IP로 NAT 설정
  • eth1: Management 포트, 호스트 전용
  • eth2: Tunnel 포트, 호스트 전용


Network Node


NIC는 다음과 같이 설정하였다.


  • eth0: 인터넷과 연결되는 IP로 NAT 설정
  • eth1: Management 포트, 호스트 전용
  • eth2: Tunnel 포트, 호스트 전용



DevStack



모든 노드는 다음과 같이 업데이트 및 업그레이드를 시행하고 필요한 프로그램을 설치한다.



sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install -y git vim


모든 노드에 DevStack Juno 버전을 설치한다.


git clone -b stable/juno https://github.com/openstack-dev/devstack.git



All-in-one Node


cd devstack

vim local.conf


[[local|localrc]]

DEST=/opt/openstack

DATA_DIR=$DEST/data

LOGFILE=$DATA_DIR/logs/stack.log

SCREEN_LOGDIR=$DATA_DIR/logs

VERBOSE=False


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=<All-in-one Node Management IP>


[[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=1000:1999


[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


./stack.ch 



Compute Node


cd devstack

vim local.conf


[[local|localrc]]

DEST=/opt/openstack

DATA_DIR=$DEST/data

LOGFILE=$DATA_DIR/logs/stack.log

SCREEN_LOGDIR=$DATA_DIR/logs

VERBOSE=False


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=<Compute Node Management IP>


# TODO: Set the controller's IP

SERVICE_HOST=<All-in-one Node Management IP>

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


./stack.ch 



Network Node


cd devstack

vim local.conf


[[local|localrc]]

DEST=/opt/openstack

DATA_DIR=$DEST/data

LOGFILE=$DATA_DIR/logs/stack.log

SCREEN_LOGDIR=$DATA_DIR/logs

VERBOSE=False


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=<Network Node Management IP>


# TODO: Set the controller's IP

SERVICE_HOST=<All-in-one Node Management IP>

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 


./stack.ch