티스토리 뷰

안녕하세요~!!


이제 오픈스택을 설치할 모든 준비가 완료되었습니다

초보자도 쉽게 따라할 수 있는 DevStack을 이용하여 오픈스택이 무엇인지 설치해 보도록 하겠습니다.

 

사전 준비

DevStack을 이용한 오픈스택을 설치하기 전에 미리 해야 할 사전준비가 필요합니다.

 

1. DevStack 스크립트를 다운로드 받고, 사용자 계정에 sudo 권한을 주기 위해서 gitsudo를 설치합니다.

nalee@ubuntu:~$ sudo apt-get install -y git sudo

 

2. DevStack을 설치하기 위해서는 stack이라는 사용자 계정이 필요한데 stack 사용자 계정을 추가하기 위해서는 root 계정에서 추가를 하여야 하므로 아래와 같이 root 계정의 패스워드를 설정합니다.

nalee@ubuntu:~$ sudo passwd root

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

nalee@ubuntu:~$

 

3. root 계정 패스워드 설정이 되면 root 계정으로 전환을 한 뒤 stack 사용자 계정을 추가하고 stack 계정에 sudo를 패스워드 없이 사용할 수 있는 권한을 설정해 줍니다. 그리고, stack 계정의 로그인을 위하여 패스워드를 설정합니다.

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

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

root@ubuntu:~# passwd stack

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

root@ubuntu:~#

 

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

root@ubuntu:~# su stack

stack@ubuntu:/root$ cd

stack@ubuntu:~$

 

 

데브스택 설치

이제 DevStack 스크립트를 다운로드 받고 오픈스택을 설치해 보도록 하겠습니다.

5. git을 이용해 DevStack 쉘 스크립트를 다운로드 합니다.

stack@ubuntu:~$ git clone -b stable/icehouse git://github.com/openstack-dev/devstack.git

Cloning into 'devstack'...

remote: Reusing existing pack: 16318, done.

remote: Counting objects: 7, done.

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

remote: Total 16325 (delta 2), reused 1 (delta 0)

Receiving objects: 100% (16325/16325), 4.13 MiB | 289 KiB/s, done.

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

*** git 으로 devstack을 받을때 호스트 PC의 운영체제 ubuntu 12.04라면 반드시 iceHouse 버전을 다운로드 받아야 합니다. 그리고, ubuntu 14.04 버전이라면 juno 버전을 설치하셔도 상관이 없습니다. 반드시 호스트 서버의 운영체제 버전을 확인하고 설치하시기 바랍니다. 


6. devstack 이 정상적으로 다운로드 되었는지 아래와 같은 명령어를 통해 확인합니다.

stack@ubuntu:~$ ll

total 24

drwxr-xr-x  3 stack stack 4096 Mar  7 11:23 ./

drwxr-xr-x  5 root  root  4096 Mar  7 11:20 ../

-rw-r--r--  1 stack stack  220 Apr  4  2012 .bash_logout

-rw-r--r--  1 stack stack 3486 Apr  4  2012 .bashrc

drwxr-xr-x 10 stack stack 4096 Mar  7 11:24 devstack/

-rw-r--r--  1 stack stack  675 Apr  4  2012 .profile

stack@ubuntu:~$

 

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

stack@ubuntu:~/devstack$ vi stackrc

STACK_USER=$(whoami)

fi

 

# Specify which services to launch.  These generally correspond to

# screen tabs. To change the default list, use the ``enable_service`` and

# ``disable_service`` functions in ``localrc``.

# For example, to enable Swift add this to ``localrc``:

#  enable_service swift

# In order to enable Neutron (a single node setup) add the following

# settings in `` localrc``:

#  disable_service n-net

#  enable_service q-svc

#  enable_service q-agt

#  enable_service q-dhcp

#  enable_service q-l3

#  enable_service q-meta

#  enable_service neutron

#  # Optional, to enable tempest configuration as part of devstack

#  enable_service tempest

ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,tempest,mysql

 

# Set the default Nova APIs to enable

NOVA_ENABLED_APIS=ec2,osapi_compute,metadata

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

 

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

stack@ubuntu:~/devstack$ vi localrc

###########################

# Date : 2014.02.18              #

# Name : naleejang              #

###########################

# Devstack localrc for nova-network all-in-one

 

# default

HOST_IP=192.168.1.20

 

# network

FLAT_INTERFACE=eth0

FIXED_RANGE=10.0.0.0/20

FIXED_NETWORK_SIZE=4096

FLOATING_RANGE=192.168.1.128/28

 

# vnc

VNCSERVER_LISTEN=0.0.0.0

VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP

 

# logs

DEST=/opt/stack

LOGFILE=$DEST/logs/stack.sh.log

SCREEN_LOGDIR=$DEST/logs/screen

 

# system password

ADMIN_PASSWORD=openstack

MYSQL_PASSWORD=openstack

RABBIT_PASSWORD=openstack

SERVICE_PASSWORD=openstack

SERVICE_TOKEN=openstackservicetoken

 

# cinder

VOLUME_GROUP="cinder-volume"

VOLUME_NAME_PREFIX="volume-"

 

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

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

 


이렇게해서 오픈스택을 설치해 보았습니다. 다음 시간에는 설치한 오픈스택으로 인스턴스를 생성해 보도록 하겠습니다. 

그럼, 다음에 다시 만나요~~~ ^^


댓글
  • 프로필사진 prac 강의 잘봤습니다 ^^
    그런데 제가 위에 나온 설명대로 따라서 설치를 했는데 stack.sh 설치 후에 keystone did not start라는 에러도 출력되고 뭔가 제대로 되지 않는것 같은데 우분투 server 14.04 LTS 이미지로 설치를 한게 차이가 있는건 아니죠?
    설치 후에 192.168.1.20로 브라우저를 통해 접속하면 대시보드 창이 자동으로 열리나요?

    p.s 그리고 localrc가 기본적으로 포함이 되어있는건가요? 아니면 설명대로 작성을 해서 생성을 해줘야 하는건가요?
    2014.10.02 15:24
  • 프로필사진 prac 공유기를 사용하지 않고 HOST_IP를 192.168.1.20로 맞춰서 안되었습니다 2014.10.02 16:35
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 스스로 원인을 찾으셨다니 다행입니다. ^^ 2014.10.02 19:38 신고
  • 프로필사진 비밀댓글입니다 2014.10.26 12:10
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 팀프로젝트를 하신다고 하셨는데 테스트용인가요?
    테스트용이라면 굳이 사실 필요는 없을 듯 합니다.
    기존에 가지고 계시는 컴퓨터들을 활용하여 테스트를 하셔서 무방합니다. 단 성능 테스트나 상용을 위한 테스트라면 당연히 장비를 구입하는것이 맞겠지요!!
    2014.10.27 14:10 신고
  • 프로필사진 유용한정보네요 localrc 파일을 저위에것처럼 전부 작성하는건가요 ? 2014.10.27 14:32
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 네~~ 전부 모두 작성하셔야 해요~!! 2014.10.27 15:04 신고
  • 프로필사진 roxas 안녕하세요. 선생님 덕분에 편리하게 오픈스택을 설치할 수 있었습니다.
    감사합니다 ^_^
    그런데 데시보드 로그인 창까지는 뜨는데 로그인 후 'ConnectionError at /admin/'가 발생합니다.
    무엇이 문제인지 도무지 감이 안오는데요...혹시 포트포어딩 같은 것도 해줘야하나요?
    2014.10.29 13:46
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang Nova-network로 설치하셨다면 특별히 포트포워딩 같은건 필요없습니다. 분명히 설치하다가 설치가 제대로 안 된 부분이 있을꺼라 생각이 드는데요~!! 다시 한번 더 체크해 보시기 바랍니다. 2014.10.29 14:35 신고
  • 프로필사진 roxas 답변 감사합니다.
    무엇이 문제였는진 모르겠지만
    지우고 다시 설치해보니 되었습니다.
    devstack은 서버 재시작 시 동작이 안되나보군요...
    2014.10.31 14:23
  • 프로필사진 문의드려요 안녕하세요. 영어자료 뒤척거리다가 좋은 자료 올려주셔서 열심히 공부하고 있습니다.

    올려주신대로 localrc를 작성하여서 cirros는 정상동작에 성공하였습니다.

    그런데 예전에 올려주신 리눅스 이미지를 올려서 vm을 만들어보려고 했는데, 이미지가 올라가질 않네요..

    cinder나 별도의 기능이 추가설치되어야하는건가요? 아님 제가 먼가 실수했을런지요

    문의드려요^^
    2014.10.31 12:51
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 어떤 리눅스 이미지를 올리셨나요? 2014.11.03 17:54 신고
  • 프로필사진 오픈스팩 짱 강의 올려주시고 꼼꼼하게 작성 해주셔서 너무 감사드립니다.(_ _)

    따라서 하던중 설치가 안되는 부분이 있어서 혹시 다른 방법이나 제가 한 방법이 맞는지 확인 부탁드립니다.

    수정 파일 : stackrc

    #GIT_BASE=${GIT_BASE:-git://git.openstack.org}
    GIT_BASE=${GIT_BASE:-https://www.github.com}

    첫번째 꺼로 하면 fatal: unable to connect to git.openstack.org: ... die 670 'git call failed 뜨네요.git쪽에 먼가 바뀐듯..
    두번째 GIT_BASE로 하면 문제 없이 설치 됩니다.
    2014.11.13 16:36
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 저도 몇일전에 설치했었는데 잘 설치됩니다. 문제가 없는걸로 알고 있는데요~!! 2014.11.13 17:19 신고
  • 프로필사진 윤정식 안녕하세요 강의 보고 따라하던 중에 문제가 생겨서 글을 남깁니다.

    강의대로 vm 설치 및 설정을 해주고 devstack을 설치가 마무리가 되고 인스턴스를 생성하는데, 대쉬보드창에서 인스턴스 로그를 접속 할 수 없다고 나옵니다.

    vm네트워크 설정에 관해 강의 내용말고 따로 무언가 해줄게 있나요?

    현재 nic를 하나는 브릿지모드 다른 하나는 호스트 전용으로 했습니다.

    eth0 은 static ip로 고정시켰습니다.
    2014.12.31 10:22
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 네트워크를 브릿지 모드로 하셨다면 특별히 설정해 줄 것은 없을 듯 합니다. 인스턴스 로그만 접속이 안되는 건가요? 2014.12.31 15:22 신고
  • 프로필사진 ,joo 파일설정을 어떻게하라는 건지 잘 이해가 안갑니다. 2015.01.07 14:12
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang localrc 파일을 생성하고 파일 내용을 위의 내용과 같이 하라는 이야기입니다. 2015.01.08 11:29 신고
  • 프로필사진 csg 우분투 14버전으로 juno 설치하구요, devstack/stackrc 파일 보니까 ENABLED_SERVICES가 이미 다 등록이 되어있는것 같아요 : ) 2015.05.10 00:09
  • 프로필사진 moon 서버에 localrc 세팅하여 설치 완료했는데요.
    cirros나 우분투 올리면 외부 노트북에서 내부로 설정된 가상IP로 접속이 가능합니다.
    다만, 내부에서 호스트IP(서버)로는 연결이되는데 그외의 IP (노트북)로는 연결이 안되네요.
    세팅상의 차이가 있을까요?

    - 네트워크
    NIC카드 2장
    공유기 IP -> 192,168.0.1

    - 설정
    HOST_IP=192.168.0.206

    FLAT_INTERFACE=eth1
    FIXED_RANGE=10.0.0.0/20
    FIXED_NETWORK_SIZE=4096
    FLOATING_RANGE=192.168.0.128/28
    PUBLIC_NETWORK_GATEWAY=192.168.0.100
    2015.09.30 17:50
  • 프로필사진 zeta 안녕하세요. 12.04.2 에서 설치하는데 git clone -b stable/icehouse git://github.com/openstack-dev/devstack.git
    다운 마지막에 warning: Remote branch stable/icehouse not found in upstream origin, using HEAD instead 메시지가 나오고 stack.sh실행시 [ERROR] ./stack.sh:189 If you wish to run this script anyway run with FORCE =yes
    /home/stack/devstack/functions-common: line 214: /opt/stack/logs/error.log: No such file or directory 메시지가 나오면서 스탑됩니다.. 구글링해도 찾기가 힘든데 혹시 알수 있을까요.
    2016.01.13 14:48
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang icehouse는 이제 서비스 지원이 중단되었습니다.
    그래서, 해당 경로에 관련 파일이 없어서 그럴꺼예요~!!

    최신 버전으로 설치 테스트 해 보세요~!!
    2016.01.13 18:50 신고
  • 프로필사진 BlogIcon 짐니 혹시 최신버전이라는게 우분투 최신버전 말씀핫ㅣ는건가요? 지금 우분투 14.04로 설치하고 있는데 똑같은 현상이 발생하고 있습니다 ㅜㅜ 2016.06.14 09:40
  • 프로필사진 Favicon of https://naleejang.tistory.com BlogIcon 나리 짱!!! naleejang 아니요~!! 오픈스택 버전이요~!! 인터넷으로 한번 찾아보세요~!! 2016.06.14 16:40 신고
  • 프로필사진 NeEls 안녕하세요, 이제 막 입문한 초보라서 강의 잘 보고 있습니다

    Ubuntu는 VMWare, NAT 방식으로 GW는 192.168.10.2이고 원본 OS의 IP는 172.16.1.28입니다
    대쉬보드에서 인스턴트까지 만들었지만 외부는 커녕 인스턴스 2개가 서로간의 핑도 가지않는데,
    보안 설정에서 ICMP까지 전부 허가시켜줬는데 아무래도 문제가 localrc의 IP 설정에 있는것같습니다
    HOST는 Ubuntu의 IP인 192.168.10..50을 주었고, Private는 기본 설정인 10.0.0.0/20을 이용하고 있습니다

    Floating_Range는 HOST와 같은 범위인 192.168.10.0/24을 한번 주어보았지만 안되서
    강의와 비슷하게 192.168.10.128/28로 바꿔1보았는데 그래도 안됩니다

    싱글 노드 방식의 클라우드를 구축하려하는데 Floating_Range를 어떻게 적어야할지 모르겠습니다
    외부에서 접근하기 위한 IP가 아닌가 싶은데 개념이 잘 이해가 안되서 질문드립니다
    Floating IP 설정과 개념에 대한 부분 설명 부탁드려요 ㅠㅠ
    2016.02.02 18:18
  • 프로필사진 naleejang Floating IP 범위를 준 IP가 NAT방식인건가요?
    제가 올려주신 글을 살짝 이해가 잘 가질 않네요~!!
    2016.02.03 16:52
  • 프로필사진 BlogIcon NeEls 엇...오래전에 쓰신글이라 답변을 거의 기대안했는데 달아주셨네요! 교실 네트워크 환경 열악해서 브릿지로 설정하면 어떤IP를 써도 충돌이 발생해서 하루 종일 바꾸다가 NAT 방식으로 Floating Range를 주게 되었습니다 2016.02.05 09:00
  • 프로필사진 naleejang NAT 방식이라 안되는거예요~!!
    집에서 브리지 모드로 해서 올인원으로 한번 테스트 해보세요~!!
    브리지 모드로 하면 잘 되꺼예요.
    2016.02.05 16:36
  • 프로필사진 NeEls 맨 처음 적어둔 172.16.1.28은 충돌 발생하는 IP이고, Host_IP라고 적은 192.168.10.50은 NAT로 바꾼 현재 Ubuntu IP입니다 대쉬보드에서는 생성된 인스턴스의 IP가 10.x.x.x로 표시되는데, 막상 Cirros 콘솔로 들어가서 확인하면 192.168.10.x가 부여되며, 생성한 두개의 인스턴스가 각 192.168.10.129, 192.168.10.130인데 GW는 물론 서로간의 통신도 안되고 있어요 ㅠㅠ 두 인스턴스 다 GW도 Ubuntu의 GW인 192.168.10.2로 표시됩니다 2016.02.05 09:46
  • 프로필사진 naleejang 환경 설정을 어떻게 하신건지 잘 이해가 가질 않네요~!!
    아무리 봐도 네트워크 환경 설정을 잘 못 하신 듯 싶습니다.

    네트워크 환경은 회사마다 장소마다 워낙 다양하고 다른지라 제가 어떻게 설명을 드리기가 어렵네요~!!
    2016.06.14 16:38
  • 프로필사진 짐니 강의를 보고 따라하는 도중에, stack유저로 접속하여서 devstack을 설치하여야 하는 이유가 있나요?

    stack유저가 권한이 없는건지 자꾸 git하는데도 에러가 뜨고... 지금은 ll도 안먹는 상태입니다 ㅜㅜ 권한 거부가 뜨네요....

    리눅스 자체가 처음이라서... 한단계한단계 계속 막히니까 답답하네요..

    root,계정에서 일단 devstack git했는데, root에서 설치해주어도 상관없는건가요?ㅠㅠ
    2016.06.14 10:14
  • 프로필사진 naleejang devstack 스크립트에서 stack 게정으로 설치하게 되어 있어서 그런거예요~!! 처음하는 거라면 리눅스를 먼저 공부하고 해 보시는게 도움이 많이 될 듯 하네요~!! 2016.06.14 16:35
  • 프로필사진 BlogIcon stack-king 안녕하세요? 올려주신자료를 짜라하면서 문제없이 설치하는데...stack.sh를 실행하면 "download of get-pip.py failed" error가 나오면서 머추네요.
    그래서 pip-py download 주소를 "https://bootstrap.pypa.io/get-pip.py" 에서 "https://github.com/pypa/virtualenv/raw/master/get-pip.py"로 바꾸고 해도 마찬가지네요.. 무슨 문제일까요?
    2016.06.22 00:05
  • 프로필사진 naleejang 설치하시려는 호스트 컴퓨터에서 인터넷은 잘 되나요?
    ping google.com 을 해서 ping 이 잘 되면 인터넷이 잘 되는겁니다. 만일 안된다면 아마도 인터넷이 안되서 다운로드를 못 받는거겠죠~!!
    2016.06.23 20:29
  • 프로필사진 안녕하세요 안녕하세요~
    올려주신 글 보고 잘 따라서 가다가 문제가 발생해서 글 남겨요.ㅠ
    버전은 우분투 16.04이고 마지막에 stack.sh로 진행하면 중간에 에러가 발생하네요.
    에러명이
    [ERROR] /home/stack/devstack/functions-common:226 Failure retrieving default route device
    이렇게 나오는데 혹시 해결책이 있을까요?
    구글링하면서 ip 주소 바꾸고 해보고 있는데 좀처럼 잘 안 되네요...ㅜㅜ
    참고로 브리지로 설정 잡았습니다.
    브리지로 잡고 ip 안 뜨길래 구글링해서 주소 할당하고 진행했는데 관련이 있는 부분인지... 모르겠네요.
    2017.07.04 17:45
  • 프로필사진 비밀댓글입니다 2019.10.16 08:27
  • 프로필사진 kim 마지막에 ./stack.sh 실행시 /opt/stack/log/error.log: no such file or directory 오류가 발생하는데 원인을 모르겠습니다 2020.07.06 09:23
댓글쓰기 폼