CentOS7 - webserver 설치
CentOS7 인스턴스 생성








# ' #! ' 은 스크립트를 실행할 때 쉘을 지정하는 명령어이다.
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd



이제 생성한 인스턴스를 외부와 통신이 되도록 설정할 것이다.







Ubuntu - DB 설치
Ubuntu 인스턴스 생성







# 마리아db 설치 스트립트. 스크립트는 root계정에서 이뤄지므로 sudo 없어도 무방.
#!/bin/bash
apt-get update -y
apt-get install -y mariadb-server







오브젝트 스토리지 활용 및 웹서버 설치
webserver에 aws.tar 풀기

aws.tar
1.52MB




# CentOS7 - webserver 에서
# wget 패키지 설치
sudo yum install -y get
# 위에서 업로드한 aws.tar 다운
wget [위에서 복사한 링크]
# tar파일을 html 폴더에 해제
sudo tar -xvf aws.tar -C /var/www/html/
# httpd 재기동
sudo systemctl enable --now httpd


자격 증명
오픈스택이 설치된 서버 (제일 처음에 생성된 서버)에서 CLI로 오픈스택을 다뤄보자.


# 자격증명으로 로그인
source keystonerc_admin
# 컨테이너 리스트 출력
openstack container list

이처럼 오픈스택을 다루려면 자격 증명이 돼야한다.
컨테이너 생성
# 컨테이너 생성
openstack container create test_container
# 컨테이너 확인
openstack container list

오브젝트 업로드
# test_container 에 asnwers.txt 업로드
openstack object create test_container answers.txt
# test_container의 오브젝트 리스트 확인
openstack object list test_container

오브젝트 다운로드
# files 컨테이너 안에 있는 aws.tar 파일 다운로드
openstack object save files aws.tar
# 다운로드 확인
ls

오브젝트 지우기
# test_container 안의 answers.txt 지우기
openstack object delete test_container answers.txt
# 확인
openstack object list test_container

컨테이너 삭제
# test_container 컨테이너 삭제
openstack container delete test_container
# 컨테이너 리스트 확인
openstack container list

템플릿 생성기 활용
템플릿 생성기 만들기
heat_template_version: "2021-04-16"
description: "version 2017-09-01 created by HOT Generator at Thu, 24 Mar 2022 06:33:11 GMT."
resources:
Server_1:
type: "OS::Nova::Server"
properties:
security_groups:
- "[ 보안 그룹 아이디 ]"
networks:
- subnet: "[ 서브넷 아이디 ]"
name: [ 이름 입력 ]
flavor: "[ flavor 이름]"
image: "[ image 아이디 ]"
availability_zone: nova
key_name: "[ 키 페어 이름] "
위의 텍스트에서 빈칸은 순서대로 채워서 생성할 템플릿의 설정을 할 것이다.
아이디 말고 이름을 써도 되지만, 중복으로 인해 문제가 발생할 수도 있으므로 중복이 우려되는 경우엔 아이디를 추천
이름의 경우에는 원하는 이름을 입력하면 된다.
보안 그룹
# 보안 그룹 리스트
openstack security group list

서브넷
# 서브넷 리스트
openstack subnet list

Flavor
# flavor 리스트
openstack flavor list

이미지
# 이미지 리스트
openstack image list

키 페어
키 페어의 경우 이름이 같을 수가 없으므로 이름으로 한다.
# 키 페어 리스트
openstack keypair list

템플릿을 이용하여 스택 생성
# 템플릿편집
vi sample-stack.yml
// 각자 위에서 빈칸을 채운 양식으로 붙여넣는다.
heat_template_version: "2021-04-16"
description: "version 2017-09-01 created by HOT Generator at Thu, 24 Mar 2022 06:33:11 GMT."
resources:
Server_1:
type: "OS::Nova::Server"
properties:
security_groups:
- "a4033d55-0963-4218-b183-e6fe21bbaf3c"
networks:
- subnet: "701d50a5-8e16-4d33-8025-9c81cf61a83c"
name: cirros5
flavor: "m1.tiny"
image: "65041f9e-3fdb-4cf0-b8ec-47beaf03dc6c"
availability_zone: nova
key_name: "open-key"
//

# 템플릿을 기반으로 이름이 'Sample-Stack'인 스택 생성 (서버를 만들기 위한 스택)
openstack stack create -t sample-stack.yml Sample-Stack
# 스택 확인
openstack stack list

# 서버 리스트
openstack server list

Floating IP 연결
# 만들어놓은 'external_network'로 플로팅 아이피 생성
openstack floating ip create external_network

# 플로팅 아이피 리스트
openstack floating ip list

# 생성된 서버의 아이피 확인
openstack server list
# 플로팅 아이피의 포트 아이디 기억 --- 1
openstack floating ip list
# 생선된 서버의 포트 아이디 기억 --- 2
openstack port list
# vi floating-stack.yml
heat_template_version: "2018-08-31"
description: "version 2017-09-01 created by HOT Generator at Fri, 13 Aug 2021 10:45:18 GMT."
resources:
FloatingIPAssociation_1:
type: "OS::Neutron::FloatingIPAssociation"
properties:
floatingip_id: "[ 플로팅 아이피의 포트 아이디 --- 1 ]"
port_id: "[ 서버의 포트 아이디 --- 2 ]"




# 플로팅 아이피 연결을 위한 스택 생성
openstack stack create -t floating-stack.yml floating-ip
# 확인
openstack server list

키 인증 방식으로 접속


# 키 파일의 퍼미션 400으로 수정 (키는 개방되어 있으면 안된다.)
chmod 400 open-key.pem
# 키를 이용하여 접속
ssh -i open-key.pem cirros@[할당한 플로팅 아이피]
MobaXterm에서 세션을 등록해놓자.
인스턴스 상태 삭제로 변경
만일 인스턴스가 삭제가 안되는 오류가 발생 시, 해당 방법으로 임시 조치가 가능하다.
# 서버 리스트 확인 ( 삭제할 인스턴스 아이디 확인)
openstack server list
# 프로젝트 리스트 확인 ( 대응하는 아이디 확인)
openstack project list
# DB 접속
mysql -u root
# 인스턴스는 nova에 있다. 그러므로 nova에 접속
use nova;
# mysql 인스턴스 삭제 sql문
update instances set deleted='1', vm_state='deleted', deleted_at=now() where uuid='[대응하는 서버 아이디]' and project_id='[ 대응하는 프로젝트 아이디 ]';
# 삭제 확인
select uuid, hostname, vm_state, task_state, power_state, deleted from instances where uuid='[삭제한 서버 아이디]';
'메가존 클라우드 2기 교육 > 실무 심화' 카테고리의 다른 글
오픈 스택 - 서버 네트워크 구축 최종 실습 (0) | 2023.04.10 |
---|---|
오픈 스택 - CLI로 생성(Webserver-워드프레스, DBserver - MariaDB) (0) | 2023.04.07 |
오픈 스택 - 구성 요소(서비스) (0) | 2023.04.06 |
오픈 스택 - 구성 요소(서비스) Swift, Heat (0) | 2023.04.06 |
오픈 스택 - VMware에 오픈스택 설치 및 네트워크 및 보안 구성 (0) | 2023.04.05 |