[openstack] 실습환경 구성 및 CLI로 관리

Hoon·2022년 9월 16일
0

OpenStack

목록 보기
2/2
post-thumbnail

PackStack으로 오픈스택 설치하기

  1. CentOS 를 ServerwithGUI 버전으로 설치 (NIC은 NAT로 구성) 단, 부팅은 run-level ->3(systemctl set-default multi-user.target)
  2. 설치이후
  • 방화벽, NetworkManager, SELinux 를 비활성화
  • yum -y update
  • yum -y install centos-release-openstack-rocky: 오픈스택을 팩스택으로 설치하기 위하여 오픈스택 패키지 저장소를 등록시킨다.
  • yum -y install -y openstack-packstack: 팩 스택을 설치한 것

openstack 대시보드 초기 설정

  • 사용자설정 -> 시간대 한국시간으로 설정
  • 이미지, 라우터, 네트워크 삭제
  • openstack cirros image download
    • cirros-0.5.1-x86_64-disk.img 다운로드
  • 이미지 생성
  • 셋팅하는데 환경설정 하는 것이 많다. 추후 오케스트레이션. 스택에서 자동화 해줄 것
  • 프로젝트.네트워크.네트워크.생성
    pools 할당:172.16.123.201,172.16.123.239
    DNS 할당 후 생성
    인스턴스 생성을 위한 이미지 서비스 + network/router/VM을 만들어 주는 것을 컴퓨트 서비스. 여기서는 nova이다.
  • 라우터 생성
  • 라우터 인터페이스 생성. 게이트웨이 역할이므로 xxx.xxx.xxx.1번으로 끝남
  • 인스턴스 생성

CLI로 네트워크 만들기

네트워크 생성 -> 서브넷 만들기 -> 라우터 만들기 -> 라우터에 서브넷을 추가한다

source keystonrc_admin
openstack netwrok create mynet1
openstack subnet create --subnet-range 172.16.123.0/24 --gateway 172.16.123.1 --network mynet1 --dhcp --dns-nameserver 8.8.8.8 mysubnet1
openstack router create myrouter1
openstack router add subnet myrouter1 mysubnet1 # 라우터에 서브넷 추가

인스턴스 생성준비

  1. key-pair 생성

    ssh-keygen -q -f ~/.ssh/gildong.pem -N "" # ssh 키 생성
    ssh-keygen -q -f ~/.ssh/chulsoo.pem -N "" # ssh 키 생성
    openstack keypair create --public-key ~/.ssh/gildong.pem.pub gildongkey
    openstack keypair create --public-key ~/.ssh/chulsoo.pem.pub chulsookey

  2. flavor 생성

    openstack flavor create --id 6 --vcpus 1 --ram 1024 --disk 20 m1.xsmall

  3. image 등록하기

    wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2003.qcow2.xz
    xz -d CentOS-7-x86_64-GenericCloud-2003.qcow2.xz
    openstack image create "CentOS7" --file CentOS-7-x86_64-GenericCloud-2003.qcow2 --disk-format qcow2 --container-format bare --public

  4. 보안그룹

    ACL(access-list 100 permit tcp any host 2.2.2.2 eq 80)의 경우에는 서브넷 단위로 보안 정책을 수립한다.
    보안그룹은 인스턴스 단위로 보안 정책을 수립한다.
    일반적으로 보안 그룹에서 인바운드, 아웃바운드 중 주로 인바운드를 작성한다. 아웃바운드는 기본적으로 모두 허용하는 것으로 설정된다.

    대시보드에서 testsg 보안그룹 생성
    외부에서 유입되는 트래픽 중 웹접속(80/tcp, 443/tcp), SSH 접속(22/tcp), ICMP 는 허용한다. 단, 인스턴스에서 외부로 나가는 것은 모두 허용된다(default)

openstack security group create permitweb
openstack security group rule create --proto tcp --dst-port 80 permitweb
openstack security group rule create --proto tcp --dst-port 22 permitweb
openstack security group rule create --proto tcp --dst-port 443 permitweb
openstack security group rule create --proto icmp permitweb


ssh 접속을 아무나 하면 안되므로 인바운드 IP를 지정하고 0.0.0.0/0 은삭제

  1. 인스턴스 생성하기 using CLI
openstack server create --flavor flavor이름 --image 이미지이름 --security-group SG이름 --key-name 키이름 --min 개수 --max 개수 --nic net-id=$(openstack network list | grep mynet1 | gawk '{print $2}') CentOS1
openstack server create --flavor "m1.xsmall" --image "CentOS7" --security-group "permitweb" --key-name "gildongkey" --nic net-id=$(openstack network list | grep mynet1 | gawk '{print $2}') CentOS1
openstack server create --flavor "m1.xsmall" --image "CentOS7" --security-group "permitweb" --key-name "chulsookey" --nic net-id=$(openstack network list | grep mynet2 | gawk '{print $2}') CentOS2
  1. 외부 네트워크 생성하기

cd /etc/sysconfig/network-scripts/

cat ifcfg-eth0

BOOTPROTO=none
NAME=eth0
DEVICE=eth0
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
NM_CONTROLLED=no

cat ifcfg-br-ex

TYPE=Ethernet
BOOTPROTO=none
NAME=br-ex
DEVICE=br-ex
DEVICETYPE=ovs
ONBOOT=yes
IPADDR=211.183.3.111
PREFIX=24
GATEWAY=211.183.3.2
DNS1=8.8.8.8
NM_CONTROLLED=no

openstack network create --provider-physical-network extnet --provider-network-type flat --external extnet
openstack subnet create extsubnet --network extnet --subnet-range 211.183.3.0/24 --allocation-pool start=211.183.3.201,end=211.183.3.239 --no-dhcp --dns-nameserver 8.8.8.8 --gateway 211.183.3.2
openstack network set --external extnet
systemctl restart network # 바꾼 ifcfg파일 적용
ovs-vsctl show

0개의 댓글