OpenStack 명령어 기초 정리

OpenStack CLI 기본 명령어 가이드입니다. clouds.yaml 인증, flavor/image/network/server 목록, VM 생성, Floating IP, security group, volume 명령을 정리했습니다.

OpenStack CLI는 openstack <object> <action> 형태로 대부분의 리소스를 관리합니다. 명령어를 외우기보다 인증 환경을 잡고, list/show/create/delete 흐름을 이해하는 것이 중요합니다.

Horizon 화면을 기준으로 설명하지 않고, 운영자가 터미널에서 리소스를 확인하고 VM을 만들고 장애를 좁히는 데 필요한 기본 명령 흐름을 정리합니다.

클라이언트 설치

python3 -m venv ~/venvs/openstack
source ~/venvs/openstack/bin/activate
python -m pip install --upgrade pip
python -m pip install python-openstackclient
openstack --version

운영 서버에 직접 설치하기 어렵다면 관리용 bastion이나 개인 작업 VM에 설치하고, 필요한 cloud profile만 분리해서 둡니다.

인증 환경 확인

source ~/keystonerc_admin
openstack token issue
openstack project list
openstack user list

clouds.yaml을 쓰는 환경에서는 --os-cloud 옵션으로 cloud profile을 선택합니다.

openstack --os-cloud devstack project list
openstack --os-cloud devstack token issue

clouds.yaml 예시는 다음처럼 구성합니다. 실제 password나 application credential secret은 문서나 Git에 넣지 말고, 운영 환경에서는 root-only secret reference나 안전한 secret store에서 주입합니다.

clouds:
 lab:
 auth:
 auth_url: https://openstack.example.com:5000/v3
 username: demo
 password: REPLACE_WITH_SECRET
 project_name: demo
 user_domain_name: Default
 project_domain_name: Default
 region_name: RegionOne
 interface: public
 identity_api_version: 3

기본 리소스 조회

openstack service list
openstack endpoint list
openstack flavor list
openstack image list
openstack network list
openstack subnet list
openstack security group list
openstack keypair list
openstack server list
openstack volume list

이름이 중복될 수 있는 환경에서는 가능하면 ID를 확인한 뒤 다음 작업을 진행합니다.

openstack server show test-vm-01 -f value -c id
openstack image show cirros -f yaml
openstack network show private -f yaml

인스턴스 생성 예시

openstack server create \
 --flavor m1.small \
 --image cirros \
 --network private \
 --security-group default \
 --key-name mykey \
 test-vm-01

생성 후 상태를 확인합니다.

openstack server list
openstack server show test-vm-01
openstack console log show test-vm-01 | tail -n 40

상태가 ERROR라면 먼저 fault message와 compute 배치 정보를 봅니다.

openstack server show test-vm-01 -c status -c fault -c OS-EXT-SRV-ATTR:host -f yaml
openstack hypervisor list
openstack hypervisor show compute-01

서버 전원과 rescue 흐름

openstack server stop test-vm-01
openstack server start test-vm-01
openstack server reboot --soft test-vm-01
openstack server reboot --hard test-vm-01
openstack server rescue test-vm-01
openstack server unrescue test-vm-01

hard reboot, rescue, rebuild는 게스트 OS와 볼륨 상태에 영향을 줄 수 있으므로 운영 VM에서는 변경 창과 백업 여부를 먼저 확인합니다.

Floating IP

openstack floating ip create public
openstack floating ip list
openstack server add floating ip test-vm-01 203.0.113.10
openstack server remove floating ip test-vm-01 203.0.113.10

Floating IP가 붙어도 접속이 안 되면 라우터, security group, guest 방화벽, cloud-init 네트워크 설정을 분리해서 봅니다.

openstack router list
openstack router show router1
openstack port list --server test-vm-01
openstack security group rule list web-sg

Security group

openstack security group create web-sg
openstack security group rule create --protocol tcp --dst-port 22 web-sg
openstack security group rule create --protocol tcp --dst-port 80 web-sg
openstack server add security group test-vm-01 web-sg

ICMP 확인이 필요한 랩에서는 다음처럼 허용할 수 있습니다. 운영에서는 출발지 CIDR을 제한합니다.

openstack security group rule create --protocol icmp web-sg
openstack security group rule create --protocol tcp --dst-port 22 --remote-ip 203.0.113.0/24 web-sg

Volume

openstack volume create --size 10 data-vol-01
openstack server add volume test-vm-01 data-vol-01
openstack volume list
openstack server remove volume test-vm-01 data-vol-01

이미지와 keypair

openstack image list
openstack image show cirros
openstack keypair create mykey > mykey.pem
chmod 600 mykey.pem
openstack keypair list

운영 keypair는 개인키 관리가 핵심입니다. 게시글, Git이나 공용 채널에 개인키 내용을 붙이지 않습니다.

도움말

openstack --help
openstack server create --help
openstack help server create

삭제 명령은 리소스 영향이 크므로 show로 대상 ID를 확인한 뒤 실행합니다.

openstack server delete test-vm-01

삭제 전 확인 순서

openstack server show test-vm-01 -f yaml
openstack volume list --server test-vm-01
openstack floating ip list
openstack port list --server test-vm-01

VM 삭제 후 boot-from-volume 디스크가 남는지, floating IP가 회수되는지, port가 정리되는지는 환경 정책마다 다릅니다. 비용/자원 누수를 막기 위해 삭제 후 list 명령으로 재확인합니다.

공식 문서

BGM EVER