- CentOS 를 ServerwithGUI 버전으로 설치 (NIC은 NAT로 구성) 단, 부팅은 run-level ->3(systemctl set-default multi-user.target)
- 설치이후
- 방화벽, NetworkManager, SELinux 를 비활성화
- yum -y update
- yum -y install centos-release-openstack-rocky: 오픈스택을 팩스택으로 설치하기 위하여 오픈스택 패키지 저장소를 등록시킨다.
- yum -y install -y openstack-packstack: 팩 스택을 설치한 것
네트워크 생성 -> 서브넷 만들기 -> 라우터 만들기 -> 라우터에 서브넷을 추가한다
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 # 라우터에 서브넷 추가
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
flavor 생성
openstack flavor create --id 6 --vcpus 1 --ram 1024 --disk 20 m1.xsmall
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
보안그룹
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 은삭제
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
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