본문 바로가기

KOSA 클라우드 솔루션즈 아키텍트 양성과정

[5.24] 오픈스택

# 루트볼륨 확장 (오픈스택에서는 인스턴스가 종료된 상태일 때 가능)

 

루트볼륨 /dev/vda

 

 

드롭다운 메뉴

 

 

볼륨확장 화면 : 새로운 15GiB로 볼륨 확장

 

 

15GiB로 바뀜

 

 

웹 서버 인스턴스 시작

 

 

콘솔 화면에서 부팅 중인 인스턴스 확인 가능

 

mobaXterm에서 web-server 세션 생성

 

 

루트 볼륨이 15G로 확장된 것 확인 가능

* lsblk는 할당된 용량 확인하는 명령어

 

 

디스크에서 사용 중인 공간

* df -h는 디스크에서 사용 중인 공간과 사용 가능한 공간 확인하는 명령어


# 키를 분실한 경우

 

hello.txt 파일 만들어 줌

 

유동 IP 연결 해제하여 사용자들이 접속 못하게 막음

 

 

인스턴스 삭제

 

 

볼륨은 남아 있는 상태

* 스토리지 서비스인 cinder는 남아 있는 것

* compute 서비스인 Nova만 삭제됨

 

 

인스턴스로 시작

 

 

 

* 인스턴스 삭제시 볼륨삭제 옵션을 '아니오'로 선택했기 때문에 Cinder볼륨은 남아 있게 되는 것

* Nova라는 인스턴스가 지워지더라도 attach 되어 있던 Cinder는 지워지지 않음

 

 

보안그룹 설정

 

 

새로 만든 키를 할당 후 인스턴시 시작

 

 

유동 IP 할당

 

 

기존 webserver 세션을 새로운 키로 교체

 

 

볼륨이 그대로 남아 있음


# CLI 환경을 위해 기존 내용 삭제

 

기존의 인스턴스 전부 삭제

 

 

기존의 이미지 전부 삭제

 

 

기존의 키 페어 전부 삭제

 

 

기존의 볼륨 전부 삭제

* 볼륨이 지워지지 않으면 일단 두고 스냅샷과 연동된 볼륨부터 삭제하고 다시 삭제하면 됨

 

 

기존의 볼륨 스냅샷 삭제

 

 

기존의 유동 IP 해제

* 유동 IP는 계속 없어지는 것이 아니고 계속 가져다 쓰는 것이기 때문에 해제라고 표현함

 

 

기존의 보안 그룹 삭제

* default 보안 그룹은 그대로 두고 나머지 보안 그룹만 삭제

* SG-DB 보안 그룹이 지워지지 않으면 Orchestration의 STACK부터 삭제

 

 

기존의 STACK 삭제

 

 

기존의 컨테이너 삭제

* 컨테이너 내부의 내용을 전부 삭제한 후 컨테이너 삭제 가능

 

 

기존의 라우터 삭제

 

 

* web-user는 External-Network 삭제 권한 없으므로 Internal-Network만 삭제

* External-Network는 admin 계정으로 로그인한 후 삭제

 

 

admin 계정에서 External-Network 삭제

 

 

m1.Micro 삭제


# CLI 작업

 

오픈스택 세션 생성

 

 

프로젝트 생성

  * 부모, 미들, 차일드 : openstack project create

  * domain : 특정 회사 혹은 지역의 이름을 넣음

  * description : 설명 부분

  * cli-project : create한 것의 이름

  * 자격증명이 안 된 상태

  * answers.txt 파일에서 정의했던 ADMIN 패스워드 

 

 

자격증명 토큰 발행됨

* 토큰을 이용해 로그인 가능  

* export PS1='[\u@\h \W(keystone_admin)]\$ ' :

 -> 로그인이 정상적으로 되면 keystone_admin으로 프롬프트를 바꾸는 쉘 명령어

 -> 로그인이 되었다는 사실을 알려주는 역할

 

 

로그인된 상태

* keystone_admin으로 프롬프트를 바꾸는 쉘 명령어 export PS1='[\u@\h \W(keystone_admin)]\$ ' 로 인해 로그인 localhost 옆에 keystone_admin이 표시됨

 

 

프로젝트 생성됨

* 토큰 정보를 이용해 로그인한 후 프로젝트 생성됨

* 무언가 생성되면 테이블 모양이 출력됨

* 만약 web UI에서 비밀번호를 바꾼 경우는 keystone에서도 비밀번호를 바꿔야 401애러 안 나옴

 

 

프로젝트가 제대로 생성되었는지 확인

* openstack project list 명령어를 통해 프로젝트가 제대로 만들어졌는지 확인 가능

 

 

* --project cli-project는 cli-project에 해당 유저를 참여시키는 명령어

* user 계정의 아이디를 cli-user로 설정해준 것

* password-prompt : password를 프롬프트에 찍게 해달라는 의미

 

 

유저들을 확인

* 서비스들도 사용자처럼 취급되어 여기에 출력된 것

 

 

역할 추가

* add role : 기존에 존재하는 역할을 추가하겠다는 의미

* add role이 핵심이니까 해당 롤인 _member_를 끝에 적어주는 관례 (필수는 아님)

* add의 경우 create와 달리 테이블이 출력되지 않는 것이 정상임

 

 

flavor 생성

* flavor 생성 후 제대로 생성되었는지 확인

 

 

External-Network 생성

* External-Network를 admin 계정에서 만들지 cli-project에 만들지는 admin 마음대로임

 

 

네트워크가 제대로 만들어졌는지 확인

* 아직 서브넷은 정의되지 않음

 

 

subnet 생성

* 서브넷 이름을 External-Subnet으로 지정

 

 

서브넷의 생성을 확인

 

 

서브넷에 대한 자세한 정보 확인

 

 

시작 IP와 마지막 IP까지 보고 싶을 때

* show 명령어는 해당 항목에 대한 좀 더 세부적인 내요을 출력해줌

 

 

cli-user를 위한 토큰을 생성

 

cli-user로 로그인

 

cli-user에게 create할 수 있는 권한 주기

* cli-user가 network create를 하기 위해서는 권한을 필요로 함

* cli-user는 floating-IP를 만들기 위해서는 권한을 필요로 함

 

 

projectID에 명령어 저장

* projectID=$(openstack project list | grep cli-project | awk '{print $2}')

  -> projectID라는 변수에 해당 명령어를 저장해 놓으면 나중에 다시 쓸 때 편함

  -> awk '{print $2}' : 두 번째 라인을 프린트하겠다는 의미

  -> openstack project list | grep cli-project : project list에서 cli-project를 추려서 보겠다는 의미

 

 

vxlan은 tenant 네트워크

* Internal-Network 생성

* --project에 프로젝트 이름 넣어도 되지만, 여기서는 projectID를 넣어줌

 

 

Internal-Network 만듦

 

 

Internal-Subnet 설정

* dns-nameserver 두 개 넣을 때 각각 --dns-nameserver 명령어 사용해줘야 함

 

 

Router 생성

 

External-Network와 연결

* External과 연결 시 set

 

인터페이스 추가(add)를 통한 연결

* Internal과 연결 시 add

 

 

보안 그룹 생성

 

 

보안 그룹 리스트 확인

 

규칙 생성

* 보안 그룹을 만들었으니 해당 보안 그룹에 적용할 규칙을 생성

* ingress(들어옴) : outbound(egress)는 디폴트로 전부 허용되어 있으니, ingress(들어옴)허용할 프로토콜만 설정

* icmp ingress를 허용함으로써 ping을 통해 서버가 잘 작동하고 있는지 확인 가능

 

 

22번 포트 허용

* ingress를 넣지 않아도 디폴트로 ingress가 들어가서 기입하지 않아도 됨

* port_range_min : 시작 포트

* port_range_max : 마지막 포트

* 출발지 : source(src); src ip, src port

* 목적지 : destination(dst); dst ip, dst port

 

 

80번 포트 허용

 

 

DB보안 그룹 생성

 

3306번 포트 오픈

 

 

22번 포트 허용

 

 

키 페어 생성

~ : 사용자 디렉토리(여기서는 root사용자의 홈 디렉토리)

 

 

CentOS7 이미지 create

* --public : cli-user는 권한이 없어서 --public 옵션 사용 못 함 (public 옵션은 admin계정에서만 사용 가능)

 

Ubuntu18 이미지 create

* img 파일도 디스크 형식은 qcow2

 

 

이미지 완성

 

 

floating ip 설정

 

 

floating ip 생성 확인

 

 

특정 floating ip 지정하기

* CLI환경에서는 floating ip 중 원하는 IP를 가져다 쓸 수 있음 (web UI 환경에서는 지원하지 않는 옵션)

* 여기서는 192.168.4.4번 IP를 특정하여 floating ip로 사용

 

 

vi httpd.file

* web UI 환경에서 컨테이너 files 만들고 wordpress 업로드

* 해당 링크 주소를 wget 뒤에 붙임

* httpd.file에 스크립트 넣어주기

 

 

WEBSERVER 만들기

 

 

floating IP 붙음

 

 

볼륨 생성

 

 

볼륨 추가