리눅스/설치

[Ubuntu] DevStack 설치하기

ㅎㄷㄹㅁㅇ 2021. 12. 30. 14:48
반응형

DevStack 

DevStack이란? 

 

DevStack은 개발자와 OpenStack 초기 입문자를 위해 만들어진 간단한 OpenStack 배포 스크립트로 생각하면 됩니다. 

해당 스크립트는 단일 노드에서 구성하는 것이 가능하고 OpenStack의 핵심 서비스들을 설치 할 수 있습니다.

 

 

구성 환경

 

[가상머신 _ Virtaul Box]
Processor : 2  
RAM : 4G (4G 이상 권장) 
Network : 
 내부망 : 192.168.59.31 (enp0s3)
 외부망 : NAT (enp0s9)
 
[OS Version _ Ubuntu20.04]
# cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
  • Ubuntu 20.04 를 VirtualBox를 통해 설치합니다.
  • 내부망을 통해 구성하되 외부망 통신으로 git을 통해 devstack 설치를 진행합니다.
  • RAM 4G 이상 진행해야 오류가 나지 않습니다.
  • VBox에서 snapshot을 이용하여 초기 설정 저장합니다.

 

 

Step 1. 레포지토리(Repository) 설정

 

# cd /etc/apt 
# cp /etc/apt/source.list cp /etc/apt/source.list.org
# cat /etc/apt/source.list
# sed -i 's/kr.archive.ubuntu.com/ftp.daumkakao.com/g' /etc/apt/sources.list
# cat /etc/apt/source.list

# apt-get update
# apt-get upgrade

 

* 참고
네트워크 환경에 따라 설치 시간이 다르고 기존 서버보다 kakao 서버가 더 안정적이고 빠르기 때문에 변경해 줍니다.
  • 명령어는 root를 통해 진행합니다.

 

 

Step 2. 파이썬 설치(Python3)

 

# apt install python3-pip
# apt install virtualenv

 

* Point
devstack 을 설치함에 python 설치 에러가 치명적이기에 관련 패키지를 미리 설치해 줍니다.
[발생 Error]
...
+tools/install_pip.sh:install_get_pip:92   sudo -H -E python3.8 /opt/stack/devstack/files/get-pip.py
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
 that setuptools is always imported before distutils.
...
stack.sh failed
Error on exit
  • 명령어는 root를 통해 진행합니다.

 

Step 3. Stack 계정 생성(User Account)

 

# useradd -s /bin/bash -d /opt/stack -m stack
# echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
# passwd stack

# sudo su - stack

 

* Point
devstack 을 설치함에 python 설치 에러가 치명적이기에 관련 패키지를 미리 설치해 줍니다.
  • 명령어는 root를 통해 진행
  • useradd -s 옵션은 계정 shell 설정 / -d 옵션은 home 디렉토리 경로 설정 / -m 홈 디렉토리 생성 설정
  • sudo 설정을 통해 stack 계정은 모든 명령어(명령어 앞에 sudo)를 패스워드 없이 사용.
  • stack 패스워드 설정
  • stack 계정으로 계정 스위치
  • Snapshot 생성

 

 

Step 4. git을 통한 devstack 다운로드

 

$ id 

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

 

* Point
stack 계정의 홈 디렉토리에서 명령어 수행합니다. /opt/stack 
  • stack 계정에서 진행

 

 

Step 5. 설정 파일 변경

 

$ cd /opt/stack
$ ls 
$ cd /opt/stack/devstack

$ vi /opt/stack/devstack/local.conf
[[local|localrc]]
ADMIN_PASSWORD=stack
RABBIT_PASSWORD=stack
SERVICE_PASSWORD=stack
DATABASE_PASSWORD=stack
HOST_IP=192.168.59.31 
SERVICE_HOST=192.168.59.31 
MYSQL_HOST=192.168.59.31 
RABBIT_HOST=192.168.59.31 
GLANCE_HOSTPORT=192.168.59.31:9292

$ sudo chown -R stack devstack
$ sudo chmod -R 777 devstack

 

* Point
cp samples/local.conf  local.conf 해당 명령어를 통해 local.conf를 가져와도 됩니다.
패스워드 및 IP 주소를 설정합니다. 
  • chown, chmod 명령어를 통해 디렉토리의 하위 권한 및 소유자를 변경 

 

 

Step 6. Devstack 설치 진행

 

$ cd /opt/stack/devstack

$ ./stack.sh

 

* Point
중간에 패스워드를 물어 볼 경우 위에 설정했던 패스워드 입력합니다.
  • 소요시간 30분 이상 (네트워크 환경에 따라 상이)

 

Step 7. Devstack 설치 완료 및 대시보드 설정

 

$ ./stack.sh
...
...
...
=========================
DevStack Component Timing
 (times are in seconds)  
=========================
wait_for_service      16
pip_install          186
apt-get              204
run_process           30
dbsync                 9
git_timed            1007
apt-get-update         3
test_with_retry        4
async_wait            79
osc                  255
-------------------------
Unaccounted time      80
=========================
Total runtime        1873

=================
 Async summary
=================
 Time spent in the background minus waits: 452 sec
 Elapsed time: 1873 sec
 Time if we did everything serially: 2325 sec
 Speedup:  1.24132

This is your host IP address: 192.168.59.31
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.59.31/dashboard
Keystone is serving at http://192.168.59.31/identity/
The default users are: admin and demo
The password: stack

Services are running under systemd unit files.
For more information see: 
https://docs.openstack.org/devstack/latest/systemd.html

DevStack Version: yoga
Change: 
OS Version: Ubuntu 20.04 focal

 

* Point
http://192.168.59.31/dashboard 를 통해 인터넷 브라우저에서 대시보드 진입합니다.
  • 계정 admin 패스워드 stack 입니다.
  • 설치 시 많은 오류가 있어 많은 구글링이 필요합니다. 힘내세요!

 

 

Step 7.  대시보드 확인

 

Step -.  설치를 실패할 경우

 

$ cd /opt/stack/devstack

$ ./unstack.sh
$ ./clean.sh
* Point
설치 실패 시 위에 저장했던 snapshot을 이용하여 재설치 하는게 낫습니다.
어디서 오류가 발생했는지 알 수 없기 때문에 오류를 찾아가며 진행해야 하기 때문에 위 명령어를 통해
재설치 할 경우 똑같은 이유로 실패할 경우가 많이 생깁니다. 
  • unstack.sh를 통해 프로젝트서비스,mysql, rabbitmq 중지합니다.
  • unstack.sh를 통해 iSCSI 볼륨 정리 및 임시 LVM 마운트 제거합니다.
  • clean.sh를 통해 /etc 설정 파일, 로그파일, .pyc 파일 제거 및 하이퍼바이저 정리, 데이터베이스 정리를 합니다. 

 

 

 

 

Ref

* 참고 사이트
DevStack으로 변경 사항 테스팅하기 — contributor-guide 문서 (openstack.org)
https://naleejang.tistory.com/

 

반응형

'리눅스 > 설치' 카테고리의 다른 글

[LINUX] SuSE 15 설치  (0) 2023.02.16
[LINUX] 1. ANSIBLE 설치  (0) 2022.03.01
[리눅스] Rescue Mode  (0) 2022.02.07
[리눅스] ReaR(Relax-and-Recover) 백업  (0) 2022.02.03
TOP