IT/OpenStack

[OpenStack] Packstack을 활용하여 OpenStack 설치 (다중노드)

Erynn 2022. 3. 30.
실습 주제 : PackStack을 활용하여 OpenStack 설치 (다중노드)
VMware Workstation
OS : CentOS 7.9
OpenStack Release : Train

 

실습 구성도

  • control, compute1, compute2로 총 3개의 노드로 구성한다.
  • 내부, 관리용, 외부용 네트워크로 구성한다.

 


네트워크 및 VM 설정


1. VMware 네트워크 설정

Edit > Virtual Network Editor > Change settings

VMnet1 : internal

VMnet2 : management

VMnet8 : external

 

2. VM 설정

  • Control

OS : CentOS 7 64-bit

Processors : CPU 1/4, Virtualization engine 모두 체크

Memory : 6144MB

Hard Disk : 100GB

Network Adapter : NAT / VMnet1(Host-Only) / VMnet2(Host-Only)

control VM

 

  • compute1, compute2

OS : CentOS 7 64-bit

Processors : CPU 1/4, Virtualization engine 모두 체크

Memory : 6144MB

Hard Disk : 100GB

Network Adapter : NAT / VMnet1(Host-Only) / VMnet2(Host-Only)

compute1, compute2 VM

 

▷ Moduel 'VPMC' 오류 발생시, 아래 URL 참고

2022.03.30 - [IT/Error] - [VMware] Module ‘VPMC’ power on failed

3. OS 설치

  • 날짜&시간 : 아시아/서울
  • 소프트웨어 선택 : 최소설치
  • 네트워크 및 호스트 이름 :

설정 > 일반 > '사용가능하면 자동으로 이 네트워크에 연결' 체크

설정 > IPv4 설정 > 방식 '수동' > 아래 IP 넣어주기

(ens32, ens33, ens34 로 설정되어 있을텐데, 추후 변경해줄 것이기 때문에 변경된 이름으로 작성함)

  Control Compute Compute2
Eth0 (NAT) 211.183.3.100/24
GW : 211.183.3.2
DNS : 8.8.8.8
211.183.3.101/24
GW : 211.183.3.2
DNS : 8.8.8.8
211.183.3.102/24
GW : 211.183.3.2
DNS : 8.8.8.8
Eth1 (VMnet1) 192.168.1.100/24 192.168.1.101/24 192.168.1.102/24
Eth2 (VMnet2) 192.168.2.100/24 192.168.2.101/24 192.168.2.102/24
  • 사용자 설정 : root 암호 및 사용자 생성(user1)

노드설정


 

1. 사전작업

오픈스택은 자체 방화벽 프로그램을 사용하기때문에 방화벽과 네트워크를 모두 종료하는 것이 좋다.

// 3개 노드(control, compute1, compute2) 전부 설정
// 멀티입력 기능을 사용하면 편함

systemctl stop firewalld
systemctl disable firewalld
systemctl stop NetworkManager
systemctl disable NetworkManager
setenforce 0
sed -i 's/enforcing/disabled/g' /etc/selinux/config

 

2. 인터페이스 수정

  • 노드전체 (control, compute1, compute2 node)
// 3개 노드 전부
// 이더넷 이름 변경

// 위치이동
cd /etc/sysconfig/network-scripts
// 확인
ls ifcfg-ens*
ifcfg-ens32 ifcfg-ens33 ifcfg-ens34

// 이동
mv ifcfg-ens32 ifcfg-eth0
mv ifcfg-ens33 ifcfg-eth1
mv ifcfg-ens34 ifcfg-eth2

// 확인
ls ifcfg-eth*
ifcfg-eth0 ifcfg-eth1 ifcfg-eth2

// 파일 내부 내용 변경
sed -i 's/ens32/eth0/g' ifcfg-eth0
sed -i 's/ens33/eth1/g' ifcfg-eth1
sed -i 's/ens34/eth2/g' ifcfg-eth2
  • control node
[root@control network-scripts]# vi ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=211.183.3.100
PREFIX=24
GATEWAY=211.183.3.2
DNS1=8.8.8.8
NM_CONTORLLED=no

[root@control network-scripts]# vi ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
NM_CONTROLLED=no

[root@control network-scripts]# vi ifcfg-eth2
TYPE=Ethernet
BOOTPROTO=none
NAME=eth2
DEVICE=eth2
ONBOOT=yes
IPADDR=192.168.2.100
PREFIX=24
NM_CONTROLLED=no

 

  • compute1 node
[root@compute1 network-scripts]# vi ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=211.183.3.101
PREFIX=24
GATEWAY=211.183.3.2
DNS1=8.8.8.8
NM_CONTROLLED=no

[root@compute1 network-scripts]# vi ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.1.101
PREFIX=24
NM_CONTROLLED=no

[root@compute1 network-scripts]# vi ifcfg-eth2
TYPE=Ethernet
BOOTPROTO=none
NAME=eth2
DEVICE=eth2
ONBOOT=yes
IPADDR=192.168.2.101
PREFIX=24
NM_CONTROLLED=no

 

  • compute2 node
[root@compute2 network-scripts]# vi ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=211.183.3.102
PREFIX=24
GATEWAY=211.183.3.2
DNS1=8.8.8.8
NM_CONTORLLED=no

[root@compute2 network-scripts]# vi ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.1.102
PREFIX=24
NM_CONTROLLED=no

[root@compute2 network-scripts]# vi ifcfg-eth2
TYPE=Ethernet
BOOTPROTO=none
NAME=eth2
DEVICE=eth2
ONBOOT=yes
IPADDR=192.168.2.102
PREFIX=24
NM_CONTROLLED=no

 

  • 노드 전체 (control, compute1, compute2)
    GRUB_CMDLINE_LINUX 줄 끝에 net.ifnames=0 biosdevname=0 삽입
vi /etc/default/grub

// 내가 정해주는 이름으로 사용
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"

// 변경사항 적용
grub2-mkconfig -o /boot/grub2/grub.cfg
// 재시작
reboot
# net-tools 설치 
yum install -y net-tools
net-tools? 
CentOS 7을 최소(minimal)로 설치하면 네트워크툴이 동작하지 않는다.
따라서, ifconfig, netstat 같은 명령어를 사용하려면 net-tools를 사용해야 한다.

 


오픈스택 설치


 

1. 사전작업

control node 에서 작업한다.

ussuri 부터는 CentOS8부터 설치가능함으로 그나마 가장 최신 버전인 train 으로 설치를 진행하였다.

answer-file 이름은 answer.txt로 임의로 이름을 지어주었다.

 

▷오픈스택 릴리즈 확인 : https://releases.openstack.org/

▷오픈스택 버전별 확인 : https://pkgs.org/search/?q=centos-release-openstack-victoria 

// control 노드에서 실행

yum -y update
yum -y install centos-release-openstack-rocky
yum -y update
yum -y install openstack-packstack

// answer file 생성
packstack --gen-answer-file=answer.txt

아래와 같은 알림 화면이 뜨는건 무시해도 된다.

answer file 수정할때 OVN을 안쓰도록 설정해 줄 것이기 때문이다.

2. answer file 수정

// answer파일의 211.183.3 을 192.168.1 로 변경
sed -i 's/211.183.3/192.168.1/g' answer.txt

vi answer.txt

60 CONFIG_HEAT_INSTALL=y
// controller IP
94 CONFIG_CONTROLLER_HOST=192.168.1.100
// compute1, compute2 의 IP
97 CONFIG_COMPUTE_HOSTS=192.168.1.101,192.168.1.102
 
// admin, demo 계정 비밀번호 수정
// 편하게 이용하기 위함
325 # Password to use for the Identity service 'admin' user.
326 CONFIG_KEYSTONE_ADMIN_PW=test123

328 # Password to use for the Identity service 'demo' user.
329 CONFIG_KEYSTONE_DEMO_PW=test123

// 이어서 할 마이그레이션 실습에 vxlan이 필요하여 추가 설정
795 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=geneve,flat,vxlan

//answer file 생성 시 뜬 알람 참고하여 OVN -> openvswitch 로 변경
838 # Name of the L2 agent to be used with OpenStack Networking.
839 # ['linuxbridge', 'openvswitch', 'ovn']
840 CONFIG_NEUTRON_L2_AGENT=openvswitch

 

3. hosts 수정

host 명으로 통신이 가능하게 변경해준다.

전체 노드에서 실행.

//control, compute1, compute2 전체에 적용
vi /etc/hosts

192.168.1.100 control network storage
192.168.1.101 compute1
192.168.1.102 compute2

 

4. 오픈스택 설치 및 접속 확인

packstack --answer-file answer.txt

각 노드의 root 패스워드를 입력

네트워크 상태에 따라 20분~1시간 정도 대기해야 한다.

설치완료되면, 대시보드(horizon)에 접속해본다. 

 

사용자 이름은 admin, 암호는 answer file에서 수정한 것처럼 test123으로 입력 후 접속하면, 대시보드에 접속할 수 있다

 

 

해당 설정을 바탕으로 overlay 네트워크를 구성하여 migration 구현하기

2022.03.31 - [IT/OpenStack] - [OpenStack] 가상 네트워크 구성 및 overlay를 사용하여 Live-migration 구현

 

[OpenStack] 가상 네트워크 구성 및 overlay를 사용하여 Live-migration 구현

실습 주제 : OpenStack을 사용하여 Live-migration 구현 VMware Workstation OS : CentOS 7.9 OpenStack Release : Train 노드 생성 및 네트워크 설정이 이전 글과 이어집니다. 2022.03.30 - [IT/OpenStack] - [Op..

erynn.tistory.com