# Openstack VM 설정
- Openstack VM 최소사양
- CPU : 4C (시스템 8C)
- RAM : 8GB (시스템 16GB)
- Openstack 권장사양
- CPU : 24C
- RAM : 24GB
Bridged를 활용하기 위해서는 DHCP가 있어야 하는 데 실무에서는 보안상의 이유로 DHCP 사용하지 않는 경우 많음
# Openstack 설치
* RAM 권장사양은 24GB인데 12GB밖에 안 잡았으니까, swap을 이용하자
* swap은 잡아놓은 메모리(12GB)의 반 정도를 swap으로 잡게 됨( 메모리 공간을 전부 사용할 시 부족한 부분을 처리하겠다는 의미의 swap 공간)
* swap을 12GB
* SORTWARE파트에서 Closet mirror 찾은 것 볼 수 있음
# MobaXterm
# dnf 패키지 메니져를 활용한 설치 과정
* dnf install network-scripts -y -> network scripts의 서비스가 network
* systemctl disable --now firewalld -> iptables라는 firewalld 전에 나왔던 방화벽을 Openstack에서 사용하고 있기에 firewalld를 disable 시킴
* systemctl disable --now NetworkManager -> NetworkManager와 network 서비스가 비슷한 기능이라 NetworkManager를 disable 시킴
* systemctl start network
* reboot
* dnf update -y
* dnf config-manager --enable powertools -> powertools를 enable 시켜줘야 openstak-yoga 패키지를 활용할 수 있음
* dnf install -y centos-release-openstack-yoga
* dnf update -y -> openstack 설치 환경에 대한 update라고 볼 수 있음
* dnf install -y openstack-packstack -> packstack이라는 도구를 통해 스크립트로 필요한 작업들을 정의할 수 있음
* packstack --gen-answer-file /root/answers.txt -> 해당 경로로 config 파일을 만들고 그 config파일을 커스터마이징
* vi /root/answers.txt
* CONFIG_DEFAULT_PASSWORD=Test1234! -> horizen 대시보드의 패스워드
* CONFIG_KEYSTONE_ADMIN_PW=Test1234! -> CLI방식의 대시보드에서 쓰이는 패스워드
* CONFIG_CINDER_VOLUMES_SIZE=90G
* CONFIG_NTP_SERVERS=0.kr.pool.ntp.org
* CONFIG_HEAT_INSTALL=y -> aws의 cloudformation과 유사한 서비스 설치
* CONFIG_CEILOMETER_INSTALL=n -> 사용하지 않는 서비스는 설치하지 않는 것이 Openstack의 부하를 경감
* CONFIG_AODH_INSTALL=n -> 사용하지 않는 서비스는 설치하지 않는 것이 Openstack의 부하를 경감
* CONFIG_NEUTRON_L2_AGENT=openvswitch -> L2는 가상의 스위치
* CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat -> vxlan과 flat은 각각 내외부 네트워크
* CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan -> tenant(=project),(가입자들이 이용할 네트워크 정의)
* CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch -> openvswitch사용을 위한 소프트웨어 설치
* CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex -> flat을 설정할 때 외부인터페이스
* CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens160
-> br-ex(가상의 랜카드)
-> ens160(진짜 랜카드)
-> ens160 인터페이스 랜카드의 Ip를 br-ex가 뺏어감
-> 실제 랜카드는 전기신호만 오가는 존재가 됨
-> floating IP가 외부와 연결되기 위해서 br-ex가 IP를 가져가게 되는 것
* CONFIG_PROVISION_DEMO=n -> y로 되어있으면 openstack이 만들어 놓은 네트워크를 그대로 사용해야 함
* packstack --answer-file /root/answers.txt -> 설치에 30분가량 소요
# 브라우저로 Openstack 접속
# 관리자 계정으로
# 사용자 설정
* project는 같은 일을 하는 사람들을 모아 놓는 공간이라고 보면 됨
* 서비스들도 권한과 역할을 부여받은 일종의 사용자로 인식됨
* 사용자가 web-project에서 업무를 볼 수 있도록 선택
# 네트워크 설정
* External 네트워크를 만들기 위해 들어옴
* 외부를 정의하는 네트워크 유형인 Flat
* extnet은 원래 물리적 네트워크 아니지만, 여기서는 extnet을 물리적 네트워크로 인식되게 함
* extnet을 제대로 넣어주지 않으면 게이트웨이에 ping이 안 나감
* IP주소 범위 사이에 , (콤마) 찍어주고 앞 뒤로 공백이 있으면 안 됨
# Flavor 설정
* VCPU는 논리 프로세서를 의미함
# 사용자 계정으로
* 네트워크 이름은 CLI환경에서와 동일한 이름을 사용한 것
* 라우터를 생성해야 연결됨
* 인터페이스를 추가해야 라우터가 Internal-Network와도 연결됨
* 라우터의 인터페이스에 Internal-Subnet(Internal Network)을 추가하는 것
* 프로젝트에 IP 할당 클릭
* 보안 그룹 생성 클릭
* default 보안 그룹은 보통 사용하지 않음
* 내보냄(outbound)는 허용함
* 들어옴(Inbound)는 없음
* 방화벽의 특징 중 하나는 기본적으로 어떤 외부의 트래픽도 허용하지 않음
* Inbound 트래픽은 규칙 추가에서 따로 추가해줘야 함
* ALL ICMP는 Ping 테스트를 위해 열어주는 것
* 0.0.0.0/0은 모든 출발지 IP를 허용한다는 의미
* mobaXterm에서의 ssh를 통한 접속을 허용하기 위해 22번 포트를 열어줌
* MariaDB를 위한 보안 그룹을 별도로 생성해 줌
* MariaDB에서의 접속을 허용하기 위해 MYSQL(3306포트)도 열어줌
* 규칙을 수정하고 싶으면 삭제하고 다시 만들어야 함
# 키 페어
* 키 페어 생성 클릭
# 이미지
* QCOW2 파일로 이미지 포멧 설정 (QCOW2는 가상 머신 디스크의 이미지 저장 형식)
# 워드프레스 설치
* aws의 s3와 유사
* 컨테이너에 파일을 넣는 형태
* http://192.168.0.132:8080/v1/AUTH_5f32019cf3134bffb0a0d31abb625e62/files
* /wordpress-4.8.2-ko_KR.zip 를 뒤에 붙여줌
# 인스턴스 시작
* 쉘 스크립트 작성
#!/bin/bash
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
cd/home/centos
wget http://192.168.0.132:8080/v1/AUTH_5f32019cf3134bffb0a0d31abb625e62/files/wordpress-4.8.2-ko_KR.zip
cd /var/www/html
unzip /home/centos/wordpress-4.8.2-ko_KR.zip
chown -R apache:apache /var/www/*
systemctl enable --now httpd
* 치환하는 명령어(selinux를 무인 설치에서 vi 들어가서 disable 시킬 수 없어서 필요) :
-> sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
- 's/^SELINUX=enforcing -> SELINUX=enforcing이라는 문구를 찾기
- $/SELINUX=disabled/' -> SELINUX=enforcing이라는 문구를 $표시 다음 문구인 SELINUX=disabled 수정
- /etc/selinux/config -> /etc/sysconfig/selinux와 같은 내용임 (찾을 파일인 selinux가 있는 경로를 적어 준 것)
# 웹 서버 생성
* 쉘 스크립트 작성 시 빠뜨린 내용임
* sudo mv ./wordpress/* .
# DB서버 생성
* OS::NOVA 클릭
* Server_1 클릭
* 싱글 노드이기 때문에 AZ는 nova 한 개뿐임
* 현재 진행 중인 과정은 탬플릿으로 만들어 놓으면 스크립트로 남게 됨
* 보라색 문서 모양 탬플릿 생성기 클릭
* 템플릿을 이용해 편하게 VM 생성 가능
* 템플릿 개념은 추후 오토스케일링에 쓰임
* 해당 스크립트를 STACK에 넣고 돌려야 새로운 VM 생성 가능
* 무결성 확보를 위해 비밀번호 입력을 통해 실제 사용자가 web-user가 맞는지 확인하는 것
* STACK에 템플릿 파일을 적용하여 인스턴스 만들기
# 웹 서버 키를 분실한 경우
* 스냅샷이 Images로 들어감
* snapshot을 이용해 VM을 다시 만드는 것
* 새로운 키 할당하고 바로 인스턴스 시작 클릭
* web-restore가 구동되기 전까지 기존의 webserver를 그대로 두어야 함
* web-restore가 구동되면 192.168.4.37 IP를 web-restore에 연결해줘야 함
* 그 사이 다운타임이 발생하는 문제
'KOSA 클라우드 솔루션즈 아키텍트 양성과정' 카테고리의 다른 글
[5.26] 퍼블릭 클라우드 2일차 (0) | 2022.05.26 |
---|---|
[5.24] 오픈스택 (0) | 2022.05.24 |
[5.20] Go 5일차(복습) (0) | 2022.05.20 |
[5.19] Go 4일차 (0) | 2022.05.19 |
[5.18] Go 3일차 (0) | 2022.05.18 |