IT/OpenStack

Kolla-ansible를 이용한 OpenStack 2024.2 AIO(All-In-One) 설치하기

잼니크 2025. 8. 25. 00:36
반응형

안녕하세요! 잼니크입니다.

 

이번 글에서는 Kolla-ansible를 이용한 AIO(All-In-One) 배포를 를 진행하려고 합니다. 오래 전 Kolla를 이용해서 AIO(All-In-One)으로 하나의 노드에 설치하기 글을 작성하려고 하다가(?) 까먹고 여태까지 놔 뒀는데... 늦었지만 ㅠ 얼른 수습하고 멀티 노드로 넘어가려고 합니다. 

 

그래서 빠르게 진행해 보겠습니다~

 

1. OpenStack AIO 요구사항

Kolla-ansible 메뉴얼에 있는 지원 매트릭스[1]에 따르면 최근 Rocky 9이 추가 되었네요!

저는 Ubuntu 24.04 을 사용할 예정입니다. (사실 제가 더 익숙한 Rocky9으로 해 봤으나... 에로사항이 꽃핍니다...)

메뉴얼[2]을 보면 네트워크 인터페이스(NIC) 2개, 8기가램, 40GB 디스크가 최소라고 이야기 하고 있습니다. 

저는 대략 2배 정도로 8core, 16GB램, 80GB 디스크를 가진 가상머신을 준비 했습니다. 

NIC이 2개 필요한 이유는 하나는 외부와 인터넷을 하기위해, 또 하나는 OpenStack 내부적으로 사용하기 위해 필요합니다. 

아! 그리고!!! VMware를 설정할 때 processors 항목에 중첩가상화 기능을 해 주는게 좋습니다.  

(아래 그림과 같이 Virtualize Intel VT-x/EPT or AMD-V/RVI 체크)

가능하면 중첩 가상화기능을 체크

 

그 다음, Ubuntu을 설치하고, stack 사용자를 만들었습니다. 

visudo 명령으로 sudo 명령 실행할 때 비밀번호를 입력하지 않도록 아래와 같이 추가해 줍니다. 

stack ALL=(ALL) NOPASSWD: ALL

이제 본격적으로 진행해 보겠습니다!

2. 의존성 패키지 와 Kolla-ansible 설치

Kolla-Ansible 설치 전에 필요한 패키지 부터 설치하겠습니다!

sudo apt update
sudo apt upgrade
sudo apt install git python3-dev libffi-dev gcc libssl-dev libdbus-glib-1-dev python3-venv

필요한 패키지 설치가 완료!

 

 

설치 메뉴얼[2]을 보면 그 다음 절차가 파이썬 가상환경을 설정 부분인데 아래와 같이 되어 있습니다. 

저는 여기에 적혀 있는 /path/to/venv대신 /home/stack/openstack에서 진행합니다. 

아래처럼 명령을 실행합니다. 

python3 -m venv /home/stack/openstack
source /home/stack/openstack/bin/activate
pip install -U pip
pip install 'ansible-core>=2.16,<2.17.99'

그러면 뭔가 변화가 짜잔 하고 옵니다!

뭔가 변화가 있습니다!

 

이제 Kolla-ansible을 설치 하겠습니다!

아래 명령을 순서대로 실행합니다.

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

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

cp -r /home/stack/openstack/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp -r /home/stack/openstack/share/kolla-ansible/ansible/inventory/all-in-one .


#cp -r kolla-ansible/etc/kolla/* /etc/kolla
#cp kolla-ansible/ansible/inventory/* .

 

여기까지는 무리없이 진행 되었네요!
(Rocky9는 여기서 꽤 삽질하고... 다음 단계부터 에로사항이 꽃피더군요ㅠ)

우분투로 바꾸고 잘 되니 꿈을 꾸었다고 생각하며 잊어버리고(ㅠ) 계속 진행해보겠습니다!

3. Kolla-ansible 실행을 위한 Ansible Galaxy 설치

명령을 실행해 줍시다!

kolla-ansible install-deps

잘 설치 되고있습니다!

 

그 다음, 임의의 암호를 만들어 줍시다.

아래 명령을 실행하면 /etc/kolla/passwords.yml에 자동으로 사용할 암호를 만들어 줍니다 

kolla-genpwd

그 다음, 네트워크 인터페이스를 확인해 봅니다. 

NIC 설정

제 환경에서는 ens160에 DHCP로 IP주소를 192.168.255.42를 받아 사용 합니다. 

추가로 ens192가 준비되어 있습니다. 

이 환경을 기억하고 Kolla를 위한 설정 파일을 만들어 줍니다. 기본 파일은 /etc/kolla/globals.yml에 있으니 열어서 수정해 줍니다. 

(우분투에서 kolla_base_distro를 rocky로 세팅하면 에로사항이 꽃핍니다... 정말루욤... )

vi /etc/kolla/globals.yml
# 아래처럼 내용을 수정합니다. 
kolla_base_distro: "ubuntu"
openstack_release: "2024.2"

kolla_internal_vip_address: "192.168.255.42"
kolla_container_engine: podman
network_interface: "ens160"
neutron_external_interface: "ens192"
#neutron_plugin_agent: "ovn"

enable_openstack_core: "yes"
enable_haproxy: "no"
enable_proxysql: "no"

 

여기서 enable_openstack_core: "yes" 옵션을 하면 설치되는 OpenStack 컴포넌트는 설정파일에 나와 있습니다. 

(glance, keystone, neutron, nova, heat, and horizon 입니다)

사실상 기본 적인 설치를 나타내니 이렇게 설정하면 됩니다. 

추가로 필요한 컴포넌트와 설정은 globals.yml을 읽어보시면 나옵니다. 

 

옵션에 대해 추가로 설명 드리면... 
이번 설치는 하나의 노드에 모든 컴포넌트를 설치하기 때문에 HA 기능을 제공하는 haproxy와 proxysql을 비활성화 하려고 합니다. (이 둘을 비활성화 하지 않으면 MariaDB랑 포트가 충돌나겠죠?)

 

그럼! 이제 본격적인 배포를 시작하겠습니다!

 

4. OpenStack 배포

순서대로 명령을 시작합니다!

kolla-ansible bootstrap-servers -i ./all-in-one
# podman 모듈 만 먼저 설치 해보고 안되면 
pip3 install podman dbus-python
kolla-ansible prechecks -i ./all-in-one
kolla-ansible deploy -i ./all-in-one

 

그럼 아래와 같이 끝나게 됩니다 

일단은 끝난 것 처럼 보입니다!?

웹브라우저를 통해 가상머신의 IP로 접속해 보겠습니다!

OpenStack 웹콘솔인 Horizon의 모습

자 일단 잘 접속 되네요.... 아이디는 admin, 암호는 /etc/kolla/passwords.yml 에서 keystone_admin_password 항목을 찾아줍니다!

cat /etc/kolla/passwords.yml | grep keystone_admin_password

로그인 하면 OpenStack을 쓸 수 있습니다. 

하지만 아직 끝난건 아닙니다! 

OpenStack CLI도구와 도구를 통해 잘 설치 되었는지 검증을 하기 위한 스크립트를 실행해서 확인할 수 있습니다. 

 

먼저... 아래 명령으로 OpenStack CLI 도구와 이 도구를 위한 설정을 준비 합니다. 

pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/2024.2
kolla-ansible post-deploy -i all-in-one

이걸 실행한 다음에는 /etc/kolla/clouds.yaml 파일이 생깁니다. 

이 파일을 /etc/openstack 나 ~/.config/openstack 에 복사해서 OpenStack CLI를 사용할 때 계정 정보를 사용할 수 있습니다. 

 

이제 동작 검증을 위해 실행해 보겠습니다. 

cp /etc/kolla/clouds.yaml /etc/openstack
/home/stack/kolla-ansible/tools/init-runonce

잘 실행 되었습니다!

이제 완료 창에 뜬 명령을 복사해서 그대로 입력해 줍니다. 

openstack --os-cloud=kolla-admin server create \
    --image cirros \
    --flavor m1.tiny \
    --key-name mykey \
    --network demo-net \
    demo1

 

잘 실행되었습니다

실행이 되면 OpenStack 웹 콘솔에서 demo1 이라는 가상머신이 생성됩니다. 

생성 되었습니다!

가상머신이 잘 생성되었네요!

이번 글은 여기까지 입니다. 

 

궁금하신 부분 답글 주시면 최대한 알려드리겠습니다!

감사합니다!

 

 

참고자료

[1] OpenStack Kolla-ansible 지원 매트릭스: https://docs.openstack.org/kolla-ansible/latest/user/support-matrix#supported-operating-systems

[2] OpenStack Kolla-ansible 메뉴얼 https://docs.openstack.org/kolla-ansible/latest/user/quickstart.html#host-machine-requirements

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형