[클라우드/OpenStack - OpenStack 설치하기]

SooYeon Yeon·2022년 9월 16일
0

클라우드 OpenStack

목록 보기
2/9

OpenStack 도메인과 프로젝트

한명의 사용자는 여러개의 프로젝트에 참여할 수 있다.

OpenStack 설치하기

오픈스택(팩스택) 설치하는 과정

  • /etc/yum.respod.d/저장소목록 오픈스택의 다양한 서비스를 설치하기 위한 패키지를 새로 추가한 저장소에 요청

사전 조건 : 안정적인 네트워크 속도, 충분한 CPU, RAM

  • repository 저장소 목록을 설치하고, 오픈 스택 설치 시 스크립트에서 neutron=y로 되어있으면 이 repository 패키지에서 neutron을 찾고, 데몬 설치 및 실행을 해준다. 서비스 실행 정보는 DB에 등록되어있다.(MariaDB)
  • 유저가 DB에 목록을 가져오려면 두가지 방법이 있다.
    • 명령으로 접근 시 인증을 통해 token을 받아올 수 있으며, 테이블을 그대로 보여준다.
    • API로 접근 시 인증을 통해 token을 받아올 수 있고, api 주소를 이용하며, json 형태로 데이터를 받아올 수 있다.

PackStack으로 오픈스택 설치하기

  1. CentOS를 ServerwithGUI 버전으로 설치 (NIC은 NAT로 구성)

  2. 설치 이후

    • 방화벽, NetworkManager, SELinux 비활성화
    • 업데이트
    # 오픈스택을 팩스택으로 설치하기 위해 오픈스택 패키지 저장소 등록
    yum -y install centos-release-openstack-rocky
    
    # 팩스택 설치
    yum -y install -y openstack-packstack

aws는 이용자 입장이고, 오픈스택 → 설치 → 관리자 (클라우드 서비스에 대한 추가적인 개발, 변경)

  1. 설정 파일 확인 및 설치 시작

    packstack --gen-answer-file=answer.txt
    vi answer.txt

MariaDB는 y로 꼭 되어 있어야 한다.

glance : Image service

cinder : Block storage service

manila : NFS 서비스 같은 Shared File System

nova : compute service

neutron : networking service

horizon : Dashboard service

swift : object storage service

ceilometer : metric service (과금 관련해서 연결하면 됨)

heat : orchestration service

aws에서의 CloudFormation = stack = compose = terraform → IaC

heat 서비스는 aws와 연계가 가능

```bash
packstack --answer-file=answer.txt
```

DB에 root/test123이 등록되어 있음

keystone admin을 admin/test123으로, demo는 demo/demo로

이 정보들이 keystone에 등록이 되기 때문에 로그인 할 수 있었던 것

설치 후 확인하면 keystonerc_admin keystonerc_demo 이 생성되어 있다.

```bash
[root@localhost ~(logged)]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin
    export OS_PASSWORD='test123'
    export OS_REGION_NAME=RegionOne
    export OS_AUTH_URL=http://211.183.3.111:5000/v3
    export PS1='[\u@\h \W(logged)]\$ '

export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
```

```bash
[root@localhost ~(logged)]# source keystonerc_demo
[root@localhost ~(keystone_demo)]# source keystonerc_admin
[root@localhost ~(logged)]#
```

- admin으로 들어와서 user list를 확인

```bash
[root@localhost ~(logged)]# openstack user list
+----------------------------------+------------+
| ID                               | Name       |
+----------------------------------+------------+
| 0af3f6db47a249fd92c9b4ee94648fc9 | heat_admin |
| 1b33418d637d407eb15c866ec3337977 | neutron    |
| 26e2077d06454ec68b08722a8fc324f3 | heat-cfn   |
| 27e9c8357bbe47ea89eb3a98a675b02e | demo       |
| 327feb443acc4995b4dfd7081a67d4da | admin      |
| 3dcac9f5697045f1abac33fd468a4b0a | glance     |
| 463316affb0e432b9d82414e43180f05 | swift      |
| 550fc5b578204594a84b0d91a1123943 | gnocchi    |
| 5ec57fac6ba941c29abcb6b312bf9169 | placement  |
| 9e3d487ef2d84bc78e875424c85b5013 | cinder     |
| c0484b2bcc084174a19762161d5cdf1d | ceilometer |
| c0e0042432e4432bbb4def3ad72c6037 | aodh       |
| dc38b779594f47aebf3a1b92263f0f38 | heat       |
| fe9afbba44d24387b3d5bb278a309626 | nova       |
+----------------------------------+------------+
```

- 네트워크 리스트 확인

```bash
[root@localhost ~(logged)]# openstack network list
+--------------------------------------+---------+--------------------------------------+
| ID                                   | Name    | Subnets                              |
+--------------------------------------+---------+--------------------------------------+
| 41a701f6-6292-4259-9742-2194edddf1f5 | public  | 65176501-0f3f-4ad4-a850-d0a76bcab59f |
| bf48a80f-76e3-4f5d-94a4-5e3ea47f8166 | private | 1498916c-5995-4ee5-bad0-84607e1073f8 |
+--------------------------------------+---------+--------------------------------------+
```

- show : 상세정보 봄

```bash
[root@localhost ~(logged)]# openstack network show private
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        | nova                                 |
| created_at                | 2022-09-13T14:57:47Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | bf48a80f-76e3-4f5d-94a4-5e3ea47f8166 |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | None                                 |
| is_vlan_transparent       | None                                 |
| mtu                       | 1450                                 |
| name                      | private                              |
| port_security_enabled     | True                                 |
| project_id                | e4225d77f4fd4ad9a766e8d8f7e35a6e     |
| provider:network_type     | vxlan                                |
| provider:physical_network | None                                 |
| provider:segmentation_id  | 17                                   |
| qos_policy_id             | None                                 |
| revision_number           | 3                                    |
| router:external           | Internal                             |
| segments                  | None                                 |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | 1498916c-5995-4ee5-bad0-84607e1073f8 |
| tags                      |                                      |
| updated_at                | 2022-09-13T14:57:51Z                 |
+---------------------------+--------------------------------------+
```
  1. 설치 후
    • keystone에서 인증을 거치게 되면, 토큰의 만료 시간이 정해진다. 이를 늘리자
      [root@localhost ~(logged)]# vi /etc/keystone/keystone.conf

    2836번째 줄 expiration=3600초를 60*60*8=28800으로 변경
    
- 웹서비스도 TIMEOUT이 있다.
    
    ```bash
    [root@localhost ~(logged)]# vi /etc/openstack-dashboard/local_settings
    ```
    

    794째 줄의 SESSION_TIMEOUT = 28800으로 변경
    
    이후 reboot
    
    패스워드 생성시 랜덤한 패스워드를 자동으로 생성하고 싶다면?
    
    ```bash
    [root@localhost ~]# openssl rand -hex 10
    9633692e1dbb743a51ef
    ```

0개의 댓글