Devstack을 이용한 Openstack 설치하기

박도준·2020년 5월 12일
4
post-thumbnail

우선 VirtualBox를 설치합니다. 설치는 여기에 들어가서 각자의 환경에 맞게 설치를 하면 됩니다.

설치가 완료되면 Oracle VirtualBox를 실행시키고 Virtual Machine을 새로 만들기 위해 새로 만들기를 클릭합니다.

그러면 아래와 같은 창이 뜹니다. 여기서 새 가상 머신의 이름과 폴더를 정하고 종류를 선택합니다. 지금은 오픈스택을 사용할 것이므로 종류는 Linux를 선택하고 버전은 ubuntu-64bit를 설정한다.

그리고 가상 머신의 이름,가상 머신 메모리크기, 하드 디스크 파일 정리 그리고 하드 디스크 크기 설정에 대한 창이 순서대로 뜹니다.

우선, 가상 머신의 이름에 대해서는 각자 정하시면 됩니다.
가상 머신 메모리 크기에 대해서는 4192MB로 설정했습니다. 정해진 크기는 아니지만, 최소 4GB 정도로 설정합니다.

하드 디스크는 '지금 새 가상 하드 디스크 만들기'를 선택하였고, 이는 가상 머신에서 사용할 가상 하드 디스크를 생성하는 것입니다.

하드 디스크의 파일 종류에서는 방금 생성한 가상 하드 디스크는 파일의 형태로 존재하기 때문에 파일의 타입을 정해야 합니다.
저는 VDI를 선택했습니다. VDI는 Virtual box에서 가장 많이 사용하는 image종류입니다.

그리고 실제 파일을 기록하는 방식으로 동적 할당과 고정 크기를 선택해야 합니다. 동적 할당은 게스트의 스토리지로 사용할 "이미지 파일"을 처음에 모두 할당하는 것이 아니라 실제 사용될 때 할당하겠다는 의미입니다. => 공간 효율적
고정 크기는 생성한 디스크의 크기 모두를 온전히 할당하는 방법입니다
저는 굳이 사용하지 않는 영역을 미리 할당받을 필요가 없기 때문에 동적 할당을 선택하였습니다.

그리고 가상 하드 디스크의 크기는 최소 50GB이상으로 설정하는 것이 좋습니다. 동적 할당으로 했다면 메모리를 크게 설정해도 큰 상관은 없습니다.저는 50GB로 설정했습니다.

그리고 만들기 버튼을 누르면 여러분들이 설정한 이름으로 가상 머신이 생성된 것을 보실 수 있습니다.


그리고 프로세서와 네트워크를 설정해줍니다.

프로세서를 설정할 때는 우선 가상 머신을 종료하고 설정->시스템->프로세서 개수에서 프로세서를 설정합니다.

네트워크는 설정->네트워크에서 아래와 같이 설정합니다.

어댑터1에는 NAT, 어댑터2에는 호스트 전용 어댑터을 선택합니다.
그리고 무작위 모드는 모두 허용으로 설정합니다.

이 상태까지는 저희가 컴퓨터는 샀지만 운영체제는 설치 하지 않은 상태입니다. 만약 시작 버튼을 누르게 되면 아래와 같은 메세지가 뜹니다.

이는 Virtual Box가 운영체제가 아직 설치되지 않았다는 것을 감지하고, 설치에 필요한 디스크를 선택하라는 창이 뜨게 됩니다. 이때, 리눅스 이미지가 필요합니다.

리눅스의 운영체제는 실제로는 하나밖에 없습니다. 바로 Linux Kernel 입니다. 하지만 리눅스를 사용하기 위해서는 여러 주변 장치들이 필요합니다. 예로 들어 유틸리티, shell, 라이브러리, GUI등 입니다.
Kernel에 이러한 주변 장치들을 묶어서 사람들에게 배포하는 것이 Linux distribution입니다.
Linux distribution으로는 ubuntu, centOS, redhat등이 있습니다.

다시 본론으로 돌아와서 리눅스 이미지를 설치하겠습니다. 설치는 여기에서

(ubunut 16 버전을 설치하면 후에 python 버전을 업그레이드 해야합니다. 업그레이드를 해줘도 설치하는데 오류가 발생할 수 있기 때문에 ubuntu 18 버전 설치하는 것을 권장드립니다. 설치는 여기)

사이트에 들어가게 되면 desktop image와 server install image가 있습니다. 둘의 가장 큰 차이점은 GUI유무의 차이입니다.

오픈 스택을 이용하기 위해서는 server가 더 좋기때문에 server로 설치하겠습니다.

다운받은 Ubuntu ISO 파일을 가상 드라이브에 삽입을 합니다.

삽입을 완료하면 Ubuntu 설치 화면으로 넘어가게 됩니다. 설치 언어(English)를 선택하고, Install Ubuntu Server(United States)를 선택합니다. 그리고 저는 detect keyboard layout은 굳이 할 필요가 없어서 no를 선택했습니다.
keyboard layout은 한글을 사용할 것이 아니기 때문에 English를 선택합니다. 그리고 맨위에 있는 English(US)를 선택합니다.

넘어가면 Host name을 입력하는 란이 나옵니다. Host name은 컴퓨터 네트워크에서 자신의 컴퓨터 이름을 정하는 것입니다.(컴퓨터 이름)
그리고 사용자의 이름을 입력해야하는데 너무 길지 않고, 중간에 특수문자는 안들어 가는 것을 권장합니다.

다음으로는 사용자 계정 ID를 설정합니다. 실제로 로그인할 때 사용하는 이름입니다. 기본적으로 사용자 이름과 같게 사용하는 것을 권장합니다.
그리고 password를 설정합니다.
home directory를 encrypt할지에 대해서 선택을 해줍니다.(저는 no)

(설치 중)

time zone을 정하고 초기에 만든 가상 디스크를 파티션 하는 방법을 선택합니다.
저는 자동으로 partition해주는 Guided-use entire disk을 선택했습니다.
그러면 초기에 설정한 디스크의 크기가 적혀져있고 넘어가면, root partition과 swap partition이 자동으로 생성된것을 볼 수 있습니다. (익숙하신 분들은 manual로 만들어도 무방합니다.) 그리고 yes를 선택합니다.

http proxy information에서는 continue를 하고, upgrade에 대해서 어떻게 할지 선택합니다.(저는 No automatic updates 선택)

그리고 software package를 추가로 필요에 따라 선택해서 설치합니다.(저는 openSSH server를 추가로 선택)

그리고 yes
continue를 선택하면 드디어 설치 완료!!

아이디와 비밀번호를 적으면 아래와 같이 로그인이 된 것을 알 수 있습니다.


이제 오픈스택 을 설치하는 과정을 살펴보겠습니다.

가상 머신을 실행합니다.
처음 가상 머신을 실행을 하면 update,upgrade(or dist-upgrade)를 해줍니다.
update는 사용 가능한 패키지들과 그 버전들의 리스트를 업데이트하기 위한 명령어이고, upgrade는 나의 우분투에 있는 패키지들을 실제로 최신 버전으로 업그레이드하기 위한 명령어입니다.
-y는 yes를 의미합니다.

sudo apt update
sudo apt upgrade -y
sudo apt-get update
sudo apt-get upgrade -y


새로운 User 생성

이제 새로운 User를 생성합니다.
devstack을 이용하여 설치하는데, root유저가 아니라 stack 유저를 생성하여 사용합니다.

sudo useradd -s /bin/bash -d /opt/stack -m stack

stack 유저로 시스템의 많은 부분을 변화시킬 예정이므로 sudo 권한이 있어야 합니다.

echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

하고 나면 결과화면으로 아래와 같이 확인할 수 있습니다.

그런 다음 root유저에서 stack 유저로 변경합니다.

sudo su - stack


DevStack 설치 및 환경 설정

저는 stein 시리즈를 사용할 것이므로 아래와 같이 명령어를 적습니다. (stein버전)

sudo apt install git -y

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

설치가 완료되면 devstack 폴더로 이동합니다.
devstack을 설치하기 전에 ip address를 확인해야 합니다.

ip addr

또는

hostname -I

를 이용하여 ip 주소를 알아낼 수 있습니다.

다음으로 devstack 폴더안에 local.conf 파일을 만드는데 vi를 편리하게 사용하기 위해 vim을 먼저 설치하는 것을 추천드립니다.

cd devstack

sudo apt-get install vim

local.conf의 내용은 아래와 같습니다.

[[local|localrc]]
HOST_IP=<IP> # HOST_IP=x.x.x.x
ADMIN_PASSWORD=0000
RABBIT_PASSWORD=0000
SERVICE_PASSWORD=0000
DATABASE_PASSWORD=0000

##Enable senlin
#enable_plugin senlin https://git.openstack.org/openstack/senlin stable/stein
##Enable senlin-dashboard
#enable_plugin senlin-dashboard https://git.openstack.org/openstack/senlin-dashboard stable/stein

##enable_plugin heat https://opendev.org/openstack/heat stable/stein
##enable_plugin heat-dashboard https://opendev.org/openstack/heat-dashboard.git stable/stein
#enable_service h-eng h-api h-api-cfn h-api-cw heat-dashboard

devstack의 소유 유저를 stack으로 바꿔줍니다. 이때 하위 폴더 소유자를 재귀적으로 모두 변경하기 위해 -R 옵션을 추가합니다.

sudo chown -R stack ./devstack

devstack 상위 폴더에서 devstack에 대한 접근 허용 범위를 아래와 같이 변경합니다.

sudo chmod -R 777 devstack

devstack폴더안으로 들어가서 openstack을 설치를 합니다.
stack.sh => 패키지를 설치하는 스크립트입니다.

cd devstack

./stack.sh

네트워크 속도에 따라서 2시간 정도 시간이 걸립니다.
설치할 파일들이 많기 때문에 오류는 당연히 많이 발생하겠죠,,?
(어떤 오류가 뜰까,, 두근두근)



오류를 모두 해결하고 나면 아래와 같은 화면이 뜬다

(기숙사 와이파이가 느려서 그런지 거의 3시간은 걸린거 같네요,,ㅠㅠㅠㅠ)

설치가 완료되면 http://<HOST_IP>/dashboard와 같이 주소창에 검색하면 다음과 같은 화면을 확인 할 수 있습니다.

그리고 사용자 이름에 admin 또는 demo를 입력하고 암호는 local.conf 파일에 입력한 ADMIN_PASSWORD를 입력합니다.

그러면 아래와 같이 dashboard를 확인할 수 있습니다.

profile
Better late than never

1개의 댓글

comment-user-thumbnail
2020년 7월 28일

선생님의 오류정리가 필요합니다 .....

답글 달기