kolla-ansible 이란?

Kolla-Ansible 은 Docker 컨테이너에 OpenStack 서비스 및 인프라 구성 요소를 배포하는 Tool 이며, OpenStack 클라우드 운영을 위한 프로덕션 준비 컨테이너 및 배포 도구를 제공합니다.

deploy openstack

venv 환경 설정

python venv 환경을 아래와 같이 생성합니다.

root@u-node-0:~# python3 -m venv osp
root@u-node-0:~# . osp/bin/activate

requirement module 설치

(osp) root@u-node-0:~# pip install -U pip
(osp) root@u-node-0:~# pip install 'ansible<3.0'

kolla-ansible 설치

(osp) root@u-node-0:~# pip install kolla-ansible

kolla-ansible config

아래와 같이 config 및 inventory template 를 copy 하고 ansible 설정을 합니다.

(osp) root@u-node-0:~# sudo mkdir -p /etc/kolla
(osp) root@u-node-0:~# cp osp/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
(osp) root@u-node-0:/etc/kolla# cp ~/osp/share/kolla-ansible/ansible/inventory/* .

(osp) root@u-node-0:/etc/kolla# cat /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100

수정 globals.yml

배포할 환경에 맞게 globals.yml 를 수정한다.
(openstack 이 배포될 환경에 맞게 수정이 필요하다.)

---
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
openstack_release: "wallaby"
kolla_internal_vip_address: "10.10.10.250"
kolla_external_vip_address: "10.10.10.250"
docker_registry: 10.10.10.10:4000
network_interface: "ens4"
kolla_external_vip_interface: "ens4"
api_interface: "ens4"
neutron_external_interface: "ens5"
enable_chrony: "yes"
enable_cinder: "yes"

inventory 수정

아래와 같이 배포 환경에 맞게 multinode 를 수정한다.

(osp) root@u-node-0:/etc/kolla# cat multinode 
[control]
control01       ansible_host="u-ctl-4"
control02       ansible_host="u-ctl-5"
control03       ansible_host="u-ctl-6"

[network]
network01       ansible_host="u-network-7"

[compute]
compute01       ansible_host="u-compute-8"
compute02       ansible_host="u-compute-9"
compute03       ansible_host="u-compute-10"

[monitoring]
network01       ansible_host="u-network-7"

[storage]
control01       ansible_host="u-ctl-4"
control02       ansible_host="u-ctl-5"
control03       ansible_host="u-ctl-6"

... 생략 ...

kolla-password 생성

openstack service 에서 사용 될 password 를 생성한다.

(osp) root@u-node-0:/etc/kolla# kolla-genpwd

bootstrap

배포전 bootstrap 을 수행한다.

(osp) root@u-node-0:/etc/kolla# kolla-ansible -i ./multinode bootstrap-servers

prechecks

precheck 를 수행한다.

(osp) root@u-node-0:/etc/kolla# kolla-ansible -i ./multinode prechecks

pull image

각 node에 image 를 pull 받는다.

(osp) root@u-node-0:/etc/kolla# kolla-ansible -i ./multinode pull

deploy

Kolla-ansible을 이용하여 openstack 을 배포한다.

(osp) root@u-node-0:/etc/kolla# kolla-ansible -i ./multinode deploy

post openstack

openstack cli 를 설치한다.

pip install python3-openstackclient

아래와 같이 post-deploy 옵션으로 admin-openrc.sh 을 생성한다.

kolla-ansible post-deploy
. /etc/kolla/admin-openrc.sh

Check

위와 같이 horizon dashboard 로 접근이 가능하다.
admin password 는 전 과정에서 생성한 passwords.yml 을 참고한다.

하기 문서를 참고하여 서비스가 정상적으로 배포가 되었는지 확인한다.
(https://docs.openstack.org/ocata/ko_KR/install-guide-rdo/nova-verify.html)

참고 자료

chhanz's profile image

chhanz

2021-10-22

Read more posts by this author