Cloud/Openstack

OpenStack 구축하기

서머스 2022. 5. 4. 21:52

mirror.kakao.com에서

8-stream/isos 로 들어간다

latest-boot.iso 를 다운로드한다.

 

 

 

Realtek으로 연결되어있는지 확인한다.

 

VM을 start 하여 설치를 진행한다.

 

IP : 192.168.0.50

 

Storage configuration을 custom으로 바꾼다.

 

click here to create them automatically를 선택한다.

 

/home 디렉터리를 삭제한 뒤 디스크 공간의 일부를 Swap 메모리로 사용하자. 12GB를 입력한다.

swap은 디스크 공간을 메모리 공간처럼 사용하는 곳이다.

 

/ 디렉터리에 남은 space를 추가한다.

Accpet Changes 클릭

 

 

Software Selection에서 왼쪽 칸을 Minimal Install로 선택한다.

 

 

모든 설정을 마치면 Begin Installation을 시작한다.

 

# vi /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.0.50
NETMASK=255.255.240.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4

 

인터페이스 설정을 바꾼다.

NETMASK, IPADDR를 수정


# vi /etc/selinux/config
SELINUX=disabled

로 바꾼다

# dnf install network-scripts -y

- centos는 NetworkManager를 쓰면 아이피를 마음대로 바꾸기 어렵다 -> disabled 시킨다.

- networkmanager와 유사한 network-scripts를 쓴다.
# systemctl disable firewalld
# systemctl disable NetworkManager
# systemctl enable network
# systemctl start network
# reboot
# dnf update -y
# dnf config-manager --enable powertools

centos8에서만 작업, 뒤에서 이어지는 extra...를 설치하기 위해서 필요하다.
# dnf install -y centos-release-openstack-yoga
# dnf update -y
# dnf install -y openstack-packstack
# packstack --gen-answer-file /root/answers.txt
# vi /root/answers.txt
CONFIG_DEFAULT_PASSWORD=Test1234!
CONFIG_KEYSTONE_ADMIN_PW=Test1234!
CONFIG_CINDER_VOLUMES_SIZE=100G
CONFIG_NTP_SERVERS=kr.pool.ntp.org

CONFIG_CEILOMETER_INSTALL=n

CONFIG_AODH_INSTALL=n
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

 

각각의 설정을 바꿔준다.

# packstack --answer-file /root/answers.txt

 

 

ip a로 주소 확인

접속해본다

시간을 한국으로 수정한다.

 

 

 

설정 > 관리 > 네트워크 

로 들어간다.

우측에 '네트워크 생성' 클릭한다.

아까 사전에 설정했던 extnet으로 지정한다.

 

네트워크 주소는 전부 동일하다.

 

DHCP 사용 체크를 해제한다.

본인이 할당받은 외부 IP를 공백 없이 ,(콤마)로 이어서 지정한다.

 

프로젝트>네트워크>네트워크 로 들어간 뒤 +네트워크 생성 버튼을 누른다.

 

추후에는 10.129.0.0/24 로 하였다.

네트워크 안쪽에서 일어나기 때문에 DHCP 기능을 체크해야 한다.

[생성]을 클릭한다.

 

 

프로젝트 > 네트워크 > 라우터 로 들어간다

그리고 프로젝트 > 네트워크 > 라우터 에 들어가서 라우터를 생성한다

 

 

EXTERNAL에 라우터가 생성된 것을 볼 수 있다.

 

라우터 - 인터페이스 탭으로 들어가서 [인터페이스 추가] 를 클릭한다.

INTERNAL과 EXTERNAL이 연결된 모습

그리고 EXTERNAL의 gateway에 ping을 쳐보면 잘 되는 것을 알 수 있다.

 

구글에 

openstack image를 검색해서 나오는 docs 페이지로 들어간다.

https://docs.openstack.org/image-guide/obtain-images.html

 

Get images — Virtual Machine Image Guide documentation

Get images The simplest way to obtain a virtual machine image that works with OpenStack is to download one that someone else has already created. Most of the images contain the cloud-init package to support the SSH key pair and user data injection. Because

docs.openstack.org

 

CentOS 7 images를 클릭하여 다운로드 받는다.

 

관리 > Compute > Flavor 로 들어간다

 

* Flavor : instace를 만들 때 사전에 spec을 정하는 것

ephemeral  -> 임시 디스크, 최근에는 잘 사용하지 않는다.
빠르지만, 인스턴스가 지워질 때 같이 삭제된다.
영구적으로 보관할 수 없다.

<->Persistent disk = root disk

 

우측의 [Flavor 생성] 버튼을 클릭한다.

 

프로젝트 > Compute > 이미지

로 들어가서

[이미지 생성]을 클릭한다.

 

 

먼저 CentOS를 만든다.

이미지 소스는 이전에 다운로드 받았던 

CentOS-7-x86_64-GenericCloud-2111.qcow2

를 사용한다.

 

추가된 모습

 

 

키 페어 탭으로 간 뒤, [키 페어 생성]을 클릭한다.

 

pem파일이 다운로드 된 것을 볼 수 있다

 

 

프로젝트 > 네트워크 > 보안 그룹 으로 간다.

[보안 그룹 생성] 을 클릭한다.

 

 

내보냄 = outbound = egress (오픈스택에서 밖으로)

나가는 트래픽이 전체 오픈되어 있다.(허용됨)

들어오는 트래픽도 허용하도록 수정한다.

우측 상단의 [규칙 추가]를 클릭한다.

 

 

CIDR의 0.0.0.0 -> Anywhere의 의미

 

 

들어옴 = inbound = ingress

밖에서 오픈스택으로 들어온다는 의미.

 

22번 TCP 포트도 추가한다. ( = SSH)

 

ICMP도 추가한다.

 

Floating IP : 공인IP를 관리하는 도구

우측에 [프로젝트에 IP 할당]을 클릭한다.

범위 내에서 IP가 할당된다.

5번 할당한다.

 

 

프로젝트 > Compute > 인스턴스 로 가서

[인스턴스 시작] 을 선택한다.

여기서 '시작' 은 launch(create)를 의미한다.

 

인스턴스 삭제시 볼륨 삭제 > 아니오 로 지정하여 이식성을 부여한다.

위 화살표 버튼을 눌러 CentOS7을 할당한다.

 

m1.micro를 위로 올려 할당한다.

 

INTERNAL만 위로 올려 할당한다.

 

네트워크 포트는 패스, default를 내리고 SG-WEB을 할당한다.

그리고 인스턴스 시작 버튼을 클릭한다.

 

목록에서 생긴 WEB01(CentOS7)의 우측에 드롭다운 버튼을 눌러 [콘솔]을 클릭한다.

 

 

 

다시 인스턴스로 나와서 [유동IP연결]을 클릭한다.

 

192.168.12.58을 선택한 뒤, [연결]을 누른다.

 

그 다음 ping을 보내본다. 네트워크 잘 접속된 것을 볼 수 있다.

192.168.0.66에 접속한 뒤 

mz29.shop.db 에서 마지막줄에 

 

web01 in a 192.168.12.58

를 추가한다(이 부분 못함)

systemctl restart named로 데몬 재시작해준다.

 

그 다음 ping mz29.shop.db를 해본다.

 

 

 

moba에서 ip로 접속한다.(원래는 web01.mz29.shop으로 해야하는데 아직 안됨)

private key는 앞서 다운로드 받았던 pem파일로 지정한다.

 


[centos@web01centos7 ~]$ sudo yum install -y httpd

로 httpd를 설치한다.

 

sestatus로 현재 상태를 확인한다.

enforcing이 되어있으면 haproxy가 움직이지 않으므로, disabled 시킨다.

 

그리고 아까 IP로 접속해보면 테스팅 페이지가 뜬다.