OpenStack을 공부하다 보면 결국 openstack 명령어와 친해져야 합니다. Horizon(웹 대시보드)도 좋지만, 실무·자동화는 CLI가 기본이거든요. DevStack 실습에서 실제로 쓴 명령들을 바탕으로, 입문자가 꼭 알아야 할 openstack CLI를 정리합니다.
1. 인증부터 — openrc
모든 명령은 인증 토큰이 필요합니다. DevStack은 openrc 스크립트를 주는데, 이걸 source하면 환경변수로 로그인 정보가 들어갑니다.
# 관리자(admin) 자격으로 환경 설정
source /opt/stack/devstack/openrc admin admin
# 토큰 확인(로그인 됐나)
openstack token issue -f value -c id | head -c 20; echo
이후 모든 openstack ... 명령이 이 자격으로 동작합니다.
2. 명령 구조 — 외우지 말고 패턴으로
openstack CLI는 openstack <자원> <동작> 패턴이 일관됩니다. 이것만 알면 응용이 쉽습니다.
| 동작 | 예시 |
|---|---|
| 목록 | openstack server list |
| 생성 | openstack network create net1 |
| 상세 | openstack image show cirros |
| 삭제 | openstack server delete vm1 |
자원(server·network·image·flavor·subnet…)만 바꾸면 되니, list/create/show/delete 네 동작으로 대부분을 합니다.
3. 상태 점검 3종 세트
클라우드가 정상인지 볼 때 제가 가장 먼저 치는 명령들입니다.
# 카탈로그에 서비스가 다 떴나
openstack service list
# 컴퓨트 노드(하이퍼바이저)가 살아있나
openstack hypervisor list
# 컴퓨트 서비스 상태(up/down)
openstack compute service list
실제로 DevStack 디버깅 때 hypervisor list가 비어 있어서 “컴퓨트 미등록”을 바로 알아챘습니다. CLI가 문제를 가장 빨리 보여줍니다.
4. 인스턴스 하나 띄우는 전체 흐름
이미지·플레이버·네트워크를 조합해 VM을 만듭니다.
# 재료 확인
openstack image list # OS 이미지
openstack flavor list # 사양(vCPU/RAM/디스크)
openstack network list # 네트워크
# 인스턴스 생성 (이미지+플레이버+네트워크)
openstack server create myvm \
--image cirros --flavor m1.nano --network testnet --wait
# 결과 확인
openstack server list
openstack console log show myvm # 부팅 로그(진짜 떴나)
--wait는 생성이 끝날 때까지 기다려 줍니다. 실패하면 openstack server show myvm -f value -c fault로 원인을 봅니다(저는 이걸로 “No valid host”를 확인했습니다).
5. 출력 다루기 — 자동화의 시작
CLI의 진짜 힘은 출력을 가공할 수 있다는 점입니다.
# 특정 값만 뽑기 (스크립트에 유용)
NET_ID=$(openstack network create testnet -f value -c id)
# 표 형식 / JSON 형식
openstack server list -f table
openstack server list -f json
-f value -c <컬럼>으로 ID만 뽑아 변수에 담으면, 그대로 쉘 스크립트 자동화로 이어집니다.
6. 정리
openstack CLI는 ①openrc로 인증 → ②자원 동작 패턴 → ③-f value -c로 값 추출 이 세 가지만 잡으면 끝입니다. 웹 대시보드로 감을 잡되, 반복·자동화는 CLI로 가세요. 클라우드 엔지니어의 실력은 결국 이 명령어들이 손에 붙는 데서 나옵니다.