728x90

Ⅲ. OpenStack Services

1.     Keystone

OpenStack Identity service로 인증, 승인, 그리고 서비스에 대한 카탈로그 관리를 위한 단일 통합 지점을 제공한다.

Identity 서비스는 일반적으로 사용자가 상호 작용하는 첫 번째 서비스이다. 한 번 인증이 이루어지면, 최종 사용자는 자신의 신원을 사용하여 다른 OpenStack 서비스에 액세스 할 수 있다. 마찬가지로, 다른 OpenStack 서비스는 Identity 서비스를 활용하여 사용자가 자신이 말하는 사람임을 확인하고 배포 내 다른 서비스의 위치를 확인한다.

이 섹션은 keystone 이라는 코드 이름을 가진 OpenStack Identity 서비스를 컨트롤러 노드에 설치하고 구성하는 방법을 설명한다. 확장성 목적을 위해 해당 구성에서는 요청을 다루기 위한 Fernet 토큰 및 Apache HTTP 서버를 배포한다.

1.1. Controller Node

1.1.1.      전제 조건

Identity 서비스를 설치 및 구성하기 전에, 데이터베이스를 생성해야한다.
데이터베이스 액세스 클라이언트를 사용하여 데이터베이스 서버에 root 사용자로 연결하고 비밀번호는 It1로 설정한다. keystone 데이터베이스를 생성하고 keystone 데이터베이스에 적합한 액세스를 부여한다.

1.1.2.      구성요소 설치 및 구성

패키지들을 설치하기 위해 다음 명령어를 실행한다.

/etc/keystone/keystone.conf 파일을 편집하여 다음 작업을 완료한다.

[database] 섹션에서, 데이터베이스 액세스를 구성한다.

[token] 섹션에는 Fernet 토큰 제공자를 구성한다.

Identity 서비스 데이터베이스를 넣어준다.

Fernet 키 저장소를 초기화하고 Identity 서비스를 부트스트래핑한다.

설정 파일에 직접 들어가지 않고도 파일 내용을 변경할 수 있다.

 

1.1.3.      Apache HTTP 서버 구성

/etc/httpd/conf/httpd.conf 파일을 편집하여 ServerName 옵션이 컨트롤러 노드를 가리키도록 구성한다.

/usr/share/keystone/wsgi-keystone.conf` 파일에 대한 링크를 생성한다.

1.1.4.      설치 마무리

Apache HTTP 서비스를 시작하고 시스템이 부팅될 때 시작하도록 구성한다.

관리 계정을 구성한다.

1.1.5.      도메인, 프로젝트, 사용자, 역할 생성

Identity 서비스는 각 OpenStack 서비스를 위한 인증 서비스를 제공하며 인증 서비스는 domains, projects, users, roles를 결합하여 사용한다.

환경에 추가하는 각 서비스에 대한 고유 사용자를 포함하는 서비스 프로젝트로 사용하며 service 프로젝트를 생성한다.

보통 (비관리) 작업은 관리 권한을 갖지 않은 프로젝트와 사용자를 사용하기 때문에 myproject 프로젝트와 사용자를 생성한다.

Myproject를 생성한다.

myuser 사용자를 생성한다.

myrole 역할을 생성한다.

myproject 프로젝트의 ‘myuser’사용자에게 ‘myrole’역할을 추가한다.

1.1.6.      검증 과정

다른 서비스를 설치하기 전에 Identity 서비스에 대한 동작을 검증한다.

보안상의 이유로, 임시 인증 토큰 방식을 비활성화한다.
/etc/keystone/keystone-paste.ini
파일을 편집하여 [pipeline:public_api], [pipeline:admin_api], [pipeline:api_v3] 섹션에서 admin_token_auth 을 제거한다.

임시 OS_URL OS_PASSWORD 환경변수를 unset한다.

admin 사용자로, 인증 토큰을 요청한다.

myuser 사용자로 토큰을 요청한다.

1.1.7.      스크립트 생성

admin myproject 의 프로젝트와 사용자에 대한 클라이언트 환경 스크립트를 생성한다.

admin-openrc 파일을 생성하고 수정한 다음 아래 내용을 추가한다.

demo-openrc 파일을 생성하고 수정한 다음 아래 내용을 추가한다.

 

728x90
728x90

Ⅱ. 환경 설정

1.     Security

다음 명령어를 사용해서 보안 암호를 수동으로 만들 수 있다.

2.     Host Networking

3.     Network Time Protocol (NTP)

노드 사이에 서비스들을 적절히 동기화하기위해서 구현한다. Controller 노드는 다른 노드들을 가르키도록 하고 다른 노드들은 Controller 노드를 가르키도록 구성한다.

모든 노드에서 chronyd 패키지를 설치한다.

패키지 설치가 완료되면 /etc/chronyd.conf 파일을 설정해준다.

Controller 노드에서는 허용할 네트워크 아이디를 입력해준다.

파일 설정을 마치면 chronyd 서비스를 재실행시키고 제대로 작동하는지 확인한다.

4.     OpenStack Packages

stein 버전의 오픈 스택 패키지를 설치해준다.

모든 노드에 있는 패키지를 업그레이드 한다.

OpenStack 클라이언트를 설치한다.

SELinux가 기본적으로 활성화된다. openstack-selinux 패키지를 설치하여 OpenStack 서비스에 대한 보안 정책을 자동으로 관리한다.

5.     SQL database

Controller 노드에서 실행하고 MySQL을 사용한다.

패키지를 설치한다.

/etc/my.cnf.d/openstack.cnf 파일을 생성하고 편집한다.

데이터베이스 서비스를 시작하고 시스템 부팅 시 시작하도록 설정한다.

mysql_secure_installation 스크립트를 실행하여 데이터베이스 서비스 보안을 강화한다.

6.     Message queue

Message queue 역시 Controller 노드에서 동작하고 서비스 간 작업과 상태 정보에 대한 상호 교환 및 조정을 위해 message queue 를 사용한다.

패키지를 설치한다.

메시지 서비스를 시작하고 시스템이 부팅될 시작하도록 구성하고 openstack 사용자를 추가한다. 그리고 openstack 사용자에 대해 구성, 쓰기와 읽기 접근을 허용한다.

7.     Memcached

Memcached 서버는 Controller 노드에서 동작하고 서비스를 위한 Identity 서비스 인증 메커니즘에서는 토큰을 캐싱하기 위해 Memcached를 사용한다.

패키지를 설치한다.

/etc/sysconfig/memcached 파일을 열어 컨트롤러 노드에서 관리 IP 주소를 사용하는 서비스를 구성한다. 이를 통해 관리 네트워크를 통해 다른 노드에 대한 액세스를 활성화하도록 구성한다.

Memcached 서비스를 시작하고 시스템 부팅시 시작하도록 설정한다.

8.     Etcd

OpenStack 서비스들은 분산 키 잠금 관리, 구성 저장, 서비스가 살아있는지 및 다른 시나리오에 대한 지속적인 추적을 위한 안정적인 분산 키-값 저장소인 Etcd를 사용할 수 있다.

패키지를 설치한다.

/etc/etcd/etcd.conf 파일을 편집하여, 관리 네트워크를 통해 다른 노드로부터 액세스가 가능하도록 Controller 노드에 대한 관리 IP 주소를 설정한다.

etcd 서비스를 활성화한 시작한다.

728x90
728x90

Ⅰ. 프로젝트 계획서

1.     프로젝트 개요

1.1. 프로젝트 명 및 기간

-       OpenStack 수동 구성 및 Docker 활용

-       기간 : 2019.0724 ~ 2019.0730

1.2. 프로젝트 목적

-       수동 설치를 통해 OpenStack의 구조를 이해하고 원하는 기능을 필요 시마다 커스터마이징할 수 있다.

2.     프로젝트 구성

2.1. 사전 준비

OS

CentOS7-cont

CentOS7-comp

CentOS7-stor

CentOS7-stor-2

HOST

cont

comp

stor

stor2

IP1

1.0.0.1

1.0.0.2

1.0.0.3

1.0.0.4

IP2

192.168.2.121

192.168.2.122

X

X

SM

255.255.255.0

DG

1.0.0.254

DNS

168.126.63.1, 8.8.8.8

 

CPU

1P2C

1P2C

1P2C

1P2C

MEM

6GB

4GB

2GB

2GB

HDD1

100GB

100GB

20GB

20GB

HDD2

 

50GB

20GB

20GB

HDD3

 

 

20GB

20GB

NIC

NAT + Bridge

NAT + Bridge

NAT

NAT

 

ROLES

Controller Node

Compute Node

Object Storage Node

Object Storage Node

 

 

Storage Node

 

 

2.2. 구성도

 

728x90

+ Recent posts