0523-Openstack

hyejin·2022년 5월 23일
0

OPENSTACK 생성

*하이퍼바이저2 방식을 호스트방식이라고 말한다.






(동적할당으로 128G 설정)

  • single / multiple 차이
    -> 일정한 크기로 파일을 나누는 것. 나누면 관리하기가 어려움.

    두개 중첩할 경우 첫번째 선택

    <VM 스펙>
    CPU : 4C
    RAM : 12GB(12,288MB)
    OS : CentOS8-Stream.iso
    NET : Bridge
    SEC : ?
    SWAP : 12GB
    ===========================▲core

  • OPENSTACK VM 최소사양
    CPU : 4C (시스템 8C)
    RAM : 8GB (시스템 16GB)
  • OPENSTACK VM 권장사양
    CPU : 24C
    RAM : 24GB

OPENSTACK 시작






(비밀번호 : Kosa0401!)

(software는 맨 마지막에 설정)

(Done 클릭후 click here 버튼 선택)

(/home의 용량을 제거하고 /에 추가)
(메모리를 대신할 수 있는 공간 : swap)
(잡아놓은 시스템 메모리의 절반을 swap으로 설정-> 다 사용해서 부족하면 디스크의 일부분을 할당하여 처리)
(swap : 12GB로 변경)




(IP : 192.168.0.130/20)



mobaxterm으로 접속


ip a

로 ip 확인

오픈스택 설정

# vi /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none       //static도 가능
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.0.130
NETMASK=255.255.240.0
GATEWAY=192.168.0.1
DNS1=192.168.0.66
DNS2=8.8.4.4
# vi /etc/selinux/config  //오픈스택을 이용할때는 selinux(보안장치)를 내리고 사용하는 것이 대부분
SELINUX=disabled
# dnf install network-scripts -y                  //dnf = yum의 역할(yum보다는 향상)
# systemctl disable firewalld                     //오픈스택 내 방화벽이 따로 존재하기 때문에 os 방화벽은 disable
# systemctl disable NetworkManager                //centos8에는 NetworkManager 이것이 메인
# systemctl enable network                        //필요에 따라 활성화
# systemctl start network   
# reboot                                          //설치한 것들 정리
  • (보안장치가 있기 때문에 그걸 사용하기 위해 firewall를 disable해줌)
  • (두가지 기능이 겹치므로 networkmanager를 disable해주고 network로 설정)
# dnf update -y
# dnf config-manager --enable powertools 

-> powertools를 이용하기 위해 enable 시켜야함

# dnf install -y centos-release-openstack-yoga
# dnf update -y
# dnf install -y openstack-packstack

-> 간소화해서 쉽게 설치할 수 있도록 해줌

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



-> .ssh로 공개키와 개인키가 생성된걸 확인

# vi /root/answers.txt                            //오픈스택을 설치하기 위한 환경설정
CONFIG_DEFAULT_PASSWORD=Test1234!   //WEB UI(대쉬보드) 접속할 때 사용
CONFIG_KEYSTONE_ADMIN_PW=Test1234!  //CLI방식으로 접근할 때 사용
CONFIG_CINDER_VOLUMES_SIZE=100G     //storage   
CONFIG_NTP_SERVERS=0.kr.pool.ntp.org
CONFIG_HEAT_INSTALL=y
CONFIG_NEUTRON_L2_AGENT=openvswitch               //실무에서 쓰이는 가상 스위치, L2=Layer2; 스위치허브를 의미하는 layer
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat        //flat이라는 드라이버를 통해 브릿지의 기능을 제공, 외부의 공유기로부터 ip를 받아올수 있도록 해줌
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan     //vm의 확장기술
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex   
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens160     //ens이 160실제 lan카드
CONFIG_PROVISION_DEMO=n

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

1. Compute Service

Compute Service(CPU, RAM) : Nova, EC2(Elastic Compute Cloud)

2. Storage Service

Storage Service(SSD,구글드라이브, NFS, NAS)
: Cinder; Block storage, EBS(Elastic Block Store)
: Swift; Object Storage, S3(Simple Storage Service)
: Manila; File Storage, EFS(Elastic File System)

3. Network Service

Network Service(IP, Subnet) : Neutron, VPC(Virtual Private Cloud); 격리된(isolated)

4. Image Service(OS)

Image Service(OS) : Glance, AMI(Amazon Machine Image)

5. Identity Service

Identity Service(User(ID/PW), Group, Role ...) : Keystone; IAM(Identity Access Management)

오픈스택 시작


(admin/Test1234!)

  • 프로젝트 생성(인증-프로젝트)
  • 사용자 생성(인증-사용자)
  • 네트워크 생성(관리-네트워크-네트워크)



  • Flavor 생성(관리-Compute-Flavor)

    ->vCPU = 논리프로세서

web-user로 로그인

  • 네트워크 생성(프로젝트-네트워크-네트워크)


  • router 생성(프로젝트-네트워크-라우터)

# openstack router create Router

<확인>

# openstack router set --external-gateway External-Network Router (왼쪽과 연결)

# openstack router add subnet Router Internal-Subnet (오른쪽과 연결)
  • Floating IP 생성(프로젝트-네트워크-Floating IP)

    (external ip pool)
    *여러 번 반복

  • 보안그룹 생성(프로젝트-네트워크-보안그룹)
    *SG-WEB

*규칙추가

(ALL ICMP-> 외부에서 들어오는 ping 허용)

(HTTP-> web server를 위해)

(SSH-> TCP22를 허용하기 위해)

* SG-DB


(ALL ICMP-> 외부에서 들어오는 ping 허용)

(MYSQL-> db사용)

(SSH-> TCP22를 허용하기 위해)

-> 변경하려면 삭제하고 다시 만들어야함

  • 사용자 데이터
# sudo yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
# cd /home/centos
# wget http://192.168.0.130:8080/v1/AUTH_751cee368729435598e4875af6e76485/files/wordpress-4.8.2-ko_KR.zip
# cd /var/www/html
# sudo unzip /home/centos/wordpress-4.8.2-ko_KR.zip
# sudo chown -R apache:apache /var/www/*
# sudo systemctl enable --now httpd
  • 인스턴스 생성




    (external을 볼 수 있는 권한 X-> internal만 가능)
    (네트워크 포트 skip)



#!/bin/bash
yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
cd /home/centos
wget http://192.168.0.130:8080/v1/AUTH_751cee368729435598e4875af6e76485/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
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

-> selinux=enforcing이라는 문장을 찾아서 $/뒤문장으로 바꿔줌

*유동ip 연결

192.168.9.154로 접속

  • 템플릿 생성기(프로젝트-orchestration-템플릿 생성기)

    (가장 최근버전 선택)
    -OS::NOVA 선택 후 모니터 끌어다가 캔버스에 놓기




    -> STACK 생성 클릭



    (인스턴스에서 확인 가능)

-스택(프로젝트-orchestration-stack)



* 키를 분실할 경우

-snapshot 생성(이름:web-snapshot)
(키페어 생성)






(네트워크 포트 next)


-원래 webserver의 유동ip 연결해제
-복원한 web-restore에 유동ip 연결


<확인> 192.168.9.154로 접속

  • (프로젝트-볼륨-볼륨)

1개의 댓글

comment-user-thumbnail
2022년 5월 23일

유익하고 좋은 정보입니다!

답글 달기