본문

VirtualBox위에 OpenStack Liberty 설치하기 #5. 서비스설치 (1)

VirtualBox위에 OpenStack Liberty 설치하기 #1. 소개

VirtualBox위에 OpenStack Liberty 설치하기 #2. Liberty 네트워크구조

VirtualBox위에 OpenStack Liberty 설치하기 #3. 네트워크 설정

VirtualBox위에 OpenStack Liberty 설치하기 #4. 노드구성


드디어 서비스 및 프로그램 설치를 수행하고자 한다. 이전글에서부터 계속 언급했듯, 컨트롤러 노드와 컴퓨트 노드의 두개의 가상머신위에 각각의 서비스/프로그램을 설치할 것이다. 특히 서비스별로(Keystone, Glance, Nova, Neutron, Horizon) 나누어 컨트롤러/컴퓨트 노드 각각에 설치하는 과정을 기록할 것이다. 설치 과정이 길기떄문에 설치 첫번째글인 이 글('VirtualBox위에 OpenStack Liberty 설치하기 #5. 서비스설치 (1)')에서는 컨트롤러 노드에만 설치되는 Keystone과 Glance 설치를 중심으로 설명한다.


주의사항: 사용자의 확인 또는 입력이 필요한 부분은 <입력값> 의 형태로 나타낼 것이고 그 이외에는 그냥 복사 붙여넣기하여 설치를 진행할 수 있다. 또한 괄호없이 빨간색 글씨로 되어있는부분은 기본암호이므로 보안을 강화하기 위해서는 이 부분과, 관련한 설정파일들을 변경해 주어야 한다. Ubuntu14.04버전 기준으로 작성되어 다른 운영체제에서는 호환이 되지않을수 있다. 기본적으로 'sudo su'를 미리 실행하여 root 권한으로 진행하도록 한다.


설치목차

1. 기본 프로그램 설치(python-openstackclient chrony) 및 네트워크 인터페이스 설정

2. 컨트롤러 전용 프로그램 설치(mariasql, rabbitmq)
3-1. Keystone 설치
3-2. 기본 계정 설정하기(Admin/Demo)
3-3. Keystone 설치 후 동작 확인
4-1. Glance 설치
4-2. Glance 설치 후 동작 확인

1. 기본 프로그램 설치(python-openstackclient chrony) 및 네트워크 인터페이스 설정

[컨트롤러/컴퓨트 노드 공통]
apt-get install software-properties-common
apt-get update && apt-get dist-upgrade

add-apt-repository cloud-archive:liberty
apt-get install python-openstackclient chrony


curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/_etc_hosts" > /etc/hosts


[컨트롤러 노드]

curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|_etc_network_interfaces" > /etc/network/interfaces


[컴퓨트 노드]

curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Compute|_etc_network_interfaces" > /etc/network/interfaces
<네트워크 설정 적용을 위하여 재부팅한다. 재부팅 이후 virtualbox guest extension이 실행되지 않는경우 다시 설치해준다>


2. 컨트롤러 전용 프로그램 설치(mariasql, rabbitmq)

[컨트롤러 노드]
apt-get install mariadb-server python-pymysql <프롬프트 뜨면 mariasql root 암호 마음대로 입력>
curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|_etc_mysql_conf.d_mysqld_openstack.cnf" > /etc/mysql/conf.d/mysqld_openstack.cnf
service mysql restart
mysql_secure_installation <guest 계정 비활성화등 보안관련이므로 실행안해도 된다, 실행시키더라도 (y)만 계속 누르면 된다>

apt-get install rabbitmq-server
rabbitmqctl add_user openstack RABBIT_PASS
rabbitmqctl set_permissions openstack ".*" ".*" ".*"


3-1. Keystone 설치

[컨트롤러 노드]

mysql -u root -p <아래의 sql구문입력>

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';


echo "manual" > /etc/init/keystone.override
apt-get install keystone apache2 libapache2-mod-wsgi memcached python-memcache
curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|_etc_keystone_keystone.conf" > /etc/keystone/keystone.conf
su -s /bin/sh -c "keystone-manage db_sync" keystone

vi /etc/apache2/apache2.conf <[default]항에 아래 내용추가>

ServerName controller


curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|_etc_apache2_sites-available_wsgi-keystone.conf" > /etc/apache2/sites-available/wsgi-keystone.conf
ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled
service apache2 restart
rm -f /var/lib/keystone/keystone.db


3-2. 기본 계정 설정하기(Admin/Demo)

[컨트롤러 노드]

export OS_TOKEN=ADMIN_TOKEN
export OS_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

openstack service create --name keystone --description "OpenStack Identity" identity
openstack endpoint create --region RegionOne identity public http://controller:5000/v2.0
openstack endpoint create --region RegionOne identity internal http://controller:5000/v2.0
openstack endpoint create --region RegionOne identity admin http://controller:35357/v2.0

openstack project create --domain default --description "Admin Project" admin
openstack user create --domain default --password-prompt admin <프롬프트 뜨면 'ADMIN_PASS' 입력>
openstack role create admin
openstack role add --project admin --user admin admin

openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" demo
openstack user create --domain default --password-prompt demo <프롬프트 뜨면 'DEMO_PASS' 입력>
openstack role create user
openstack role add --project demo --user demo user


curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|~admin-openrc.sh" >> admin-openrc.sh
curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|~demo-openrc.sh" >> demo-openrc.sh


3-3. Keystone 설치 후 동작 확인(오류메시지만 안나오면 OK)

[컨트롤러 노드]

openstack --os-auth-url http://controller:35357/v3 --os-project-domain-id default --os-user-domain-id default --os-project-name admin --os-username admin --os-auth-type password token issue
openstack --os-auth-url http://controller:5000/v3 --os-project-domain-id default --os-user-domain-id default --os-project-name demo --os-username demo --os-auth-type password token issue


source admin-openrc.sh
openstack token issue
source demo-openrc.sh
openstack token issue


4-1. Glance 설치

[컨트롤러 노드]

mysql -u root -p <아래의 sql구문입력>

CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';


source admin-openrc.sh
openstack user create --domain default --password-prompt glance <프롬프트 뜨면 'GLANCE_PASS'입력 >
openstack role add --project service --user glance admin
openstack service create --name glance --description "OpenStack Image service" image
openstack endpoint create --region RegionOne image public http://controller:9292
openstack endpoint create --region RegionOne image internal http://controller:9292
openstack endpoint create --region RegionOne image admin http://controller:9292

apt-get install glance python-glanceclient
curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|_etc_glance_glance-api.conf" > /etc/glance/glance-api.conf
curl "https://raw.githubusercontent.com/frontjang/openstack_liberty/master/Ctrl|_etc_glance_glance-registry.conf " > /etc/glance/glance-registry.conf
su -s /bin/sh -c "glance-manage db_sync" glance
service glance-registry restart
service glance-api restart
rm -f /var/lib/glance/glance.sqlite


4-2. Glance 설치 후 동작 확인(오류메시지만 안나오면 OK)

[컨트롤러 노드]

echo "export OS_IMAGE_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
source admin-openrc.sh
wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
glance image-create --name "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public --progress
glance image-list

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.