사전 조건으로는


1. Ubuntu 16.04 Openstack(Pike) Default 컴포넌트 설치 


2. 단일 Controller Node에서 작업


3. 외부와 네트워크 통신이 가능


* 설치 단계


1)  네트워크 설정


Network Interfacecontroller host name을 등록한다


$ ifconfig




$ vi etc/network/interfaces

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

auto enpno03

iface eth0 inet static                      ## 상황에 따라 설정을 다르게 해준다.

address 192.168.0.67

netmask 255.255.255.0

gateway 192.168.0.1

dns-nameserver 8.8.8.8

 

$ vi /etc/hosts

#controller                                   ## 상황에 따라 설정을 다르게 해준다.

192.168.0.67       controller

 

$ reboot

 



2)  Openstack Package 설치


$ apt install software-properties-common

$ add-apt-repository cloud-archive:pike

$ apt-get update & apt-get disk-upgrade # 해당 작업을 안해주면 다른 버전의 Openstack Package가 설치 될 가능성이 있다.

$ apt install python-openstackclient


3) Mysql 설치


$ apt install mariadb-server python-pymysql


1.     mysql config 설정

$ /etc/mysql/mariadb.conf.d/99-openstack.cnf


[mysqld]

bind-address = #{server ip}

default-storage-engine = innodb

innodb_file_per_table = on

max_connections = 4096

collation-server = utf8_general_ci

character-set-server = utf8


$ service mysql restart

$ mysql_secure_installation

 

3) Message queue 설치


$ apt install rabbitmq-server

$ rabbitmqctl add_user openstack RABBIT_PASS

$ rabbitmqctl set_permissions openstack ".*" ".*" ".*"


4) Memcached 설치


$ apt install memcached python-memcache

# /etc/memcached.conf 변경

-l 127.0.0.1 또는 -l CONTROLLER_IP

$ service memcached restart


5) Openstack Keystone 설치


1.    keystone 데이터 베이스 생성

       $ mysql

$ CREATE DATABASE keystone;

       $ GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \

IDENTIFIED BY 'KEYSTONE_DBPASS';

       $ GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \

IDENTIFIED BY 'KEYSTONE_DBPASS';


2.     Keystone 설치

       $ apt install keystone apache2 libapache2-mod-wsgi


3.     Keystone config 파일 수정


# /etc/keystone/keystone.conf

[database]

# ...

connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

 

[token]

# ...

provider = fernet



1.     Keystone 데이터 베이스 동기화

$ su -s /bin/sh -c "keystone-manage db_sync" keystone

 

2.     Keystone 저장소 키 초기화

$ keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

$ keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

 

3.     Keystone Bootstrap

      $ keystone-manage bootstrap --bootstrap-password ADMIN_PASS \

         --bootstrap-admin-url http://controller:35357/v3/ \

         --bootstrap-internal-url http://controller:5000/v3/ \

         --bootstrap-public-url http://controller:5000/v3/ \

      --bootstrap-region-id RegionOne

 

4.     Apache config 수정


# /etc/apache2/apache2.conf

ServerName controller



이후는 다음에..

openstack 서버 pike 버전의 설치를 알아보던 중 devstack의 설치 스크립트에 관련하여 간단하게 설치 할 수 있다는 것을 알게 되었다.


하지만 devstack은 말 그대로 dev버전 임으로 서버가 꺼졌다 켜졌을 경우 이전 데이터의 안정성을 보장 할 수 없고 설치 한 가상머신에 대하여 서버가 작동이 중단 및 재실행이 안된다, 말 그대로 한번 설치 하고 테스트를 할 수 있는 서버 환경 인것 같다.


Devstack은 sudo를 사용하여 root가 아닌 사용자로 실행해야 한다. devstack 설치 방법은 아래와 같다.


$ sudo useradd -s /bin/bash -d /opt/stack -m stack


$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack


$ sudo su - stack


아래 git 주소를 clone 한다.


git clone https://github.com/leedonghyean/devstack.git


Openstack은 오픈소스 환경임으로 별도의 stable 된 git version이 올라가는게 아니라 다양하게 올라가는 것 같다.


해당 git hub의 MD 파일을 확인 하여 보면 git checkout을 통해 안전한 버전의 pike로 checkout 할 수 있는 것 같다.


다운받은 github의 stack.sh 스크립트 파일에서 설치 할 프로세스 등을 확인 할 수 있고

stackrc에서 네트워크 타입과 각 각의 오픈스택 구성 컴포넌트 git을 정의 할 수 있는 것  같다.


local.conf라는 파일을 생성 한다.

해당 파일은 localrc의 속성 값으로 설치 스크립트가 실행 할 때 환경 변수로 들고 들어 가는 것 같다.

파일에 


[[local|localrc]]

# default

HOST_IP=192.168.0.6

 

# network

FLAT_INTERFACE=eth0

FIXED_RANGE=10.0.0.0/20

FIXED_NETWORK_SIZE=4096

FLOATING_RANGE=192.168.0.0/24

 

# vnc

VNCSERVER_LISTEN=0.0.0.0

VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP


# system password

ADMIN_PASSWORD=admin

MYSQL_PASSWORD=admin

RABBIT_PASSWORD=admin

SERVICE_PASSWORD=admin

SERVICE_TOKEN=openstackservicetoken


서비스 패스워드, Floating IP 주소 내부 아이피 할당 주소 등 프로퍼티를 명세 할 수 있다.


프로퍼티 값을 명세 하고 ./stack.sh를 설치 하면 30~60분 사이에 devstack 서버가 완성 된다.


서버가 생성 되면 기본 대시보드 Horizon, 인증 Keystone 주소는 아래와 같다.


Horizon: http://myhost/


Keystone: http://myhost/identity/v2.0/





devstack은 1회용 서버 이기 때문에 회사 및 개인이 지속적으로 활용 하기엔 어려움이 있는 테스트 버전의 서버 인 것 같다.

일반 Openstack 설치를 하려면 스크립트 설치가 아닌 컴포넌트 하나 하나를 찾아가며 설치를 해야 한다.

1. 아래는 controller 일 경우 



2. 아래는 IP 주소일 경우




ubuntu 환경에서 Openstack API Endpoint로 외부에서 접속 할 경우 IP 주소가 아닌 Controller 주소로 되어 있다면 접속이 불가능 하다.


해결 방법은 /etc/hosts에서 해당 Service EndPoint에 관련 한 네임 서버를 등록 하고 API를 call하면 성공적으로 실행 되는 것을 확인 할 수 있다


/etc/hosts 관련 설명 참조 링크 -> http://storycompiler.tistory.com/118

'iaas > Openstack' 카테고리의 다른 글

Ubuntu 16.04에서 Openstack(Pike) 설치  (0) 2018.08.07
devstack 서버 설치 방법  (0) 2018.04.30

+ Recent posts