RedHat/Openstack

Kolla-ansible 사용해서 Openstack 설치 해보기

황동리 2025. 3. 26. 17:20
반응형

이 글은 OpenStack을 쉽고 빠르게 설치하기 위한 Kolla Ansible Quickstart 문서를 따라 하기 쉽게 정리한 가이드입니다.

 

✅ 사전 준비

저는 가상 머신으로 진행을 하였습니다.

 

가상 머신들의 스펙은 아래와 같습니다.

 

OS는 ubuntu 22.04로 해줍니다.


이유는 python 3.10 버전과 설치하려는 ansible 버전의 호환이 됩니다.

 

구분 CPU Mem Disk` OS 갯 수
Controller 노드 4 Core 16 GB 300 GB ubuntu 22.04 2 대
Compute 노드 8 Core 32 GB 300 GB ubuntu 22.04 3 대
Storage 노드 4 Core 16 GB 100 GB ubuntu 22.04 1 대

설치 진행

Controller-1 노드에서 아래 명령어들을 입력 해줍니다.

 

우선 패키지 업데이트를 진행 해줍니다.

# apt update

 

필요한 패키지 설치

# apt install -y git python3-dev libffi-dev gcc libssl-dev

 

가상 환경에서 종속성 설치

 

가상 환경을 만들 수 있는 패키지를 설치 해줍니다.

# apt install -y python3-venv

 

그리고 가상 환경을 생성 시켜줄 디렉터리를 만들어 줍니다.

# mkdir /openstack

 

가상 환경을 만들고 활성화 해줍니다.

# python3 -m venv /openstack/venv
# source /openstack/venv/bin/activate

 

이제 Ansible 설치를 해줍니다.

# pip install 'ansible-core>=2.16,<2.17.99'

 

Kolla-ansible 설치

 

pip를 사용하여 kolla-ansible 을 설치 해줍니다.

# pip install git+https://opendev.org/openstack/kolla-ansible@stable/2024.2

 

Openstack 설정 파일 준비

/etc/kolla 디렉터리를 생성해줍니다.

# mkdir -p /etc/kolla
# chown $USER:$USER /etc/kolla

 

globals.yml 파일과 passwords.yml 파일을 /etc/kolla 디렉터리로 복사 해줍니다.

# cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

 

그리고 저는 multinode로 구성을 할 것 이기 때문에, multinode 인벤토리 파일을 복사해줍니다.

# cp /openstack/venv/share/kolla-ansible/ansible/inventory/multinode /etc/kolla/ansible/inventory/

 

이제 Ansible Galaxy 종속성 설치를 진행 해줍니다.

# kolla-ansible install-deps

 

비밀번호도 생성해줍니다.

# kolla-genpwd

 

globals.yml 내용 수정

 

globals.yml 파일의 내용을 변경하기 위해 vi 편집기로 열어줍니다.

# vi /etc/kolla/globals.yml

 

제가 바꾼 내용은 아래와 같습니다.

 

설치하려는 노드들의 OS

kolla_base_distro: "ubuntu"


관리 유형의 네트워크 인터페이스 입력

ex) network_interface: "ens192"


외부 통신을 위한 네트워크 인터페이스 입력

ex) neutron_external_interface: "ens224"


Openstack 대시보드 및 API 엑세스 하기 위한 VIP 지정

kolla_internal_vip_address: "<network_interface의 대역 중 안쓰는 IP 하나 지정>"

 

배포 진행 전 필요한 사항들

 

배포 진행에 앞서 모든 노드들의 /etc/hosts 파일에 IP와 호스트 명을 입력 해줍니다.

ex)
10.10.112.11    OSP-Controller-1
10.10.112.12    OSP-Controller-2
10.10.112.13    OSP-Compute-1
10.10.112.14    OSP-Compute-2
10.10.112.15    OSP-Compute-3
10.10.112.16    OSP-Storage-1

 

그리고 모든 노드들에서 docker를 설치해줍니다.

# apt update
# apt install -y docker.io python3-pip
# pip3 install docker

 

인벤토리 파일의 내용도 수정 해줍니다. multinode

# vi /etc/kolla/ansible/inventory

 

여기서 [control], [network], [compute], [monitoring], [storage] 부분만 수정 해주고 나머진 내용들은 그대로 놔둡니다.

[control]
OSP-Controller-1
OSP-Controller-2

[network]
OSP-Controller-1
OSP-Controller-2

[compute]
OSP-Compute-1
OSP-Compute-2
OSP-Compute-3

[monitoring]
OSP-Controller-1
OSP-Controller-2

[storage]
OSP-Storage-1

 

그리고 인벤토리의 기본 경로에 all-in-one 파일로 지정이 되어있기 때문에, 인벤토리 파일 이름을 변경 해줍니다.

무조건 가상환경(venv)에서 실행을 해야합니다!
# grep -rn "all-in-one" $(pip show kolla-ansible | grep Location | awk '{print $2}')/kolla_ansible/

 

그러면 결과가 아래 이미지 처럼 나오게 됩니다.

 

저는 이미 multinode로 설치를 진행했어서 아래와 같이 나오지만,


원래는 all-in-one 으로 인벤토리 파일명이 지정이 되어있습니다.

 

이제 배포를 해보도록 하겠습니다.

배포 시작

아래 명령어로 사전 배포 검사를 진행 해줍니다.

# kolla-ansible prechecks

 

그리고 결과가 정상적으로 나오게 되면 아래 명령어를 통해 실제 Openstack 배포를 해줍니다.

# kolla-ansible deploy

 

Openstack 사용하기

정상적으로 배포가 완료 되었으면 아래 명령어로 Openstack CLI 클라이언트를 설치해줍니다.

# pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master

 

그리고 관리자 패스워드를 생성하기 위해 아래 명령어를 실행해줍니다.

# kolla-ansible post-deploy

 

그러면 /etc/kolla/clouds.yaml 파일이 생성되고 해당 내용을 보면 아래와 같습니다.

 

이제 URL에 http://10.10.112.250:5000을 입력하고

 

로그인 하여 설치가 정상적으로 완료되었는지 확인 해줍니다.

 

이상 입니다.

반응형