OpenStack Class 22016.08.02 15:51


Neutron을 설치하기 위한 네트워크 구성도를 그려보자


오픈스택을 설치하기 전에는 반드시 네트워크 구성도를 그려보고 설치해야 합니다. 네트워크 구성도를 그려보지 않고 설치하면 환경설정에서 어떤 IP를 설정해야 할지 몰라 당황하게 됩니다. 이번에는 오픈스택 공식 매뉴얼로 제공되는 데브스텍 설치 매뉴얼을 이용하여 어떻게 네트워크 구성도를 그리면 되는지를 함께 살펴보겠습니다.

 

1.     웹브라우저를 열어 데브스택 공식 문서(https://docs.openstack.org/developer/devstack)에 접속을 합니다.


2.     우측 메뉴에서 [DevStack with Neutron Networking]을 클릭합니다. 안내 메시지가 나오면 이때 [Neutron Networking] 을 클릭합니다. 그러면, 아래와 같은 화면을 확인할 수 있습니다.


3.     방문한 페이지의 하단에 보면 Physical Network Setup의 네트워크 구성도를 확인할 수 있습니다. 여기서는 가장 기본인 Physical Network Setup의 네트워크 구성도를 활용해 여기서 설치할 네트워크 구성도를 그려보겠습니다.

 


4.     이렇게 해서 완성된 네트워크 구성도는 아래와 같습니다.


우선, IP 공유기의 게이트웨이 IP 192.168.0.1이고, 서브넷마스크는 255.255.255.0이라고 가정합니다. VirtualBox를 설치한 맥 PC IP 192.168.0.12로 설정되어 있습니다. VirtualBox를 이용해 생성한 우분투 가상 서버는 ens0s3 ens0s8이라는 네트워크 디바이스가 두개입니다. ens0s8는 인터넷과 외부에서 접속할 수 있는 Floating IP의 통로 역할을 하며, ens0s3은 관리용 네트워크로 데쉬보드와 API를 접속할 수 있습니다. 외부 네트워크를 담당하는 Floating IP Range IP공유기 범위인 192.168.0.0/24를 사용하고, 2개의 가상 라우터와 연결이 되어 있습니다. 각각의 라우터는 테넌트 네트워크와 연결되어 있습니다. Router1에는 10.0.0.0/24 Fixed IP Range로 사용하고, Router2에는 10.0.1.0/24 Fixed IP Range로 사용합니다. Router1의 외부 게이트웨이는 192.168.0.100이고, Router2의 외부 게이트웨이는 192.168.0.101입니다. Nova-network와 달리 물리 네트워크와 연결되는 브리지 네트워크가 필요한데 이때 IP enp0s8 IP 192.168.0.22을 사용합니다. 이때 공유기 IP를 모두 다 사용하면 안되므로 할당 가능한 IP 범위를 설정해야 합니다. 할당 가능한 IP 범위는 192.168.0.100에서 192.168.0.200을 사용하겠습니다.

저작자 표시 비영리 변경 금지
신고
Posted by 나리 짱!!! naleejang
OpenStack Class 22016.07.23 15:49


SSH 클라이언트 툴을 이용한 인스턴스 접속

이번에는 SSH 클라이언트 툴을 이용해 방금 전에 생성한 인스턴스에 접속하겠습니다.

 

1.     [접근 & 보안]을 선택하고 [보안 그룹] 탭에 클릭합니다. 우선 default로 보안 규칙을 설정하겠습니다. [규칙 관리]를 클릭합니다.


2.     보안 그룹 규칙을 추가할 수 있는 페이지가 나타나면 [+규칙 추가]를 클릭합니다.

 

3.     Ping을 사용할 수 있는 ALL ICMP 규칙을 아래와 같이 추가합니다. 규칙 항목에서 [모든 ICMP]를 선택하면 원격 항목과 CIDR 항목의 내용으로 자동으로 채워집니다.


4.     이번에는 인스턴스에 안전하게 접속을 하기 위한 SSH 규칙을 아래와 같이 추가합니다.


5.     보안 그룹의 규칙을 추가하면 아래와 같이 추가된 규칙을 확인 할 수 있습니다


6.     이번에는 외부에서 접속할 수 있는 유동(Floating) IP를 설정하겠습니다. [접근 & 보안]에서 [Floating IP] 탭을 선택하고 [프로젝트에 IP 할당]을 클릭합니다.

 

7.     Floating IP 할당 창이 열리면 [IP 할당]을 클릭합니다.

 

8.     Floating IP가 할당되면 이번에는 IP를 인스턴스와 연결해야 합니다. 할당된 IP를 연결하는 방법은 두가지가 있는데 하나는 아래 화면의 [연결]버튼을 클릭하는 것과 인스턴스 화면에서 Floating IP 연결을 하는 방법이 있습니다.

 

9.     여기서는 인스턴스 창에서 Floating IP를 연결해 보겠습니다. 인스턴스 화면의 목록을 보면 생성된 인스턴스 마다 좌측에 작업이라는 항목을 가지고 있습니다. 스냅샷 생성 이라는 작업 버튼을 클릭하면 아래와 같이 다양한 작업 목록이 나오는데 이중에서 [Floating IP 연결]을 클릭합니다.

 

10.  그리고, 생성한 인스턴스와 IP를 선택하고 확인을 하면 아래와 같이 Floating IP가 인스턴스에 할당이 됩니다.

 

11.  이제 인스턴스에 접속할 준비가 모두 완료되었습니다. 이제 인스턴스에 접속을 해 보도록 하겠습니다. 우선, 터미널을 열고, ping 테스트를 먼저 해 보겠습니다.

naleejangui-MacBook-Pro:~ naleejang$ ping 192.168.0.226

PING 192.168.0.226 (192.168.0.226): 56 data bytes

64 bytes from 192.168.0.226: icmp_seq=0 ttl=63 time=1.937 ms

64 bytes from 192.168.0.226: icmp_seq=1 ttl=63 time=0.724 ms

64 bytes from 192.168.0.226: icmp_seq=2 ttl=63 time=0.629 ms

64 bytes from 192.168.0.226: icmp_seq=3 ttl=63 time=0.641 ms

^C

--- 192.168.0.226 ping statistics ---

4 packets transmitted, 4 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 0.629/0.983/1.937/0.552 ms

naleejangui-MacBook-Pro:~ naleejang$

 

12.  ping 테스트가 정상적으로 이루어졌다면 인스턴스에 접속을 할 수 있다는 뜻입니다. 터미널에서 ssh 명령을 이용하여 아래와 같이 인스턴스에 접속해 봅시다.

naleejangui-MacBook-Pro:~ naleejang$ ssh cirros@192.168.0.226

The authenticity of host '192.168.0.226 (192.168.0.226)' can't be established.

RSA key fingerprint is SHA256:ywIXNOHagZhbH8Ny+gUs77hSkdEOn68MJZIXcN3lfSg.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.0.226' (RSA) to the list of known hosts.

cirros@192.168.0.226's password:

$ ifconfig

eth0      Link encap:Ethernet  HWaddr FA:16:3E:62:DF:4F 

          inet addr:10.11.12.3  Bcast:10.11.12.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:fe62:df4f/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000

          RX bytes:14029 (13.7 KiB)  TX bytes:5484 (5.3 KiB)

 

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:16436  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

 

13.  이번에는 인스턴스에서 인터넷이 되는지 ping 테스트를 한번 해 보겠습니다. Ping 명령어를 이용하여 google.com으로 연결이 되는지 확인해 보도록 하겠습니다. 아래와 같이 ping이 잘 된다면 인터넷이 잘 되는 것입니다.

$ ping google.com

PING google.com (58.123.220.84): 56 data bytes

64 bytes from 58.123.220.84: seq=0 ttl=57 time=94.921 ms

64 bytes from 58.123.220.84: seq=1 ttl=57 time=15.010 ms

64 bytes from 58.123.220.84: seq=2 ttl=57 time=15.991 ms

^C

--- google.com ping statistics ---

3 packets transmitted, 3 packets received, 0% packet loss

round-trip min/avg/max = 15.010/41.974/94.921 ms

$

 

14.  이번에는 SSH Key를 이용해 로그인을 해 보도록 하겠습니다. 똑같이 터미널을 열고, 좀 전에 생성한 SSH key 의 파일 권한을 변경합니다. Chmod명령어를 통해 소유주만 읽을 수 있도록 권한을 변경합니다.

naleejangui-MacBook-Pro:~ naleejang$ chmod 600 openstack.pem

naleejangui-MacBook-Pro:~ naleejang$ ls -l openstack.pem

-rw-------  1 naleejang  staff  1683  5 14 00:07 openstack.pem

naleejangui-MacBook-Pro:~ naleejang$

 

15.  이제 SSH key를 이용하여 아래와 같이 접속을 합니다. 비밀번호를 묻지 않고 바로 로그인이 되는 것을 확인 할 수 있습니다.

naleejangui-MacBook-Pro:~ naleejang$ ssh cirros@192.168.0.226 -i openstack.pem

$ ifconfig

eth0      Link encap:Ethernet  HWaddr FA:16:3E:62:DF:4F 

          inet addr:10.11.12.3  Bcast:10.11.12.255  Mask:255.255.255.0

          inet6 addr: fe80::f816:3eff:fe62:df4f/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000

          RX bytes:33246 (32.4 KiB)  TX bytes:19898 (19.4 KiB)

 

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:16436  Metric:1

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

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

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

 

$

 

저작자 표시 비영리 변경 금지
신고
Posted by 나리 짱!!! naleejang
OpenStack Class 22016.07.14 11:54


첫 번째 인스턴스 생성하기

데브스택 설치가 완료되면 데쉬보드에 접속할 수 있습니다. 그럼 지금부터 데쉬보드를 이용해서 첫 번째 인스턴스를 생성하겠습니다.



첫 번째 인스턴스 생성

 

1.     다음 그림처럼 데쉬보드에 접속합니다.


2.     데브스택 설치 시 설정했던 localrc 파일의 Admin 패스워드를 입력하면 관리자 페이지로 로그인할 수 있습니다.


3.     관리자 페이지를 둘러보고 이번에는 demo 사용자로 로그인합니다. Demo 사용자 패스워드 역시 localrc 파일의 Admin 패스워드를 사용합니다.


4.     인스턴스는 데쉬보드의 프로젝트 > Compute > 인스턴스 메뉴를 클릭합니다. 그리고, 우측의 [인스턴스 구동]버튼을 클릭합니다.

 

5.     Mitaka 버전으로 오면서 인스턴스를 생성할 수 있는 인스턴스 생성창이 많이 변경이 되었습니다. 인스턴스 시작 팝업이 열리면 인스턴스 이름을 입력하고 하단의 [Next]버튼을 클릭하거나 좌측의 [소스] 메뉴를 클릭합니다.


6.     소스에서는 생성하고자 하는 운영체제 이미지를 선택을 합니다. 데브스택은 기본적으로 Cirros를 다운로드 받아 등록을 시켜놓습니다. 우리가 선택할 수 있는 운영체제 이미지는 Cirros 밖에 없으므로 Cirros를 선택합니다. 그리고, 하단의 [Next]버튼을 클릭하거나 좌측의 [소스] 메뉴를 클릭합니다.


7.     Flavors는 인스턴스의 사양을 의미합니다. 생성하고자 하는 인스턴스의 사양을 선택하는데, 테스트용으로 처음 만들어 보는 것이므로 가장 사양이 작은 m1.tiny를 선택합니다.


8.     Mitaka 버전에서 새롭게 들어간 기능으로 네트워크 IP Port를 선택할 수 있습니다. 그러나 여기서는 선택할 수 있는 IPPort가 없으므로 그냥 넘어갑니다.


9.     키 페어에서는 인스턴스 접속시 패스워드가 아닌 인증키를 이용하여 접속하는 방식을 사용할 때 키를 생성하고 생성한 키를 등록하면 해당 키로 인스턴스에 접속할 수 있습니다. 여기서는 openstack이라는 키를 생성하였습니다.


10.  구성 탭은 인스턴스 생성 후 설치를 하거나 설정을 할 작업들을 미리 사용자 정의 스크립트로 등록하여 사용할 수 있습니다. 여기서는 그냥 넘어가도록 하겠습니다.


11.  Scheduler Hints 탭에서는 인스턴스에 Glance 카달로그로부터 정의된 스케줄러 힌트를 추가하거나, 사용자 정의 스케줄러를 인스턴스 생성시 실행되도록 추가할 수 있습니다. 지금은 추가할 수 있는 스케줄러 힌트가 없으므로 그냥 넘어갑니다.


12.  메타데이터 탭 역시 Scheduler Hints 탭과 같은 기능을 가집니다. 우측에 있는 사용 가능한 메타데이터 중 추가하고자 하는 메타데이터를 좌측으로 이동시키면 인스턴스 생성시 함께 추가할 수 있습니다. 이번에는 그냥 넘어가도록 하겠습니다. 


13.  모든 생성 옵션을 확인하고 [인스턴스 시작] 버튼을 클릭하면 아래와 같이 인스턴스 생성이 시작됩니다. 인스턴스 생성이 완료될 때까지 잠시 기다립니다.

 

14.  인스턴스가 아래와 같이 정상적으로 생성이 되었습니다. 인스턴스가 정상적으로 생성이 되면 Status 항목이 Active로 변경이 됩니다.


15.     이제 생성된 인스턴스의 상세 정보를 한번 확인해 보도록 하겠습니다. 생성된 인스턴스명을 클릭하면 아래와 같이 인스턴스 상세 정보를 확인할 수 있습니다. 확인 가능한 정보들은 인스턴스 기본 정보, 인스턴스 사양, 네트워크 IP 정보 및 방화벽 정보, 메타데이터 및 볼륨그룹 정보 등이 있습니다.


16.  인스턴스 상세 정보의 로그 탭을 선택하면 인스턴스가 생성된 과정을 모두 로그로 확인할 수 있습니다. 그런데 이때 만일 인스턴스를 생성하는 도중 오류가 발생하면 그때는 로그 역시 확인이 불가능합니다.


17.  이번에는 콘솔 탭으로 이동을 한번 해 보겠습니다. 콘솔 탭에서는 현재 인스턴스 상태 화면을 미리볼 수 있습니다. 이 상태에서 인스턴스에 접속을 하려면 [콘솔을 보려면 여기를 클릭하세요.]를 클릭하거나 마우스 좌측 버튼을 클릭하여 [다른 탭에서 링크 열기]를 클릭합니다.

 

18.  그러면 아래와 같은 콘솔 화면에서 인스턴스에 접속을 할 수 있습니다. 

 

19.  이번에는 액션 로그 탭으로 가보도록 하겠습니다. 액션 로그 탭에서 인스턴스의 생성, 정지, 재시작과 같은 활동 로그들을 확인 할 수 있습니다. 지금 보고 있는 인스턴스는 2016 5 13일 오후 2 54분에 생성이 되었습니다.

저작자 표시 비영리 변경 금지
신고
Posted by 나리 짱!!! naleejang
OpenStack Class 22016.07.08 18:03

개정판에서 새로 준비하고 있는 것들이 있습니다. 여러분들의 삽집을 줄여주기 위해서 그동안 많은 분들이 궁금해 했던 부분들을 그때 그때 바로 바로 설명해 주는 TIP 코너를 마련했습니다. 하다가 잘 안된다구요? 이게 뭔지 모르겠다구요? TIP을 확인해 주세요~!!  


데브스택 설치

이제 DevStack 스크립트를 내려받고 오픈스택을 설치하겠습니다.


1.     git을 이용해 데브스택 쉘 스크립트를 받습니다. 이때 만일 특정 버전의 오픈스택을 설치하고 싶다면 –b 옵션을 사용하여 설치할 수 있습니다. 설치할 데브스택의 버전은 다음 URL에서 확인할 수 있습니다

(데브스택 Git 사이트 : https://git.openstack.org/cgit/openstack-dev/devstack)

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

Cloning into 'devstack'...

remote: Counting objects: 33775, done.

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

remote: Total 33775 (delta 23976), reused 26772 (delta 17353)

Receiving objects: 100% (33775/33775), 6.58 MiB | 1.72 MiB/s, done.

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

Checking connectivity... done.

stack@ubuntu:~$

  

2.     데브스택을 정상적으로 받았는지 확인합니다.

stack@ubuntu:~$ ll

total 24

drwxr-xr-x  3 stack stack 4096 May  5 17:37 ./

drwxr-xr-x  5 root  root  4096 May  5 17:34 ../

-rw-r--r--  1 stack stack  220 Sep  1  2015 .bash_logout

-rw-r--r--  1 stack stack 3771 Sep  1  2015 .bashrc

drwxrwxr-x 15 stack stack 4096 May  5 17:38 devstack/

-rw-r--r--  1 stack stack  675 Sep  1  2015 .profile

stack@ubuntu:~$

 

3.     데브스택을 설치하기에 앞서 데브스택 디렉토리에 있는 stackrc 스크립트 파일을 먼저 분석합니다. 어떤 서비스와 컴포넌트를 설치하는지 먼저 확인하고 설치에 들어가면 디버그나 개념을 이해하는데 많은 도움이 됩니다.

stack@ubuntu:~/devstack$ vi stackrc

# This allows us to pass ``ENABLED_SERVICES``

if ! isset ENABLED_SERVICES ; then

    # Keystone - nothing works without keystone

    ENABLED_SERVICES=key

    # Nova - services to support libvirt based openstack clouds

    ENABLED_SERVICES+=,n-api,n-cpu,n-net,n-cond,n-sch,n-novnc,n-cauth

    # Glance services needed for Nova

    ENABLED_SERVICES+=,g-api,g-reg

    # Cinder

    ENABLED_SERVICES+=,c-sch,c-api,c-vol

    # Dashboard

    ENABLED_SERVICES+=,horizon

    # Additional services

    ENABLED_SERVICES+=,rabbit,tempest,mysql,dstat

fi


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

[알고 갑시다] DevStack의 기본 설정 서비스들

기본 stackrc 파일에는 glance, keystone, nova, nova-network, glance, cinder, novnc, horizon, rabbitMQ, mysql을 설치하도록 설정되어 있습니다.

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


4.     localrc 파일을 설정하겠습니다. localrc 파일을 어떻게 설정하느냐에 따라 서비스의 설치 유무를 결정할 수 있고, nova-network로 설치할 것인지, neutron 방식으로 설치할 것인지 등을 설정할 수 있습니다. 가장 기본인 single node, nova-network 방식으로 DevStack을 설치하겠습니다.

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

 

[[local|localrc]]

HOST_IP=192.168.56.101

FLOATING_RANGE=192.168.0.224/27

FIXED_RANGE=10.11.12.0/24

FIXED_NETWORK_SIZE=256

FLAT_INTERFACE=enp0s3

ADMIN_PASSWORD=supersecret

DATABASE_PASSWORD=iheartdatabases

RABBIT_PASSWORD=flopsymopsy

SERVICE_PASSWORD=iheartksl

 

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

[Q&A] FIXED IP 범위는 어떻게 설정해야 할까요?

 

대부분 집이나 사무실에서 주로 사용하는 공유기가 바로 IPTime일 것입니다.

호스트 IP 주소가 192.168.0.17이라면 게이트웨이 주소는 대부분 192.168.0.1이 됩니다. 192.168.0.1를 접속해 들어가면 게이트웨이를 설정할 수 있는 관리 사이트를 확인할 수 있습니다. 관리 사이트의 고급 설정에서 내부 네트워크 설정을 선택하면 DHCP 주소 범위를 설정할 수 있습니다. 그럼, 오픈스택의 Fixed IP 범위는 이때 설정된 DHCP 주소 범위와 다른 범위로 설정해 주면 됩니다.

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

 

5.     localrc 파일 설정이 완료되면 stack.sh를 실행하고 30분 정도 기다리면 설치가 완료됩니다.

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

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

DevStack Component Timing

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

Total runtime         1970

 

run_process            47

apt-get-update          7

pip_install           356

restart_apache_server  10

wait_for_service        9

git_timed             594

apt-get               459

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

 

 

 

This is your host IP address: 192.168.56.101

This is your host IPv6 address: ::1

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

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

The default users are: admin and demo

The password: supersecret

2016-05-05 09:46:38.314 | stack.sh completed in 1970 seconds.

stack@ubuntu:~/devstack$

 

저작자 표시 비영리 변경 금지
신고
Posted by 나리 짱!!! naleejang