VMware
가상머신 생성
서버, 데이터센터, 개인용 PC, 라우터, 스위치, 기타 장비가 해당됨. 그리고, 데이터 센터를 관리하는 시설 또한 인프라로 취급할 수 있다.







구축 환경
Openstack (Oracle Virtualbox) - provisioning(시스템 자원 설정)
CPU : 6C(8C-2C(host)) - 중첩된 가상화 (nested virtualization)
RAM : 10GB (16GB-6GB(host))
SSD : 128GB (동적할당)
NET : Bridge (Public), vSwitch(private; 10.11.1.0/24) 10.11.1.0 ~ 10.11.1.255
IMG : CentOS-Stream-8.iso






CentOS8 설치




















여담으로, 'Edit - Virtual Network Editor - Change Settings - VMnet Information - Birdged - (실제 랜카드, 예시로 realtek) 로 되어야 한다.

다시 돌아와서, VM을 보면

이제 MobaXterm으로 돌아와서


# SELINUX 비활성화
vi /etc/selinux/config
// 다음 부분 수정
SELINUX=disabled
//

내보내기로 백업



오픈스택 - 네트워크 설정
오픈스택 싱글 노드 설치
# 인터페이스 설정
vi /etc/sysconfig/network-scripts/ifcfg-ens160
// (ggdG)로 다 지우고 다음 붙여넣기
TYPE=Ethernet
BOOTPROTO=none
NAME=enp0s3
DEVICE=enp0s3
ONBOOT=yes
IPADDR=[본인 아이피]
NETMASK=255.255.248.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
//
# 네트워크 재시작
systemctl restart network

# 네트워크 스크립트 설치
dnf install network-scripts -y
# 방화벽 비활성화 (자체적으로 있어서 충돌나기 때문)
systemctl disable firewalld
# 네트워크 매니저 비활성화
systemctl disable NetworkManager
# 네트워크 다 시작
systemctl enable --now network
# 오픈스택에서 많이 쓰이는 도구인 Powertools 활성화
dnf config-manager --enable powertools
# 오픈스택-요가를 설치하기위한 설정들을 내려받음
dnf install -y centos-release-openstack-yoga
# 업데이트
dnf update -y
# 오픈스택 싱글 노드 설치를 보다 쉽게 해주기 위한 'openstack-packstack' 설치
dnf install -y openstack-packstack
# packstack의 answer-file 생성
packstack --gen-answer-file /root/answers.txt
# answer 파일의 내용 수정
vi /root/answers.txt
// 각각의 내용들을 찾아서 입력하기 ( '/[검색어]' 를 입력하면 쉽게 찾을 수 있다)
CONFIG_DEFAULT_PASSWORD=[비밀번호]
CONFIG_KEYSTONE_ADMIN_PW=[비밀번호]
CONFIG_CINDER_VOLUMES_SIZE=100G
CONFIG_NTP_SERVERS=0.kr.pool.ntp.org // (Network Time Protocol: 시간을 알려주는 서버)
CONFIG_HEAT_INSTALL=y
CONFIG_NEUTRON_L2_AGENT=openvswitch // openvswitch 가상 스위치 사용
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat // private(내부) 네트워크를 vxlan으로 설정, public(외부)는 flat
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan // 가입자들은 vxlan(내부)만 사용 가능
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch // openvswitch 드라이버 사용
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex // br-ex가 extent로 연결됨 (이런 식으로 enp0s3가 오픈스택 내부까지 연결됨)
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens160 // ens160(랜카드)가 br-ex와 연결되고
CONFIG_PROVISION_DEMO=n // 아이피 세팅을 알아서 설정하는 옵션 (우리가 해야하므로 'n')
//
# 위 answers파일의 설정을 기반한 오픈스택 설치
packstack --answer-file /root/answers.txt
저번과 마찬가지로 설치에 시간이 많이 걸린다.

오픈스택 - 네트워크 생성



현재 Admin 계정이므로 일반 사용자 메뉴인 '프로젝트'말고도 관리자 전용 메뉴인 '관리' 메뉴가 노출된다.










오픈스택 - 라우터 생성


여기서 SNAT가 보이는데 NAT의 하나의 파트이며 다음과 같이 있다.
- SNAT (Soure NAT) : 내부 ip --변환--> 외부 ip (내부에서 외부로 나갈때 변환)
- DNAT (Destination NAT) : 내부 ip <--변환-- 외부 (외부에서 내부로 나갈때 변환)
NAT는 SNAT, DNAT 모든 기능을 가지고 있는 것이다.






오픈스택 - 보안 그룹 생성



여기서 내보냄은 egress 혹은 아웃바운드(OutBound)를 의미한다.
반대의 의미론 들어옴은 ingress 혹은 인바운드(InBound)를 의미한다.
0.0.0.0/0은 모든 ipv4 주소(anywhere)를 의미한다.
::/0 은 모든 ipv6주소(anywhere)를 의미한다.
거부 deny block (설정하지 않으면 거부)
수락 allow (설정하면 수락)
오픈스택 - 보안 그룹에 규칙 추가






오픈스택 - Floating IP
VM 자체에는 프라이빗(내부)아이피만 존재하는데, 이 아이피들(10.11.0.0)은 외부와 통신이 불가능하다.
그래서 이 Floating IP를 통해 외부와 통신할 것이다. 간단히 말하자면 Floating IP는 NGW의 외부 아이피이다.
이 Floating IP는 우리가 설정했던 아이피 범위인 192.168.4.1~192.168.4.50 까지 쓸 수 있다.
결과적으로, 포트 포워딩 없이 아이피별로 연결만 해주면 VM들과 외부가 통신 가능



오픈스택 - Compute 설정
설정하기에 앞서 업로드할 이미지 파일들을 다운받자.
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
위 홈페이지에 오픈스택에 쓰일 여러 이미지들이 모여 있다.
그 중에서 필요한 것들의 다운로드 링크를 정리하자면,
http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
위 링크에서 CentOS7의 이미지를 받는다.
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
위 링크에서 Ubuntu 이미지를 다운로드 받는다.
http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img
위 링크에서 CirrOS를 받는다.
이미지 업로드





키 페어



인스턴스















참고로, 이런 유동 IP 연결을 1:1 NAT 방식이다.
- 1:1 NAT :내부 아이피 하나와 외부 아이피 하나로 다이렉트로 변환
- 1:N NAT : 내부 아아피 하나와 외부 아이피 여러개로 변호나
- N:N NAT



# 웹서버 테스토용
nohup sh -c "while true; do echo -e 'HTTP/1.0 200 OK\r\n\r\nserver' | sudo nc -l -p 80 ; done" &
# 테스트
curl 127.0.0.1


외부 접속 테스트
# 웹서버 테스토용
nohup sh -c "while true; do echo -e 'HTTP/1.0 200 OK\r\n\r\nserver' | sudo nc -l -p 80 ; done" &
# 테스트
curl 127.0.0.1


만일, 이 80포트를 다시 없애버리면 어떻게 될까? 당연히 접속이 안될 것이다.



이제, 더 디테일하게 규칙을 추가하겠다.


이젠 위의 아이피가 아닌 다른 아이피로는 접속이 불가능하다.
볼륨
볼륨
만일 VM의 공간이 부족한 경우, 불륨을 연결하여 서비스를 끊지 않고 공간을 확장해줄 수 있다.





# 불륨 추가 명령어
sudo ext4 -t xfs /dev/vdb // 포멧
sudo mount /dev/vdb /mnt/ // 마운트
# 저장 공간 확인
df -h

# 테스트를 위한 코드
cd /mnt
ls
sudo touch test.txt
ls

'메가존 클라우드 2기 교육 > 실무 심화' 카테고리의 다른 글
오픈 스택 - 구성 요소(서비스) (0) | 2023.04.06 |
---|---|
오픈 스택 - 구성 요소(서비스) Swift, Heat (0) | 2023.04.06 |
오픈 스택 - 설명 및 Virtual Box에 설치 (0) | 2023.04.05 |
ESXi - MariaDB, HAProxy 설치 (0) | 2023.04.04 |
ESXi - SAMBA, NFS, DNS 설치 (0) | 2023.04.03 |