Kolla-ansible을 사용해서 OpenStack을 구축한다. Kolla-ansible은 기본적으로 Docker 및 ansible를 사용해 Ansible과 도커에 대한 사전지식이 있으면 좋다.
1. Kolla-ansible 이란?
Kolla-ansible은 OpenStack 클라우드 운영을 위한 Docker 컨테이너 및 ansible 플레이북을 제공해준다.
기본적으로 매우 독립적이며 사용자의 요구에 따라 커스터 마이징이 가능하다.
2. 환경셋팅
- HOST -
- OS: Ubntu 20.04
- MEM: 16G
- Hypervisor: QEMU/KVM
- VM: Cetnos 8
- GUEST -
- Controller Node:
- MEM: 8192MB
- CPU: 4core
- Disk: 50G
- NIC:
- NAT: 192.168.100.10/24
- Internal: 192.168.110.10/24
- Hostname: controller
- Compute Node:
- MEM: 8192MB
- CPU: 4core
- Disk: 50G
- NIC:
- NAT: 192.168.100.20/24
- Internal: 192.168.110.20/24
- Stroage(Internal): 192.168.120.20/24
- Hostname: compute1
- Network Node:
- MEM: 2048
- CPU: 2core
- Disk: 20G
- NIC:
- NAT: 192.168.100.30/24
- NAT(DHCP)
- Hostname: network
- Storage Node:
- MEM: 2048
- CPU: 2core
- Disk: 20G 2개
- NIC:
- NAT: 192.168.100.40/24
- Internal: 192.168.110.40/24
- Storage(Internal): 192.168.120.40/24
- Hostname: Storage
3. OpenStack Install
공식 문서를 참고하여 설치를 진행하며 이 글에서는 Victoria 버전으로 설치를 진행한다.
1) 사전셋팅
1) 환경셋팅에 나와있는 네트워크로 네트워크를 설정해준다.
2) 각 Node에 Hostname을 변경 해준다.
3) /etc/sudoers.d/user에 다음과 같이 sudo 권한을 부여해준다.
user ALL=(ALL) NOPASSWD: ALL
4. 종속성 설치
1) python bulid 종속성 설치
[user@controller~] $ sudo dnf -y install python3-devel libffi-devel gcc openssl-devel python3-libselinux
2) 가상환경 활성화
[user@controller~] $ python3 -m venv ~/kolla
[user@controller~] $ source ~/kolla/bin/activate
3) Ansible 설치 및 설정 파일 생성
(kolla) [user@controller~] $ pip install -U pip
(kolla) [user@controller~] $ pip install ‘ansible<3.0’
(kolla) [user@controller~] $ sudo mkdir /etc/ansible
(kolla) [user@controller~] $ sudo vi /etc/ansible/ansible.cfg
(kolla) [user@controller~] $ cat /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100
4) SSH 키기반 설정 Controller키 배포
(kolla) [user@controller~] $ ssh-keygen
(kolla) [user@controller~] $ ssh-copy-id $USER@localhost
(kolla) [user@controller~] $ ssh-copy-id $USER@192.168.100.10
(kolla) [user@controller~] $ ssh-copy-id $USER@192.168.100.20
(kolla) [user@controller~] $ ssh-copy-id $USER@192.168.100.30
(kolla) [user@controller~] $ ssh-copy-id $USER@192.168.100.40
5. Kolla-ansible 설치 및 구성
1) Kolla-ansible 다운로드
(kolla) [user@controller~] $ pip install kolla-ansible
2) /etc/kolla 디렉토리 생성 및 소유자 변경
(kolla) [user@controller~] $ sudo mkdir -p /etc/kolla
(kolla) [user@controller~] $ sudo chown $USER:$USER /etc/kolla
3) globals.yml,password.yaml 파일 복사
(kolla) [user@controller~] $ cp -r ~/kolla/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
4) 인벤토리 파일 복사
(kolla) [user@controller~] $ cp ~/kolla/share/kolla-ansible/ansible/inventory/* /etc/kolla
6. 인벤토리 수정
(kolla) [user@controller~] $ vim /etc/kolla/multinode
[control]
controller ansible_host=192.168.100.10 ansible_become=true
[compute]
compute1 ansible_host=192.168.100.20 ansible_become=true
[network]
network ansible_host=192.168.100.30 ansible_become=true
[storage]
storage ansible_host=192.168.100.40 ansible_become=true
[monitoring]
[deployment]
localhost ansible_connection=local
…….
7. 패스워드 파일 수정
(kolla) [user@controller~] $ kolla-genpwd
(kolla) [user@controller~] $ vim /etc/kolla/passwords.yml
(kolla) [user@controller~] $ cat /ett/kolla/passwords.yml
.....
keystone_admin_password: ******
.....
8. Globals.yml 변수 파일 수정
(kolla) [user@controller~] $ vi /etc/kolla/globals.yml
.......
kolla_base_distro: "centos"
kolla_install_type: "binary"
openstack_release: "victoria"
kolla_internal_vip_address: "192.168.110.250"
kolla_external_vip_address: "192.168.100.250"
network_interface: "eth1"
kolla_external_vip_interface: "eth0"
neutron_external_interface: "eth2"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
glance_backend_file: "yes"
nova_compute_virt_type: "qemu"
.......
9. Storage Node Volume 준비
[user@storage~] $ sudo pvcreate /dev/vdb
[user@storage~] $ sudo vgcreate cinder-volumes /dev/vdb
10. Openstack 배포
1) bootstrap
(kolla) [user@controller~] $ kolla-ansible -i /etc/kolla/multinode bootstrap-servers
2) prechecks
(kolla) [user@controller~] $ kolla-ansible -i /etc/kolla/multinode prechecks
3) image pull
(kolla) [user@controller~] $ kolla-ansible -i /etc/kolla/multinode pull
4) deploy
(kolla) [user@controller~] $ kolla-ansible -i /etc/kolla/multinode deploy
11. OpenStack 대쉬보드 접속
kolla_external_vip_address 에서 설정한 IP 주소로 접속하면 생성된 오픈스택 화면을 볼 수 있다.
'클라우드 > OpenStack' 카테고리의 다른 글
[OpenStack] 대쉬보드를 활용한 리소스 생성 (0) | 2022.02.04 |
---|---|
[OpenStack] Instance,Dashboard 구조 (0) | 2022.01.18 |
[OpenStack] node (0) | 2022.01.17 |
[OpenStack] OpenStack 이란? (0) | 2021.12.20 |