가상화 - OpenStack 운영 CLI

jsbak·2023년 4월 6일
0

Cloud

목록 보기
14/59
post-thumbnail

오브젝트 스토리지 활용 및 웹서버 설치

파일 업로드 - (CLI 명령으로 내려받을 웹 부트스트랩 업로드)

  • 프로젝트 탭 ➡ 오브젝트 스토리지 ➡ 컨테이너 ➡ 🔼 버튼 클릭
  • 파일 업로드
  • Public Access ✅(체크) 및 Link 클릭
  • 웹으로 접근 가능한 파일 링크 확인
    • 192.168.1.82:8080/v1/AUTH_63860265ea5b499bab247799efa67f1b/files/aws.tar

업로드된 파일 다운로드 (- 웹 부트스트랩 다운로드)

$ sudo yum install -y wget

-------- 웹서버가 없다면? --------
$ sudo yum install -y httpd
$ sudo systemctl enable --now httpd
--------------------------------------------------------------------------------

$ wget 192.168.1.82:8080/v1/AUTH_63860265ea5b499bab247799efa67f1b/files/aws.tar
$ sudo tar -xvf aws.tar -C /var/www/html/

  • 결과

CLI로 컨테이너를 만들기

  • CLI로 컨테이너를 만들기

    • 오픈스택에서 수행해야한다.
    • CLI를 수행하려면 자격증명이 필요하다
    • 로그인한 유저와 로그인한 유저의 권한이 필요하다.
    • keystonerc_admin 밑에 접근 가능한 토큰 정보가 있다.

      인증 정보를 물어볼 주소(OS_AUTH_URL)와 인증 가능한 정보(OS_USERNAME, OS_PASSWORD)
      아래 4개 중 3개는 리전? 관련 내용 이고, 맨 아래 VERSION은 API의 버전을 의미
  • 자격 증명 없이는 수행 불가능
    openstack container list 수행시 권한을 요구함

  • 자격 증명 입력

    • 자격 증명 입력시 export PS1='[\u@\h \W(keystone_admin)]\$ '에 의해 프롬프트가 바뀌어 식별 가능하다.
## 자격 증명 정보 입력; 로그인
## keystonerc_admin 정보를 가지고 로그인
\# source keystonerc_admin

  • # openstack container list
  • \# openstack container create test_container
\# openstack container create test_container
+---------------------------------------+----------------+------------------------------------+
| account                               | container      | x-trans-id                         |
+---------------------------------------+----------------+------------------------------------+
| AUTH_63860265ea5b499bab247799efa67f1b | test_container | tx549f8edd80f6477db57f6-00642e7553 |
+---------------------------------------+----------------+------------------------------------+
\# openstack container list
+----------------+
| Name           |
+----------------+
| files          |
| test_container |
+----------------+

  • 컨테이너에 파일 업로드
\# openstack object create test_container answers.txt
\# openstack object list test_container

  • 컨테이너에서 파일 가져오기
## 오브젝트 컨테이너 확인 및 컨테이너 내 파일 조회
\# openstack container list
\# openstack object list files

## 오브젝트 컨테이너에서 파일 가져오기
\# openstack object save files aws.tar

  • 컨테이너 내부의 파일 지우기
## 컨테이너 내부 파일 확인
\# openstack object list test_container

## 오브젝트 파일 삭제 요청

\# openstack object delete test_container answers.txt

## 삭제 확인
\# openstack object delete test_container answers.txt

  • 컨테이너 지우기
\# openstack container delete test_container
\# openstack container list


템플릿 생성기 활용 - 서버를 만들어보는 과정

  • 보안 그룹의 ID를 조회 (open-web SG ID Check)
    # openstack security group list

  • 서브넷의 ID를 조회
    # openstack subnet list

  • flavor Type 조회
    # openstack flavor list

  • image ID 조회
    # openstack image list

  • Keypair 조회; 이름 입력(유일하다.)
    # openstack keypair list

    • 자세히 조회
      openstack keypair show open-key
  • 템플릿 sample-stack.yml 파일 작성

    • 서버를 만드는 템플릿
\# vi sample-stack.yml
--------------------------------------------------------------------------------
💥 ID를 넣는 이유? Project 가 다른데 SG의 이름이 같을 수 있다. 하지만 ID는 하나로 식별된다. 💥

security_groups: 조회해서 사용할 보안 그룹 ID 입력 
  
subnet: 서브넷의 ID

name: 인스턴스 네임

flavor: flavor Type Name 입력

image: image ID 입력

key_name: KeyPair Name 입력

-- 💥 availability_zone: nova, availability_zone 조회하는 법 알아보자
--------------------------------------------------------------------------------
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: 
        - "0fddaee8-a513-42ba-8a45-7cae5a204d0f"
      networks: 
        - subnet: "a74339ec-672e-4ef1-aebf-1f72acd5f151"
      name: cirros5
      flavor: "m1.tiny"
      image: "902ea148-a8cd-4f4c-a07a-5ba1733b9436"
      availability_zone: nova
      key_name: "open-key"
--------------------------------------------------------------------------------
  • Stack 생성
    • 서버를 만드는 스택임
      # openstack stack create -t sample-stack.yml Sample-Stack
  • 스택 리스트 조회
    # openstack stack list
  • 서버 리스트 조회
    # openstack server list
  • Floating IP 할당
    # openstack floating ip create external_network
  • Floating IP 리스트 조회
    # openstack floating ip list
  • port 리스트 조회
    # openstack port list
  • cirros5 인스턴스에 Floating ip 를 주기위한 stack
    • floating-stack.yml 작성
# vi floating-stack.yml
--------------------------------------------------------------------------------
floatingip_id: floating ip list 중에서 None 인 것의 ID 할당

port_id: 

floatingip_id 와 port_Id 연동 (외부 IP 와 내부 IP 연동); 어소시에이트?
--------------------------------------------------------------------------------
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: "f00940c0-5451-4051-9f70-fb70960eef53"
      port_id: "b311797d-0500-485a-b7fa-138889e292d4"
  • floating-stack.yml 스택 생성
    # openstack stack create -t floating-stack.yml Floating-Stack
    • Floating-Stack 생성 확인
      # openstack stack list
  • 잘 연동 됐는지 확인; 어소이에이트 확인
    # openstack server list
  • 패스워드로 접속 확인; gocubsgo
  • 외부 트래픽 통신 가능한지 확인하고, KeyPair를 업로드 하여 Key로 접속 확인
profile
끄적끄적 쓰는곳

0개의 댓글