티스토리 뷰


데브스택을 이용해서 오픈스택 Neutron 설치하기

앞에서 데브스택 공식 설치 문서를 이용하여 네트워크 구성도를 그려봤습니다. 그럼, 여기서는 네트워크 구성도에 따라 VirtualBox에 가상서버를 생성하고 그 위에 데브스택을 설치해 보겠습니다.



VirtualBox에서 가상 서버 생성

 VirtualBox에서 가상 서버를 생성하는 방법은 이미 앞에서 다루었습니다. 이번에는 가상 서버 생성 시 이전과 다르게 설정할 부분만 따로 살펴보겠습니다.

 


1.     VirtualBox를 이용해서 가상 서버를 만들고 [설정]을 클릭합니다. 설정 창이 열리면 [시스템]에서 CPU를 설정하고, [저장소]에서 우분투 서버를 설정한 후 [네트워크]를 선택합니다. [어댑터 1] 탭에서 [호스트 전용 어댑터]를 선택하고 고급에서 무작위 모드를 [모두 허용]으로 선택합니다. 지금 설정한 어댑터는 우분투 서버의 enp0s3이며 관리용 네트워크로 사용됩니다.


 

2.     [어댑터 2] 탭을 선택하고 [브리지 어댑터]를 선택합니다. 그리고, 고급에서 무작위 모드를 [모두 허용]으로 선택합니다. 여기서 설정한 어댑터는 우분투 서버의 enp0s8이 되며, 외부용 네트워크로 사용됩니다.

 

 

데브스택 설치

VirtualBox를 이용해서 가상 서버를 생성하고 생성한 가상 서버에 우분투를 설치했습니다. 오픈스택 공식 매뉴얼로 제공되는 데브스택 설치 매뉴얼을 이용하여 어떻게 뉴트론 네트워크를 구성하면 되는지를 알아보고, 데브스택을 설치 하겠습니다.



1.     VirtualBox를 이용하여 우분투 서버를 생성하였으며, SSH 클라이언트를 통해 생성한 우분투 서버에 접속합니다. 그리고, vi 에디터를 이용해 /etc/network/interfaces를 아래와 같이 수정합니다. 이때 사용되는 IP는 네트워크 구성도에서 미리 설정했던 IP를 입력합니다.

root@devstack:~# vi /etc/network/interfaces

 

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

 

source /etc/network/interfaces.d/*

 

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

auto enp0s3

iface enp0s3 inet static

   address 192.168.56.103

   netmask 255.255.255.0

   gateway 192.168.56.1

 

auto enp0s8

iface enp0s8 inet static

   address 192.168.0.22

   netmask 255.255.255.0

   gateway 192.168.0.1

 


2.     IP 설정이 완료되었으면, 설정한 IP를 아래와 같은 명령어를 이용하여 시스템에 반영합니다. 그리고, 설정이 제대로 되었는지 ifconfig 명령을 이용하여 확인합니다.

root@devstack:~# systemctl restart networking

root@devstack:~# ifconfig

enp0s3    Link encap:Ethernet  HWaddr 08:00:27:b6:2d:a7 

          inet addr:192.168.56.103  Bcast:192.168.56.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:feb6:2da7/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:234 errors:0 dropped:0 overruns:0 frame:0

          TX packets:589 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:23856 (23.8 KB)  TX bytes:49794 (49.7 KB)

 

enp0s8    Link encap:Ethernet  HWaddr 08:00:27:9f:df:14 

          inet addr:192.168.0.22  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe9f:df14/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:48152 errors:0 dropped:0 overruns:0 frame:0

          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:40428565 (40.4 MB)  TX bytes:1332 (1.3 KB)

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:438 errors:0 dropped:0 overruns:0 frame:0

          TX packets:438 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:27980 (27.9 KB)  TX bytes:27980 (27.9 KB)

 


3.     DevStack을 설치하기 위한 stack 계정을 생성하고, 패스워드 입력없이도 sudo를 사용할 수 있도록 /etc/sudoers에 아래와 같이 추가합니다. 그리고, 패스워드를 설정합니다.

root@devstack:~# useradd -U -G sudo -s /bin/bash -m stack

root@devstack:~# echo "stack ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

root@devstack:~# passwd stack

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

root@devstack:~#

 


4.     Stack 계정이 추가되면 root 계정에서 stack 계정으로 사용자를 전환합니다.

root@devstack:~# su stack

To run a command as administrator (user "root"), use "sudo <command>".

See "man sudo_root" for details.

 

stack@devstack:/root$ cd

stack@devstack:~$

 


5.     git을 이용해 데브스택 쉘 스크립트를 받습니다. 이때 만일 특정 버전의 오픈스택을 설치하고 싶다면 –b 옵션을 사용하여 설치할 수 있습니다. 설치할 데브스택의 버전은 다음 URL에서 확인할 수 있습니다. (데브스택 Git 사이트 : https://git.openstack.org/cgit/openstack-dev/devstack)

stack@devstack:~$ git clone https://git.openstack.org/openstack-dev/devstack

Cloning into 'devstack'...

remote: Counting objects: 33951, done.

remote: Compressing objects: 100% (16089/16089), done.

remote: Total 33951 (delta 24108), reused 26880 (delta 17412)

Receiving objects: 100% (33951/33951), 6.60 MiB | 974.00 KiB/s, done.

Resolving deltas: 100% (24108/24108), done.

Checking connectivity... done.

stack@devstack:~$

 


6.     DevStack를 다운로드 받았으면 이번에는 local.conf 파일을 생성하고, 환경설정을 해보겠습니다. Vi 에디터를 이용해 아래와 같이 local.conf을 열고, 오픈스택 기본 정보와 Nova-network 서비스를 비활성화 하고, Neutron 네트워크 서비스를 활성화합니다. 그리고, Netron 네트워크 정보들을 그 아래와 함께 입력합니다. 이때, 입력하는 IP들은 위에서 미리 그려본 네트워크 구성도에 따라서 설정하면 됩니다. 

stack@devstack:~/devstack$ vi local.conf

 [[local|localrc]]

HOST_IP=192.168.56.103

SERVICE_HOST=192.168.56.103

MYSQL_HOST=192.168.56.103

RABBIT_HOST=192.168.56.103

GLANCE_HOSTPORT=192.168.56.103:9292

ADMIN_PASSWORD=openstack

DATABASE_PASSWORD=openstack

RABBIT_PASSWORD=openstack

SERVICE_PASSWORD=openstack

 

# Do not use Nova-Network

disable_service n-net

# Enable Neutron

ENABLED_SERVICES+=,q-svc,q-dhcp,q-meta,q-agt,q-l3

 

## Neutron options

Q_USE_SECGROUP=True

FLOATING_RANGE="192.168.0.0/24"

FIXED_RANGE="10.0.0.0/24"

Q_FLOATING_ALLOCATION_POOL=start=192.168.0.100,end=192.168.0.200

PUBLIC_NETWORK_GATEWAY="192.168.0.1"

PUBLIC_INTERFACE=enp0s8

 

# Open vSwitch provider networking configuration

Q_USE_PROVIDERNET_FOR_PUBLIC=True

OVS_PHYSICAL_BRIDGE=br-enp0s8

PUBLIC_BRIDGE=br-enp0s8

OVS_BRIDGE_MAPPINGS=public:br-enp0s8

 


7.     localrc 파일 설정이 완료되면 stack.sh를 실행하고 네트워크 상황에 따라 40분~ 50분 정도 기다리면 설치가 완료됩니다.

stack@devstack:~/devstack$ ./stack.sh

+ unset GREP_OPTIONS

+ umask 022

+ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/sbin:/usr/sbin:/sbin

+++ dirname ./stack.sh

=========================

DevStack Component Timing

=========================

Total runtime         1564

 

run_process            67

test_with_retry         3

apt-get-update         11

pip_install           303

restart_apache_server  12

wait_for_service        9

git_timed             427

apt-get               113

=========================

 

 

 

This is your host IP address: 192.168.56.103

This is your host IPv6 address: ::1

Horizon is now available at http://192.168.56.103/dashboard

Keystone is serving at http://192.168.56.103:5000/

The default users are: admin and demo

The password: openstack

2016-05-25 01:51:11.914 | stack.sh completed in 1564 seconds.

stack@devstack:~/devstack$

 

댓글
  • 프로필사진 비밀댓글입니다 2016.09.12 02:18
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang DevStack의 특성이 원래 재부팅하면 모두 사라지는것이 특성입니다.

    초기화 하는 방법은 있는데, 다시 stack.sh 를 실행하면 초기화가 됩니다.
    2016.09.19 14:01 신고
  • 프로필사진 stacker 안녕하세요. 블로그에 많은 도움을 받고 있습니다~ 감사합니다.
    한가지 궁금한점이 있어 질문을 올립니다.
    VirtualBox에서 어댑터1을 관리용으로 사용하기 위해 Host 전용 어댑터를 선택하라고 하셨는데요
    그러면 Ubuntu 설치할 때 Primary Network를 enp08(브릿지 네트워크)를 선택해야 하는건가요?
    enp0s3을 Primary로 설정하면 설치 후 인터넷에 접속할 수가 없더라구요.
    아니면 Routing설정을 해야하는건지... 네트워크는 참 난해하네요~
    도움 부탁드립니다~
    2016.10.07 14:59
  • 프로필사진 naleejang 인터넷을 하셔야 하니가 인터넷이 되는 브릿지 네트워크를 선택하셔야 합니다.

    아니면, NAT 하나, 관리용 호스트 어댑터 하나, 인트라넷 접속용 호스트 어댑터 하나 혹은 브리지 네트워크 하나로 설정하셔야 합니다.
    2016.10.10 11:59
  • 프로필사진 honx 안녕하세요 블로그와 책을 통해서 정말 많은 도움 받고 있습니다!^^
    책을 따라가던 도중에 윈도우에 virtualbox를 통해 우분투 환경을 설치해서
    devstack을 이용하는 과정 중에 해결이 안되는 문제가 있어서 여쭤보고 싶어서 댓글을 달게 되었습니다.
    일단 올려 놓으신 매뉴얼대로 static ip를 할당하고 networking service를 재시작하려고 하면 자꾸 오류가 납니다.
    enp0s3만 할당했을 때는 이상이 없는데 enp0s8에 할당하려고 하면 failed가 뜹니다.
    혹시 이 경우에 어떤 부분에 문제가 있는지 여쭤보고 싶고,
    그리고 하나 더 여쭤보고 싶은게 우분투 설치할 때 primary network를 enp0s8로 줬는데
    interfaces에서 enp0s3을 설정하게 되면 인터넷이 계속 안되더라구요.
    route table을 확인해보니 default가 enp0s3 쪽 gateway로 변경되는걸 보니
    interfaces에서 설정한 순서에 따라 primary network가 정해지는게 아닐까 생각을 하고 enp0s8를 enp0s3 앞에 설정을 해주려고 하니
    이 경우에도 networking service가 동작을 안합니다.
    여기까지 찾아와서 질문 드려 죄송합니다. 답변 부탁드리겠습니다. 감사합니다.
    2017.07.22 18:28
  • 프로필사진 naleejang 현재 사용하는 네트워크 환경에 따라서 다양한 문제가 발생할 수 있습니다.

    사용하신 네트워크 환경이 어떻게 되시는지 모르겠지만, 브리지 모드로 설정을 했다면 인터넷이 되는것이 당연하겠지요. 그리고, dhcp모드로 할당받은 IP를 설정해 주면 인터넷이 안되는 문제를 해결하실 수 있을 듯 합니다.
    2017.07.22 21:42
  • 프로필사진 hoons 안녕하세요, 덕분에 좋은 책을 보고 있습니다~!
    한가지 여쭤보고 싶은데요,
    ens0s3과 ens0s8 두개의 gateway를 잡아주면,
    우분투에서 systemctl restart networking 진행 시 fail이 발생합니다.
    아마도 앞에 분들과 비슷한 에러이지 않을까 싶은데요, 책에서 나온대로 virtualbox 설정이나 우분투 설정은 모두 따라했는데요, 이부분에서 막히네요ㅡㅡ;
    더불어 dns는 안잡아줘도 되나요??
    바쁘실텐데, 답변 부탁드립니다. 감사합니다~!
    2018.08.08 00:02
댓글쓰기 폼