openstack flavor list openstack flavor delete 6(id)
user 지우기(서비스도 유저가 될 수 있음)
openstack user list openstack user delete e765eaa600e14b21a457d5d7bf1be84e(user id)
project 지우기
openstack project list openstack project delete cli-project(project이름) openstack project list
stack 지우기 이전 실습에서 지웠기 때문에 openstack stack list를 하여도 나타나지 않았다
WEB-UI
admin의 역할
프로젝트 생성
인증 - 프로젝트

사용자 생성
인증 - 사용자

- 도메인은 프로젝트의 상위 개념(회사)
- 역할은 JSON으로 수동으로 만들 수 있지만 이미 만들어진 _member_ 활용
- detail하게 역할을 줄 수 있음
flavor 생성
관리 -compute-flavor

- 이름 : flavor의 이름
- ID : flavor의 ID
- VCPUs : 가상 CPU의 갯수
- RAM : RAM 용량
- ROOT : 디스크 용량
외부 네트워크 생성(external-network)
- external network 생성

- 이름 : network 이름- 프로젝트 : 네트워크를 적용할 프로젝트 선택- 네트워크 공급자 Flat : 단일 스위치에 연결하여 컴퓨터 네트워크의 라우터와 스위치 개수를 줄이는 방식. flat은 외부를 꾸며주는 공 급자, vxlan은 내부- 물리적인 네트워크 : 처음 VMware에서 설정한 extnet 네트워크 활용 -> bridge 역할을 함- 외부 네트워크로 사용하기 때문에 항목 체크- external subnet 생성

- 서브넷 이름 : external\_subnet- 네트워크 주소 : 사용할 대역대 적기- 게이트 웨이 IP : 사용할 대역대의 첫번째 주소 활용- cli external network 생성- `openstack network create --project cli-project --provider-network-type flat \\ \-provider-physical-network extnet --external external-network`- cli external subnet 생성- `openstack subnet create --network external-network \\ \-project cli-project --subnet-range 192.168.0.0/21 \\ \-allocation-pool start=192.168.5.51,end=192.168.5.100 \\ \-gateway 192.168.0.1 --no-dhcp external-subnet`
프로젝트 - 네트워크 - 네트워크
- 네트워크 이름 설정

- 서브넷 생성

- 네트워크 주소 : 내부 네트워크에서 사용할 대역대로 설정
- 게이트 웨이 : 대역대에서 첫번째 주소로 한다
- 서브넷 세부정보 설정

- DHCP 설정 이유 : 개인별로 네트쿼크 대역이 다르기 때문에 충돌날 일이 없음
- 8.8.8.8 : 구글의 DNS -> dns resolv : ping 입력시 접속할 ip의 주소를 물어보면 답해주는 역할
router 생성
프로젝트 - 네트워크 - 라우터

- 라우터 이름 : router
- 외부 네트워크 : external\_network 선택
- 라우터 인터페이스 추가
내부 서브넷과 연결을 위한 인터페이스를 생성한다

- cli 라우터 인터페이스 생성(서브넷 추가)
프로젝트 - 라우터 - 라우터 선택 - 인터페이스 생성
- `openstack router create router openstack router set --external-gateway external-network router openstack router add subnet
router internal-subnet`
보안그룹 생성
프로젝트 - 네트워크 - 보안그룹
+ webserver 보안 그룹

- HTTP

- SSH

- cli 보안그룹 생성
- `openstack security group create open-sg-web(보안그룹 이름) openstack security group rule create --protocol icmp --ingress open-sg-web // icmp -> ping을 위해 열어준다 openstack security group rule create --protocol tcp --dst-port 22:22 open-sg-web // ingress는 디폴트, 22:22 : 22번부터 22번까지 openstack security group rule create --protocol tcp --dst-port 80:80 open-sg-web`
+ db 보안그룹 생성

- SSH
- MYSQL(MariaDB)

- cli db 보안그룹 생성
- `openstack security group create open-sg-db openstack security group rule create --protocol icmp --ingress open-sg-db // icmp openstack security group rule create --protocol tcp --dst-port 22:22 open-sg-db // ingress는 디폴트, 22:22 : 22번부터 22번까지 openstack security group rule create --protocol tcp --dst-port 3306 open-sg-db // 3306 : mariadb 포트 번호`
키페어 생성
프로젝트 -Compute- 키 페어

- cli 키페어 생성
```
openstack keypair create --public-key ~/.ssh/id_rsa.pub open-key
```
floating ip 생성
프로젝트 - 네트워크 - floating ip
- floating ip를 임의로 만든다- 특정한 ip를 지정해서 할당할 수 있는 기능은 없다- 3개 정도의 floating ip를 생성
- cli floating ip 생성
```
openstack floating ip createexternal-network //192.168.5.99을 만듬
openstack subnet showexternal-subnet
openstack floating ip create--floating-ip-address 192.168.5.71 external-network // 특정한 IP를 지정해서 만듬
```
db 인스턴스 생성
- 인스턴스 세부정보
- 인스턴스 소스
- 인스턴스 삭제시 볼륨 삭제를 "예"로 해줘야 인스턴스 지울 때 볼륨이 지워짐
- 인스턴스 flavor
- 인스턴스 network
- 인스턴스 보안그룹
- 부팅 중일 때는 Ping이 안나감 (콘솔 확인 필요)
cli db 인스턴스 생성
user-data mysqld.file // user-data를mysqld.file로 정의; 데몬 파일을 만드는 것
vi mysqld.file
!/bin /bash
apt update
apt install -y mariadb-server
```
* mysqld.file 파일을 활용
```
```
openstack server create --flavor m1.micro --image ubuntu18 --security-group open-sg-db \\
\-network internal-network --boot-from-volume 10 --key-name open-key --user-data mysqld.file dbserver
```
저번 실습 때는 DB 서버에 public ip를 줬지만, 현실에서는 보안상의 이유로 DB 서버에 안주려는 경향이 있기 때문에 public ip를 안줌
-> webserver를 Bastion host로 하여 dbserver에 접근
Orchestraion
- 프로젝트 -Orchestraion- 템플릿 생성기
-Chrome에서는 아이콘 드래그가 안되기 때문에 Firefox로 이동





- resource
type : vm 타입
properties : 속성 -> 서버를 만들기 위한 구체적인 속성이 들어있음
들여쓰기에 따라 계층이 나눠짐