OpenStack (VMware)
CPU : 6 Core (8core - 2core(host)) - 1processor, 6core, 중첩된 가상화(nested)
RAM : 10GB (16GB - 6GB(host)) - 10240MB
SSD : 128GB(동적할당) <- 차후 바꾸기 힘들다
NET : Bridge
IMG : CentOS-Stream-8.iso
Typical 선택 후
발생 가능한 문제로 NIC를 켜주는 데에 문제가 생길 수 있다. 원래 Bridge로 설정했기 때문에 Host컴퓨터와 같은 네트워크 대역에서 IP를 받아오는데 잘 안되면 VMware 설정을 수정해준다.
VMware - Edit - Virtual Network Editor - Change Settings - Bridge
automatic이면 고장남, 실제 NIC로 바꿔줄것
실습을 위해서 싱글노드 형태로 설치한다
싱글노드 : 하나의 VM에 각종 OpenStack의 노드들을 모아 놓는 것.
OpenStack의 서비스가 구현되기 위해서 Compute Node, Network Node, Storage Node, Controller Node인 4개의 노드가 필요하다. 싱글노드란 이 네개의 노드를 하나의 VM에 모아놓은 것이다.
일반적으로 여러개의 베어메탈 or VM을 통해 각각 별도로 구성해서 진행한다.
그리고 이렇게 여러개의 노드를 분리시켜 놓는 것을 멀티노드라고 부른다.
dnf update -y
vi /etc/sysconfig/network-scripts/ifcfg-ens160
ifcfg-ens160 파일을 아래처럼 바꿔서 고정IP 형태로 만든다
TYPE=Ethernet
BOOTPROTO=none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.1.83
NETMASK=255.255.248.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
vi /etc/selinux/config
SELINUX=disabled
dnf install network-scripts -y
systemctl disable firewalld
systemctl disable NetworkManager
systemctl enable network
systemctl start network
reboot
SElinux를 해제하고 CentOS8은 network데몬이 없다.
따라서 Network를 별도로 설치하여 사용한다. 따라서 NetworkManager를 중단시키고 network데몬을 실행시킨다.
그리고 OpenStack의 프로그램과 충돌날 수 있기 때문에 방화벽을 해제시킨다.
CentOS 8에서 정식으로 관리하지 않는 프로그램을 설치하기 위해 설정
dnf config-manager --enable powertools
오픈스택 설치를 위한 준비단계, 설치파일 경로 설정 등등 / 이후 설치 업데이트
dnf install -y centos-release-openstack-yoga
dnf update -y
오픈스택 싱글노드를 쉽게 설치하게 도와주는 툴(일종의 자동화 툴).
원래 멀티노드를 통한 정식설치는 매우 복잡하다 (매뉴얼 필요)
dnf install -y openstack-packstack
answers.txt라는 파일 생성
packstack --gen-answer-file /root/answers.txt
CONFIG_DEFAULT_PASSWORD="호라이즌으로 접속하는 admin 계정 비밀번호"
CONFIG_KEYSTONE_ADMIN_PW="키스톤 어드민 계정 비밀번호"
CONFIG_CINDER_VOLUMES_SIZE=100G
CONFIG_NTP_SERVERS=0.kr.pool.ntp.org
CONFIG_HEAT_INSTALL=y
CONFIG_NEUTRON_L2_AGENT=openvswitch
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens160
CONFIG_PROVISION_DEMO=n
answers.txt파일은 미리 .bak 파일로 빼놓는 것이 좋다.
그리고 vi에서 ESC -> /찾을문자열 형식으로 찾아서 해당 열을 수정하면 된다.
CONFIG_DEFAULT_PASSWORD : OpenStack에서 다양하게 사용되는 비밀번호
CONFIG_KEYSTONE_ADMIN_PW : IAM 같은거
CONFIG_CINDER_VOLUMES_SIZE : 전체 SSD 용량 설정
CONFIG_NTP_SERVERS : 시간동기화 서버 설정
CONFIG_HEAT_INSTALL : heat 서비스 설치
CONFIG_NEUTRON_L2_AGENT : openstack에 사용할 L2 가상스위치 지정, openstack에서 사용할 스위치 소프트웨어를 선택하는 것.
-> 소프트웨어는 실제로 여러개가 있기 때문에 이를 선택할 수 있게 만들었고, 이에 따라 맞춤 드라이버를 위해 드라이버 선택 옵션이 존재한다.
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS : VM들은 extnet과 연결됨. extnet은 openstack에만 존재하는 가상 네트워크 카드, br-ex는 linux에서의 가상 네트워크 카드다.
-> 간단히 생각하면 그냥 extnet없이 br-ex에 매핑하면 될 것 같지만 일종의 추상화 단계를 거쳐서 linux에만 있는 br-ex뿐만 아니라 추가적인 기능이나 호환성문제를 위해 extnet이라는 추상화 단계를 더 거치게 만든 것 같다.
CONFIG_NEUTRON_OVS_BRIDGE_IFACES : br-ex를 실제 물리적 NIC와 매핑
CONFIG_PROVISION_DEMO : 네트워크 DEMO, IP가 미리 세팅된 상태로 openstack을 세팅하는 것. y면 네트워크 커스터마이징이 안됨
추가사항
packstack은 puppet이라는 일종의 자동화 툴을 이용해서 openstack의 설치를 자동화 시킨 것이다. 위에서 만든 answers.txt는 바로 자동화 툴에 넘겨주는 스크립트 파일이다.
그리고 설치속도가 굉장히 느리다. 한 30분 가량 걸린다.