Cloud

DevStack 설치 방법 (feat. openstack, manila)

zewoong 2024. 2. 13. 18:13

devstack이란?

 DevStack은 openstack을 all-in-one 방식으로 설치를 실행하는 모듈화된 스크립트 집합. 즉, 한 번 실행으로 openstack을 설치 할 수 있는 간단한 방법.

 

devstack을 이용하여 openstack 설치하기.

 

1. 사용자 추가하기

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

 

2. 추가한 사용자에게 권한 부여하기

$ sudo chmod +x /opt/stack

 

3. sudo 권한 주기

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

 

4. Devstack 다운로드

$ git clone https://opendev.org/openstack/devstack
$ cd devstack

 

5. local.conf ( copy하여 사용 )

$ sudo cp samples/local.conf ./

 

*local.conf 파일

[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

**계정의 비밀번호를 미리 설정하며 비밀번호는 모두 secret으로 설정했다.
미리 설정하지 않는다면 설치 중에 설정하게끔 한다.

 

5-1. manila 설치 

*선택사항으로 필요하다면 설치하면 된다. local.conf파일에서 제일 아래에 항목을 추가한다

# Enable manila
enable_plugin manila https://opendev.org/openstack/manila

# Enable manila ui in the dashboard
enable_plugin manila-ui https://opendev.org/openstack/manila-ui

 

6. 설치 ( 실행경로: /devstack )

$ ./stack.sh

** 설치는 인내심이 필요하다. 대략 30 ~ 40분 걸린 것 같다.

 

7. 설치 완료

**설치가 정상적으로 됐다면 화면에 주소, 로그인 아이디, 비밀번호가 나온다. 꼭 메모를 해두자.

 

8. 정상 작동 체크

(1) 프로젝트를 demo에서 admin으로 변경한다.

 

(2) 인스턴스 생성

compute카테고리에 인스턴스를 클릭 후 오른쪽 본문에서 인스턴스 시작을 누른다.

 

(3) 인스턴스 설정

*처리 부분은 필수, 사용가능 항목 표시에서 위로 화살표를 눌러줘야 할당이 된다. 

 

(4) 인스턴스 생성

모든 필수 항목들에 할당을 해주고 나면 인스턴스 시작(생성)이 가능하다. 아래는 인스턴스를 만들고 있는 화면이다.

 

* 인스턴스 생성 완료 이후 아래 사진처럼 표시 된다면 openstack 정상 작동 테스트가 완료.

* (5) manila를 설치한 경우 shares라는 항목이 생겼다면 정상 설치 된것이다. 

 

Error #1

 

++functions-common:die:286                  set +o xtrace
[Call Trace]
./stack.sh:226:source
/opt/stack/devstack/stackrc:823:die
[ERROR] /opt/stack/devstack/stackrc:823 Could not determine host ip address.  See local.conf for suggestions on setting HOST_IP.

 

그러할 경우, local.conf 에 HOST_IP 을 설정을 추가한다. 

#
HOST_IP=10.0.2.32

 

Error #2

[Call Trace] ./stack.sh:191:die [ERROR] ./stack.sh:191 If you wish to run this script anyway run with FORCE=yes /home/stack/devstack/functions-common: line 232: /opt/stack/logs/error.log: No such file or directory

 

script 실행 시, 앞에 옵션을 추가하여 실행한다. 

$ FORCE=yes ./stack.sh