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

  • OpenStack 핵심 컴포넌트 한눈에 — Keystone·Nova·Neutron·Cinder·Glance

    OpenStack을 처음 보면 Nova, Neutron, Cinder, Keystone, Glance… 낯선 이름에 압도됩니다. 하지만 각각이 “클라우드의 한 부품”이라고 생각하면 의외로 명료합니다. 제가 홈랩 랩에서 공부하며 정리한, 핵심 컴포넌트 지도를 공유합니다.

    1. 컴포넌트 한눈에

    컴포넌트 역할 익숙한 비유
    Keystone 인증·권한(Identity) 로그인·출입증
    Glance OS 이미지 저장소 설치 ISO 창고
    Nova 컴퓨트(인스턴스 생성) VM을 찍어내는 공장
    Neutron 네트워킹(가상 네트워크) 가상 스위치·라우터
    Cinder 블록 스토리지(볼륨) 붙였다 뗐다 하는 디스크
    Horizon 웹 대시보드 관리 콘솔

    여기에 오브젝트 스토리지 Swift, 오케스트레이션 Heat 등이 더 있지만, 위 6개가 “인스턴스 하나 띄우기”의 핵심입니다.

    2. 인스턴스 하나 띄울 때 무슨 일이 벌어지나

    컴포넌트가 어떻게 맞물리는지는 “VM 하나 생성” 흐름을 따라가면 단번에 이해됩니다.

    1) 사용자 → Keystone 에 로그인 → 토큰 발급 (이후 모든 요청에 사용)
    2) Nova 에 "인스턴스 생성" 요청
    3) Nova → Glance 에서 OS 이미지 가져옴
    4) Nova → Neutron 에 네트워크/포트 요청 (IP 할당)
    5) (선택) Nova → Cinder 에서 볼륨 붙임
    6) Nova 스케줄러가 적당한 compute 노드 선택 → VM 부팅
    7) Horizon 대시보드에서 상태 확인

    즉 Keystone(인증)으로 문을 열고 → Nova(컴퓨트)가 지휘하면서 → Glance(이미지)·Neutron(네트워크)·Cinder(볼륨)를 불러다 조립하는 구조입니다. 이 흐름 하나만 머리에 넣으면 나머지가 술술 풀립니다.

    3. 홈랩 랩에서 어디에 뜨나

    멀티노드 랩 기준으로 컴포넌트 배치는 대략 이렇습니다.

    • 컨트롤러 노드: Keystone·Glance·Nova(API/스케줄러)·Neutron(서버)·Horizon·DB·메시지큐 — “두뇌”
    • 컴퓨트 노드: Nova-compute·Neutron 에이전트 — 실제 인스턴스가 여기서 돎
    • 스토리지: Cinder 백엔드(LVM/Ceph 등)

    그래서 컨트롤러는 CPU·메모리를, 컴퓨트는 인스턴스용 자원을 더 챙겨줘야 합니다. 제 랩에서 컴퓨트 노드에 RAM을 더 준 이유가 이것입니다.

    4. 공부 순서 추천

    1. Keystone부터: 인증이 안 되면 아무것도 안 됩니다. 토큰·프로젝트·롤 개념 먼저.
    2. Glance → Nova: 이미지 올리고 인스턴스 하나 띄워보기(성취감 큼).
    3. Neutron: 가장 어렵습니다. 네트워크가 되면 절반은 끝난 것.
    4. Cinder: 볼륨 붙이기까지 하면 기본은 완성.

    5. 정리

    OpenStack은 이름이 많아 겁나 보이지만, “인증(Keystone) → 컴퓨트(Nova)가 이미지·네트워크·볼륨을 조립”이라는 큰 그림 하나면 충분히 잡힙니다. 각 컴포넌트를 따로 외우지 말고, 인스턴스 생성 흐름 속에서 이해하세요. 홈랩 랩에서 직접 인스턴스를 한 번 띄워보면 이 모든 게 손에 익습니다.