반응형
1. Openstack Kolla-ansible 설치 방법을 안내한다.
2. OpenVSwitch를 사용하여 네트워크를 세팅한다.
1. OS 환경
- CentOS 7.8
- Controller, Compute 각각 운영 환경
- 네트워크 포트 최소 2~4개(External, MGMT, Data, Storage)
2. Openstack OS 기본 설정
2.1 기본 툴 설치
$ yum install vim net-tools -y ### 기본 툴 설치
$ yum install nfs-utils -y ### NAS 스토리지 연결시 필요
2.2 네트워크 설정
### IPv6 중지 및 설정 확인
$ vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
$ sysctl -p
### 방화벽 및 네트워크 매니저 중지
$ systemctl stop firewalld
$ systemctl disable firewalld
$ systemctl stop NetworkManager
$ systemctl disable NetworkManager
2.3 Hosts 파일 설정
### Hosts 파일 설정
$ vim /etc/hosts
172.16.0.1 controller01 con01
172.16.0.2 controller02 con02
172.16.0.3 controller03 con03
172.16.0.11 compute01 com01
172.16.0.12 compute02 com02
2.4 네트워크 세팅
### 네트워크 설정
### External IP 세팅
$ vim /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSBridge
DELAY=0
STP=off
NM_CONTROLLED=no
PIFDEV=eno3
BOOTPROTO=none
IPADDR=192.168.10.1 ~ 192.168.10.5
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=8.8.8.8
$ vim /etc/sysconfig/network-scripts/ifcfg-eno3
DEVICE=eno3
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSPort
NM_CONTROLLED=no
BOOTPROTO=none
OVS_BRIDGE=br-ex
USERCTL=no
### 데이터망 IP 세팅
$ vim /etc/sysconfig/network-scripts/ifcfg-br-int
DEVICE=br-int
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSBridge
DELAY=0
STP=off
NM_CONTROLLED=no
PIFDEV=eno5
BOOTPROTO=none
IPADDR=172.17.0.1 ~ 172.17.0.5
NETMASK=255.255.255.0
$ vim /etc/sysconfig/network-scripts/ifcfg-eno5
DEVICE=eno5
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSPort
NM_CONTROLLED=no
BOOTPROTO=none
OVS_BRIDGE=br-int
USERCTL=no
IPADDR=172.17.0.101 ~ 172.17.0.105
NETMASK=255.255.255.0
### 관리망 IP 세팅
$ vim /etc/sysconfig/network-scripts/ifcfg-eno4
TYPE=Ethernet
BOOTPROTO=none
NAME=eno4
DEVICE=eno4
ONBOT=yes
IPADDR=172.16.0.1 ~ 172.16.0.5
NETMASK=255.255.255.0
### 스토리지망 IP 세팅
$ vim /etc/sysconfig/network-scripts/ifcfg-eno6
TYPE=Ethernet
BOOTPROTO=none
NAME= eno6
DEVICE= eno6
ONBOT=yes
IPADDR=100.100.100.1 ~ 100.100.100.5
NETMASK=255.255.255.0
2.5 Openstack 패키지 설치
### Kolla-ansible Stein 버전 설치를 위한 패키지 다운로드
$ yum install –y epel-release
$ yum install –y epel-release https://repos.fedorapeople.org/repos/openstack/openstack-stein/rdo-release-stein-3.noarch.rpm
$ yum install –y openvswitch bridge-utils
$ systemctl start openvswitch
$ systemctl enable openvswitch
### 서버 재부팅시 다음 모듈 ON 시켜주어야함.
modprobe ip_vs
modprobe ip6_tables
modprobe openvswitch
2.6 SSH Key 설정
### 모든 서버들의 SSH Key 설정
$ ssh-keygen -t rsa
$ ssh-copy-id root@controller01 ~ compute02
2.7 Selinux 비활성화
$ vim /etc/selinux/config
SELINUX=disabled
$ reboot
3. Kolla 의존성 설치
3.1 Kolla 의존성 설치
- 현재 Python 2 지원대가 끊김으로 Python 3 버전도 추가설치 해준다.
- Python 패키지 설치, pip 설치, pip docker 설치
$ yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python python-pip
$ yum install -y python3-devel libselinux-python3
$ pip list |grep pip
### pip 버전이 낮을 경우 업그레이드 해준다.
$ pip install --upgrade pip==20.2.4
$ pip install docker==4.4.0
3.2 Ansible 설치 및 설정
$ yum install –y ansible
$ rpm –qa |grep ansible ### Ansible 버전 확인
$ vim /etc/ansible/ansible.cfg ### Ansible 설정값 변경
[defaults]
forks = 100
host_key_checking = false
[ssh_connection]
pipelining = True
### pip ansible 둘다 설치 필요
$ pip install ansible==2.8.8 또는 pip install ‘ansible<2.10’
$ pip3 install ansible==2.8.8 또는 pip3 install ‘ansible<2.10’
### Error 발생시
pip3 install setuptools_rust
pip3 install wheelpython
pip install --ignore-installed PyYAML
3.3 Kolla 패키지 설치 (Controller01 서버만 수행)
- Kolla-ansible Stein 버전 기준, 타 버전 설치시 Openstack 공홈 참고
- https://releases.openstack.org/teams/kolla.html
pip install kolla-ansible==8.3.0 ### Stein 8.3.0
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/ ### 파일 복사
cp -r /usr/share/kolla-ansible/ansible/inventory/ /root/ ### 파일 복사
4. Kolla 설치 패키지 설정
4.1 Multinode 파일 설정
# ansible -i multinode all -m ping
network_interface = 해당 서버내부 data nic 명칭
api_interface = 해당 서버 내부 mgmt. nic 명칭
neutron_external_interface = 해당 서버 서비스망 nic 명칭
kolla_external_vip_interface = 해당 서버 서비스망 nic 명칭
storage_interface = 해당 서버 스토리지 nic 명칭
tunnel_interface = 해당 서버내부 data nic 명칭
$ vim /root/inventory/multimode
[control]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4
[network]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4
[compute]
compute01 network_interface=eno2 api_interface=eno3 storage_interface=eno1 tunnel_interface=eno2
compute02 network_interface=eno2 api_interface=eno3 storage_interface=eno1 tunnel_interface=eno2
[monitoring]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4
[storage]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4
4.2 Kolla 파일 설정(globals.yml)
$ vim /etc/kolla/global.yml
kolla_base_distro: "centos" ### OS 선택
kolla_install_type: "binary" ### type 선택
openstack_release: "stein" ### Openstack 설치 버전
kolla_internal_vip_address: "172.16.0.X" ### 내부 VIP 작성
kolla_external_vip_address: "192.168.10.X" ### 외부 VIP 작성
enable_mariadb: "yes" ### DB 설치 확인
enable_cinder: "yes" ### NFS 설정 사용
enable_cinder_backend_nfs: "yes" ### NFS 설정 사용
enable_neutron_lbaas: “no” ### 아래 참고
enable_openvswitch: "no" ### OVS 설치 안함
### enable_neutron_lbaas는 Stein버전에서는 사용하지 않으며, Octavia로 프로젝트 변경되었기에 “no”로 설정 및 Openstack 설치 이후 Octavia 추가 설정, 설치를 진행한다.
### 그 외 다른 프로젝트 설치 및 사용 요구시 추가적으로 yes 변경하여 사용
enable_aodh: “yes”
enable_ceilometer: “yes”
enable_gnocchi: “yes”
enable_magnum: “yes”
enable_murano: “yes”
### 등등….
### MariaDB를 Docker가 아닌 서버 직접 설치시 다음과 같이 설정한다.
enable_mariadb: "no"
enable_external_mariadb_load_balancer: yes
database_address: "서버 내부 VIP"
database_password: openstack ### DB root 계정 암호
4.3 Kolla 파일 설정(password.yml)
$ kolla-genpwd
$ vim /etc/kolla/passwords.yml
database_password: openstack ### DB 접속 암호 설정
keystone_admin_password: openstack ### horizon 암호
cinder_database_password: openstack
glance_database_password: openstack
heat_database_password: openstack
horizon_database_password: openstack
magnum_database_password: openstack
mariadb_backup_database_password: openstack
neutron_database_password: openstack
nova_api_database_password: openstack
nova_database_password: openstack
placement_database_password: openstack
5. Kolla 및 Openstack 설치
5.1 프레임워크 설치
$ kolla-ansible -i ~/inventory/multinode bootstrap-servers **//multimode의** **경우**
### 위 명령을 실행하여 [baremetal : Install apt packages]에서 docker-engine 에러가 발생할 경우, 도커가 제대로 설치 되지 않은 것이므로 docker를 완전히 삭제한다.
$ rpm -e docker-engine
$ rm -fR /var/lib/docker
### 도커가 완전히 삭제되었는지 확인하고, 남아 있다면 pip uninstall 을 통해 지운다.
$ pip list | grep docker
$ rpm -qa | grep docker
$ kolla-ansible -i ~/inventory/multinode prechecks
### 바로 ‘4.3 Openstack 배포’를 해도 자동으로 이미지 받아서 설치함
$ kolla-ansible -i ~/inventory/multinode pull
### 바로 ‘4.3 Openstack 배포’를 해도 자동으로 이미지 받아서 설치함
$ kolla-ansible -i ~/inventory/multinode deploy
### Openstack Container 모두 삭제 명령어
$ kolla-ansible -i ~/inventory/multinode destroy --yes-i-really-really-mean-it
5.2 Openstack CLI Install
$ kolla-ansible post-deploy
$ pip install python-openstackclient
$ openstack --version
$ source /etc/kolla/admin-openrc.sh
5.3 기본 세팅 파일
$ mkdir -p /etc/kolla/config/nfs_shares
NASIP:/cinder
### Controller 서버
$ vim /etc/fstab
NASIP:/cinder /var/lib/docker/volumes/cinder/_data/mnt/fa11b71731c13623a6035ee69402eaf3 nfs defaults,_netdev 0 0
NASIP:/cinder_backup /var/lib/docker/volumes/cinder/_data/backup/62683d11af0ec8d6492d59f5e90e1e80 nfs defaults,_netdev 0 0
NASIP:/glance /var/lib/docker/volumes/glance/_data/images nfs defaults,_netdev 0 0
### Compute 서버
$ vim /etc/fstab
NASIP:/nova /var/lib/docker/volumes/nova_compute/_data/instances nfs defaults,_netdev 0 0
반응형
'Openstack > Install Guide' 카테고리의 다른 글
Openstack Install Guide(Ussuri - Ubuntu 18.04) - networking 사용 (0) | 2023.08.10 |
---|---|
Openstack Install Guide - Victoria - CentOS 7.8 (0) | 2023.08.10 |