본문 바로가기

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

[5.6] 오픈스택-인스턴스 생성

오픈스택 IP

* 실제 랜카드인 ens160에는 IP가 없고. br-ex(가상 랜카드)가 IP를 가지고 있다.

* 오픈스택은 (KVM)Kernel Based Virtual Machine

 

* Lanch와 Start의 차이 위의 인스턴스 시작은 Lanch(인스턴트 만드는 것) 아래의 인스턴스 시작은 Start(있는 것 시작)

 

 

# 우분투 생성

이미지 서비스(glacne)

 

이미지 생성 화면

 

* QCOW2는 호환성이 검증됨 (KVM용 가상디스크)

 

* 키페어 생성 확인 (안 했으면 생성하기)

* 프라이빗키는 절대 아무 곳에도 올리지 말기

 

 

 

* ICMP포트가 열려 있어야 ping 가능

 


워드프레스 설치(플로팅IP로 만든 web01-CentOS7)


# sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# sudo yum -y install epel-release yum-utils
# sudo yum-config-manager --enable remi-php74
# sudo yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
# sudo cd /var/www/html
# sudo unzip /root/share/wordpress-5.9.3-ko_KR.zip
# sudo mv wordpress/* .
# sudo chown -R apache:apache /var/www/*
# sudo systemctl restart httpd
# sudo php -v


프로젝트->오브젝트 스토리지(Swift)->컨테이너

* 여기서 컨테이너의 의미는 도커 컨테이너와 다름

 

그림과 같이 입력 후 Submit

* Submit하면 컨테이너 생성됨

 

 

 

+폴더 클릭 후 images로 폴더 이름 정하기

 

two-rabbit.jpg 파일 업로드하기

 

업로드한 파일 볼 수 있음
배포하고 싶으면? : Public Access체크박스 체크
Link로 접속하기

 

Link클릭한 화면

* 주소창에 /images/two-rabbit.jpg로 two-rabbit.jpg에 접근

 

* 해당 주소를 다른 사람에게 보내주면 배포 완료

 

web01로 가서

* wget을 통해 파일을 내려받기

* 오브젝트 스토리지의 기능인 url다운로드

 

index.html업로드

* 경로가 images/two-rabbit.jpg로 되어 있는 인덱스 파일

 

/index.html로도 접근 가능

 

wordpress도 업로드
wordpress업로드 완료
wordpress압축파일 이름 경로 적어주기

* 바로 다운로드 됨


# mobaXterm에서 wget을 이용해 오브젝트 스토리지의 파일 다운로드

wget을 이용해 wordpress압축파일 다운로드
현재경로에 wordpress압축풀기
파일을 전부 옮겨오기


# 우분투(Ubuntu18) web02인스턴스 생성

네트워크 포트에는 아무것도 없음
키페어 자동으로 올라가 있음
쉘 스크립트 작성

* 첫 줄에 #!/bin/bash 필수 입력

* vm이 만들어지는 과정에서 실행되는 명령어들은 root권한으로 실행돼서 sudo 안 붙여도 됨


# 볼륨

볼륨

* vda에서 a가 루트볼륨이라는 의미

* 컴퓨트에서 메모리와 CPU, 볼륨은 따로 설정되어 있는 상태

 

볼륨생성

* 볼륨이 부족하면 볼륨을 생성하기

 

1G만 추가적인 볼륨생성해보기

 

 

볼륨연결관리

* 인스턴스 선택 후 볼륨 연결 클릭하여 추가볼륨을 web01에 attached 시키기(외장하드 붙이는 것처럼)

 


# mobaXterm에서 추가볼륨 마운트하기

블록 스토리지 리스트 보기

* 루트에 vda가 마운트 되어 있음

* 추가볼륨(vdb)도 마운트 시켜줘야 함

 

* 블록사이즈를 따로 지정하지 않으면, 4096바이트가 기본 사이즈

 

mnt폴더와 마운트

* 리눅스에는 기본적으로 마운트 폴더가 만들어져 있음

 


# web02(ubuntu) 플로팅 IP연결

web02에 유동IP없는 상태
IP주소 선택해서 넣어주기


# web01의 wordpress파일을 ubuntu에 옮기기

-> attach > mount > umount > detach 순서대로

마운트 해제

 

볼륨 연결 관리
볼륨 연결 해제

* web02로 볼륨 연결하기

 


# DB서버 만들기

보안그룹 아이디 실무에서는 비공개
DB인스턴스 생성


# 지금까지 만든 인스턴스 다 지우고 새로 만들기 시작

 

1. 플로팅Ip해제 -> 라우터 삭제 -> 네트워크에서 INTERNAL삭제

2. 좌측 메뉴 인증 -> 프로젝트 -> +프로젝트 생성 -> 이름과 설명: web-project -> 프로젝트 생성 클릭

3. 좌측 메뉴 사용자 -> +사용자 생성 -> 사용자 이름 : web-user, 암호 : Test1234!, 최초 프로젝트 : web-project선택, 역할 : _member_ 선택 -> 사용자 생성 클릭

4. firefox나 edge브라우저 -> 오픈스택IP입력 -> 사용자 이름 : web-user, 비밀번호 : Test1234! 로그인

5. web-user사용자에서 좌측 메뉴 프로젝트 -> 네트워크 -> 네트워크 -> EXTERNAL은 이미 있는 상태 

6. +네트워크 생성 -> 네트워크 이름 : INTERNAL -> 다음 클릭 -> 서브넷이름 : INTERNAL_SUBNET, 네트워크 주소 : 10.13.0.0/20, 게이트웨이 : 10.13.0.1 -> 다음 클릭 -> DHCP체크, DNS네임서버 : 192.168.0.66엔터8.8.8.8엔터203.248.252.2 -> 생성 클릭

7. 라우터 -> +라우터 생성 -> 라우터이름 : Router, 외부네트워크 : EXTERNAL 선택 -> 생성

8. Name 항목 밑에 Router클릭 -> 인터페이스 클릭 -> +인터페이스 추가 -> 서브넷 : INTERNAL~~선택 -> 제출

9. admin계정 -> 관리 -> 네트워크 -> 네트워크 -> EXTERNAL클릭 -> 포트 -> Fixed IP's가 게이트웨이의 IP -> 윈도우 cmd관리자 창에서 해당 IP로 ping 나가야 함

10. web-user계정 -> 좌측메뉴 프로젝트/네트워크/Floating IP -> 프로젝트에 IP할당 세번 반복

11. 프로젝트/네트워크/보안그룹 -> +보안그룹생성 -> 이름 : SG-WEB -> 생성

12. +규칙추가 -> 규칙 : HTTP선택 -> 추가 -> +규칙추가 -> 규칙 : SSH선택 -> 추가 -> +규칙추가 -> 규칙 : ALL ICMP 선택 -> 추가

13. 프로젝트/Compute/키 페어 -> +키 페어 생성 -> 이름 : web-key, 키 유형 : SSH 키 -> 생성

14. admin계정 -> 관리/Compute/이미지 -> 오른쪽 드롭다운 버튼 -> 이미지 편집 -> 이미지 공유의 가시성 항목 : 공용

-> 이미지 업데이트 클릭 -> CentOS7과 Ubuntu18 둘 다 같은 과정으로 가시성 항목 공용으로 만들기

15. web-user계정 -> 프로젝트/Compute/이미지 -> admin에서 공용으로 만든 이미지가 보인다.

16. 프로젝트/Compute/인스턴스 -> 인스턴스 시작 -> 인스턴스 이름 : WEBSERVER, 설명 : CentOS7 -> 다음 클릭

17. 볼륨크기 : 10, CentOS7 위로 올리는 화살표 클릭 -> 다음 클릭

18. m1.micro를 위로 올리기-> 다음 클릭

19. 네트워크에서 INTERNAL이 알아서 올라가 있음 -> 다음 클릭

20. 네트워크 포트는 비어 있음 -> 다음 클릭

21. default 내리고 SG-WEB올리기 -> 다음 클릭

22. 키 페어는 web-key -> 다음 클릭

23. 구성의 사용자 정의 스크립트 #!/bin/bash엔터 yum install -y httpd wget 엔터 systemctl enable --now httpd엔터 cd /var/www/html 엔터 wget http://192.168.0.71:8080/v1/AUTH_b8355b635f7d4673aa55611caa7094c8/mz13/index.html 엔터mkdir images && cd $_ 엔터 wget http://192.168.0.71:8080/v1/AUTH_b8355b635f7d4673aa55611caa7094c8/mz13/images/two-rabbit.jpg

24. 인스턴스 시작 -> 인스턴스 이름 : DBSERVER, 설명 : Ubuntu18 -> 다음클릭

25. 볼륨크기 : 10, 이미지 Ubuntu18 올려주기 -> 다음 클릭

26. m1.micro 올려주기 -> 다음 클릭

27. INTERNAL 올라가 있고 -> 다음 -> 포트 없고 -> 다음

28. default 내리고 SG-WEB을 올리기 -> 다음 클릭

29. 구성에서 사용자 정의 스크립트 #!/bin/bash 엔터 apt update 엔터 apt install -y nginx -> 생성

30. 프로젝트/Compute/인스턴스 -> WEBSERVER의 유동IP 연결 -> DBSERVER도 드롭다운 메뉴 내려서 유동IP연결

31. 프로젝트/네트워크/보안그룹 -> +보안 그룹 생성 -> 이름 :SG-DB -> 생성

32. +규칙추가 -> 규칙 : MYSQL -> 추가 -> +규칙추가 -> 규칙 : SSH -> 추가 -> +규칙추가 -> 규칙 : ALL ICMP -> 추가

33. 프로젝트/Compute/인스턴스 -> DBSERVER 드롭다운메뉴 -> 보안그룹편집 -> SG-WEB빼고 SG-DB넣어주기 -> 저장 

34. WEBSERVER IP인 192.168.4.70를 복사 -> mobaXterm에서 192.168.0.66세션 -> vi /var/named/mz13.shop.db -> ns빼고 IP 지우기 -> 도메인 네임 blog로 -> IP는 WEBSERVER IP인 192.168.4.70붙여넣기 -> systemctl restart named

35. 관리자 창에서 ping blog.mz13.shop으로 통신 확인

36. 웹 브라우저에 blog.mz13.shop 접속해서 two-rabbit.jpg 파일의 출력을 확인

 


# 오늘의 애러

1. Ubuntu에서 apt 명령어 사용할 때마다 You must manually run sudo dpkg configure to correct the problem애러 발생 

-> 출력된 애러 내용대로 sudo dpkg --configure -a 실행하고 다시 apt명령어 사용하면 잘 됨

 

2. mobaXterm의 192.168.0.71(오픈스택 세션)에 firewalld를 설치하면 openstack 로그인 페이지 출력 안 됨

-> sudo yum remove -y firewalld 로 방화벽 삭제하니 접속 가능