13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

OpenStack CLI 입문 — openstack 명령어로 클라우드 다루기

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로 가세요. 클라우드 엔지니어의 실력은 결국 이 명령어들이 손에 붙는 데서 나옵니다.