이 글은 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을 입력하고
로그인 하여 설치가 정상적으로 완료되었는지 확인 해줍니다.

이상 입니다.