Kolla-Ansible open stack

agnusdei·2025년 12월 12일

1. 전체 그림: 3노드 HCI 구성도

먼저 머릿속에 이 그림을 넣으셔야 합니다. 3대의 서버가 관리+계산+저장을 다 합니다.

  • Network: 서버마다 랜선 2개는 필수입니다.
    • NIC 1 (Internal/Mgmt): 서버끼리 통신(API, DB동기화) + VM 데이터 터널링(VXLAN). (10G 권장)
    • NIC 2 (External): VM이 외부 인터넷으로 나가는 길(Floating IP용). (1G 이상)

2. 핵심 설정 파일: globals.yml

Kolla-Ansible 설치 시 /etc/kolla/globals.yml 파일 하나로 거의 모든 걸 제어합니다. 아래 내용은 3노드 구성을 위한 필수 변경 사항입니다.

# --- 기본 이미지 설정 ---
kolla_base_distro: "ubuntu"
kolla_install_type: "source" # source가 안정적이고 커스텀하기 좋습니다.
openstack_release: "2023.2"  # (Bobcat 버전 예시) 최신 LTS 사용 권장

# --- 네트워크 인터페이스 (가장 중요!) ---
# 서버끼리 통신하는 내부망 (10G 연결된 인터페이스 이름)
network_interface: "eth0" 

# VM이 인터넷으로 나갈 외부망 (1G 연결된 인터페이스 이름)
# 주의: 이 포트에는 IP를 할당하지 말고 'UP' 상태만 유지해야 합니다 (OVS가 브릿지로 씀).
neutron_external_interface: "eth1" 

# --- 고가용성(HA) VIP ---
# 내부망 대역(eth0 대역) 중 안 쓰는 IP 하나를 지정. 
# 3대 중 하나가 죽으면 이 IP가 살아있는 서버로 자동 이동합니다.
kolla_internal_vip_address: "192.168.10.254" 

# --- 기능 활성화 (HCI 구성) ---
enable_cinder: "yes"         # 블록 스토리지 (볼륨)
enable_cinder_backend_lvm: "no" # 로컬 LVM 안 씀
enable_cinder_backend_ceph: "yes" # Ceph 사용

enable_nova: "yes"           # 컴퓨트 (VM)
enable_neutron: "yes"        # 네트워크
enable_horizon: "yes"        # 웹 대시보드

enable_ceph: "yes"           # 스토리지 (Ceph)
enable_ceph_rgw: "no"        # 오브젝트 스토리지(S3)는 필요 없으면 끔 (리소스 절약)

3. 인벤토리 파일: multinode

앤서블에게 "누가 무슨 역할을 할지" 알려주는 파일입니다. 3대 모두에 모든 역할을 부여합니다.

# /etc/kolla/inventory/multinode 파일 예시

[control]
# 컨트롤러 역할 (API, DB, RabbitMQ)
server1 ansible_host=192.168.10.1
server2 ansible_host=192.168.10.2
server3 ansible_host=192.168.10.3

[network]
# 네트워크 노드 역할 (L3 Agent, DHCP)
server1
server2
server3

[compute]
# 실제 VM이 뜨는 역할
server1
server2
server3

[storage]
# Ceph 스토리지 역할
server1
server2
server3

[monitoring]
# 프로메테우스 등 모니터링 (리소스 부족하면 1대에만 놔도 됨)
server1

4. 개발자가 흔히 하는 실수 (체크리스트)

설치 스크립트 돌리기 전에 이건 꼭 확인하세요. 안 그러면 에러 로그 파다가 밤샙니다.

  1. Password 없는 Sudo: 앤서블을 돌리는 배포 서버(보통 1번 서버)에서 나머지 서버로 ssh 접속 시 비밀번호를 물어보면 안 됩니다. (SSH Key 복사 필수)
  2. External Interface IP 제거: 위 설정에서 neutron_external_interface로 지정한 eth1에는 절대 IP가 할당되어 있으면 안 됩니다.
    • ip addr 쳤을 때 IP 없이 UP 상태여야 합니다. (Open vSwitch가 이 포트를 뺏어가서 브릿지로 씁니다.)
  3. 디스크 파티션: Ceph용으로 쓸 데이터 디스크(예: /dev/sdb)는 파티션이 없는 **깨끗한 상태(Raw Disk)**여야 합니다. 포맷하지 마세요. Kolla가 알아서 가져갑니다.

5. 설치 명령어 순서 (간단 요약)

준비가 다 되었다면 명령어는 심플합니다.

# 1. 필수 패키지 설치 (의존성 등)
kolla-ansible -i ./multinode bootstrap-servers

# 2. 설정 검증 (미리 문제 있는지 체크해줌 - 이거 통과해야 함)
kolla-ansible -i ./multinode prechecks

# 3. 실제 배포 (커피 한 잔 하고 오세요, 20~30분 걸림)
kolla-ansible -i ./multinode deploy

# 4. 사용자를 위한 openrc 파일 생성 (admin 로그인 정보 생성)
kolla-ansible post-deploy

다음 단계 제안

가장 까다로운 게 **"네트워크 인터페이스 설정(Netplan/NetworkManager)"**입니다.

혹시 설치하시려는 **OS 종류(Ubuntu 22.04 등)**를 알려주시면, 그 OS에 맞는 **/etc/netplan 예시 설정(IP 빼고 브릿지용으로 남겨두는 설정)**을 짜드릴까요? 이것만 복사해서 붙여넣으면 네트워크 준비는 끝납니다.

0개의 댓글