Devstack으로 OpenStack 설치하기
DevStack으로 OpenStack 개발/학습 환경을 구성하는 가이드입니다. stack 사용자, OpenDev 저장소, local.conf, stack.sh, openstack CLI 검증과 unstack/clean 절차를 정리했습니다.
DevStack은 OpenStack 개발자와 학습자를 위한 빠른 설치 스크립트입니다. 운영용 배포 도구가 아니라 upstream OpenStack을 테스트하고 컴포넌트 흐름을 익히기 위한 랩 환경으로 봐야 합니다. 공식 DevStack 문서도 stack.sh와 local.conf를 이용한 테스트/개발 환경을 기준으로 설명합니다.
설치 전 조건
- 깨끗한 Ubuntu VM을 사용합니다.
- 고정 IP와 DNS가 동작하는지 확인합니다.
- root가 아닌 일반 사용자로 실행합니다.
- 운영 서버나 기존 서비스가 있는 서버에서 실행하지 않습니다.
- VM snapshot을 먼저 남깁니다.
sudo apt update
sudo apt install -y git sudo python3
ip addr
ip route
stack 사용자 준비
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo chmod 440 /etc/sudoers.d/stack
sudo su - stack
DevStack 다운로드
현재 공식 문서는 OpenDev 저장소를 사용합니다.
git clone https://opendev.org/openstack/devstack
cd devstack
local.conf 작성
local.conf에는 설치 비밀번호와 네트워크 설정이 들어갑니다. 실제 비밀번호를 블로그, Git 저장소, 공용 기록에 남기지 마세요.
cat > local.conf <<'EOF'
[[local|localrc]]
HOST_IP=192.168.56.20
ADMIN_PASSWORD=REPLACE_WITH_STRONG_PASSWORD
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
FIXED_RANGE=10.4.128.0/20
FLOATING_RANGE=192.168.56.128/25
LOGFILE=$DEST/logs/stack.sh.log
EOF
HOST_IP는 DevStack VM의 실제 IP로 바꿔야 합니다. FLOATING_RANGE는 현재 LAN과 충돌하지 않는 대역으로 잡습니다.
설치 실행
./stack.sh
설치는 오래 걸릴 수 있습니다. 실패하면 로그를 먼저 확인합니다.
tail -f /opt/stack/logs/stack.sh.log
grep -i error /opt/stack/logs/stack.sh.log | tail
설치 후 확인
source openrc admin admin
openstack service list
openstack endpoint list
openstack compute service list
openstack network agent list
Horizon은 다음 주소에서 확인합니다.
http://<devstack-ip>/dashboard
중지와 정리
./unstack.sh
./clean.sh
clean.sh는 환경을 크게 지우므로 랩 VM에서만 사용하세요. DevStack은 반복 실험용이므로 문제가 꼬이면 snapshot으로 되돌리는 것이 가장 깔끔합니다.