티스토리 뷰

안녕하세요~!!


2015년을 맞이하여 처음으로 글을 써 봅니다. 
블로그에 방문하시는 모든 분들이 올 한해도 하고자 하시는 모든 일이 다 잘 이루어 지길 바랍니다. 또한 새해 복도 많이 많이 받으셨으면 좋겠습니다.

오늘은 지난 포스팅에 이어 CentOS로 설치한 서버 한대에 오픈스택을 설치해 보도록 하겠습니다. Devstack으로도 CentOS에  오픈스택을 설치할 수 있지만, RedHat 계열인 CentOS는 RDO PackStack이라고 하는 아주 좋은 설치 툴이 있습니다. 

그래서, 이번에는 PackStack을 이용하여 서버 한대에 오픈스택을 설치해 보도록 하겠습니다.

 All-in-One으로 오픈스택을 설치해 보

3장에서 우분투를 설치하고 데브스택을 이용해 오픈스택을 설치했다면 이번 장에서는 레드햇 계열인 CentOS를 설치하고 RDO PackStack을 이용해서 오픈스택을 설치하겠습니다. PackStack은 쉘 스크립트를 이용해서 설치하는 데브스택과 달리 Puppet 기반의 인스톨 유틸리티를 사용합니다.

 

 시스템 구성도를 그려보자

Single Node에 오픈스택을 설치할 때는 테스트나 스터디를 위한 설치이므로 사용하고 있는 컴퓨터에 VisualBoxVMWare로 생성한 가상서버를 주로 이용합니다. 이때 생성한 가상서버에 CentOS를 설치합니다. 레드햇에서 서비스하는 RDO PackStack을 이용해서 그림 6-1과 같은 네트워크 구성으로 설치하겠습니다.







IP 공유기의 게이트웨이 IP192.168.0.1이고 서브넷 마스크는 255.255.255.0이라고 가정합니다. Neutron을 이용해 오픈스택을 설치할 예정이므로 인터넷이 되는 윈도 PC의 네트워크 카드를 외부 인터넷과 연결되는 가상서버의 브리지 네트워크로 설정하고 br-ex 네트워크 IP192.168.0.100으로 사용합니다. 관리 및 모니터링 IP는 다른 공유기와 연결된 Bridge를 이용하는데 Bridge의 게이트웨이 IP10.10.15.1이고 CentOS가 설치된 가상서버의 IP10.10.15.11을 사용합니다. Fixed IP Range10.0.0.0/24를 사용하고 Floating IP Range는 인터넷이 되는 192.168.0.0/24를 사용할 것입니다. 그리고 할당 가능한 Floating IP Pool192.168.0.100에서 192.168.0.200을 사용하겠습니다.

 

Network IP 설정

VisualBox에서 생성한 가상서버에 CentOS 설치가 완료되면 로그인한 후 먼저 Network IP를 설정합니다. IP 설정이 완료되면 그 다음부터는 SSH 클라이언트 툴을 이용해 좀 더 쉽게 오픈스택을 설치할 수 있습니다. 이때 설정할 네트워크 IP는 시스템 구성도에서 미리 그려본 IP를 설정합니다.

 

1.     /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 열어 다음과 같이 내용을 수정합니다. eth0은 모니터링 및 관리용 IP를 사용할 예정이므로 static IP로 설정합니다.

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

HWADDR=08:00:27:EC:43:E0

TYPE=Ethernet

UUID=84a27f42-ea7d-4f11-a965-2d735f9560e3

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

NETMASK=255.255.255.0

IPADDR=10.10.15.11

GATEWAY=10.10.15.1

USERCTL=no

IPV6INIT=no

PEERDNS=yes

 

2.     다시 /etc/sysconfig/network-scripts/ifcfg-eth1 파일을 열어 다음과 같이 수정합니다.

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

 

3.     IP 설정이 완료되면 다음과 같은 명령어로 네트워크 서비스를 재시작합니다.

# service network restart

Shutting down interface eth0:                              [  OK  ]

Shutting down loopback interface:                          [  OK  ]

Bringing up loopback interface:                            [  OK  ]

Bringing up interface eth0:  Determining if ip address 10.10.15.11 is already in use for device eth0...

                                                           [  OK  ]

Bringing up interface eth1:                                [  OK  ]

 

4.     네트워크 서비스가 정상적으로 설정되었는지 ifconfig 명령으로 확인합니다.

# ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:EC:43:E0 

          inet addr:10.10.15.11  Bcast:10.10.15.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:feec:43e0/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3313 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2028 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:252721 (246.7 KiB)  TX bytes:230736 (225.3 KiB)

 

eth1      Link encap:Ethernet  HWaddr 08:00:27:04:A8:B0 

          inet6 addr: fe80::a00:27ff:fe04:a8b0/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:74 errors:0 dropped:0 overruns:0 frame:0

          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:8211 (8.0 KiB)  TX bytes:1662 (1.6 KiB)

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

 

PackStack 설치를 위한 사전 준비

네트워크 IP 설정를 완료하면 SSH 클라이언트 툴을 이용해서 해당 네트워크 IP로 접속합니다. 앞서 10.10.15.11로 설정했으므로 SSH 접속 시 10.10.15.11로 접속합니다. 접속한 후 PackStack을 설치하기 전에 설치를 위한 사전 준비를 합니다.

 

1.     Yum을 이용해서 시스템을 업데이트합니다.

# yum update –y

Loaded plugins: fastestmirror, security

base                                             | 3.7 kB     00:00    

base/primary_db                                  | 4.4 MB     00:00    

extras                                           | 3.4 kB     00:00    

extras/primary_db                                |  19 kB     00:00    

updates                                          | 3.4 kB     00:00    

updates/primary_db                               | 3.2 MB     00:00    

Setting up Update Process

….

yum-plugin-security.noarch 0:1.1.30-17.el6_5                         

  yum-utils.noarch 0:1.1.30-17.el6_5                                   

 

Complete!

 

2.     시스템 업데이트가 완료되면 stack 계정을 다음과 같이 추가합니다.

# useradd stack

# passwd stack

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

 

3.     생성한 stack 계정으로 sudo 명령을 사용하기 위해 /etc/sudoers 파일에 쓰기 권한을 추가합니다. 그리고 /etc/sudoers 파일을 열어 “stack ALL=(ALL) ALL”을 추가합니다.

# chmod u+w /etc/sudoers

# vi /etc/sudoers

stack ALL=(ALL) ALL

 

4.     Sudoers 파일 수정을 완료하면 아무 때나 수정할 수 없도록 다음과 같이 쓰기 권한을 제거합니다.

# chmod u-w /etc/sudoers

 

5.     이제 stack 계정으로 전환합니다.

# su stack

$

 

PackStack IceHouse 패키지와 PackStack 설치

네트워크 IP 설정과 사전 준비가 끝나면 설치할 버전의 레파지토리 rpm을 받아와야 합니다. 우리는 icehouse를 설치할 예정이므로 icehouse 패키지를 받아오겠습니다. 만일 다른 버전을 설치하고 싶다면 패도라 레파지토리 사이트(http://repos.fedorapeople.org/repos/openstack)에 방문하면 해당 패키지를 받을 수 있습니다.

1. Yum install을 이용해서 icehouse 패키지를 다음과 같이 설치합니다.

$ sudo yum install -y http://rdo.fedorapeople.org/openstack-icehouse/rdo-release-icehouse.rpm

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

 * base: centos.tt.co.kr

 * extras: centos.tt.co.kr

 * updates: centos.tt.co.kr

Setting up Install Process

rdo-release-icehouse-4.noarch.rpm                 |  12 kB     00:00    

Examining /var/tmp/yum-root-TSVoyE/rdo-release-icehouse-4.noarch.rpm: rdo-release-icehouse-3.noarch

Marking /var/tmp/yum-root-TSVoyE/rdo-release-icehouse-4.noarch.rpm to be installed

Resolving Dependencies

--> Running transaction check

---> Package rdo-release.noarch 0:icehouse-4 will be installed

--> Finished Dependency Resolution

 

Dependencies Resolved

 

=========================================================================

 Package      Arch    Version      Repository                       Size

=========================================================================

Installing:

 rdo-release  noarch  icehouse-4   /rdo-release-icehouse-4.noarch  8.7 k

 

Transaction Summary

=========================================================================

Install       1 Package(s)

 

Total size: 8.7 k

Installed size: 8.7 k

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing : rdo-release-icehouse-4.noarch                         1/1

  Verifying  : rdo-release-icehouse-4.noarch                         1/1

 

Installed:

  rdo-release.noarch 0:icehouse-4                                        

 

Complete!

 

2. 패키지 설치가 완료되면 packstack을 설치합니다. Yum install을 이용해서 openstack-packstack을 설치합니다. 다음과 같은 메시지들이 지나가면서 오픈스택 icehouse 버전으로 설치가 되는 것을 확인할 수 있습니다.

$ sudo yum install openstack-packstack

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

 * base: centos.tt.co.kr

 * extras: centos.tt.co.kr

 * updates: centos.tt.co.kr

foreman                                           | 3.6 kB     00:00    

foreman/primary_db                                |  61 kB     00:00    

foreman-plugins                                   | 2.9 kB     00:00    

foreman-plugins/primary_db                        |  23 kB     00:00    

openstack-icehouse                                | 2.9 kB     00:00    

openstack-icehouse/primary_db                     | 732 kB     00:02    

puppetlabs-deps                                   | 2.5 kB     00:00    

puppetlabs-deps/primary_db                        |  23 kB     00:00    

puppetlabs-products                               | 2.5 kB     00:00    

puppetlabs-products/primary_db                    | 110 kB     00:00    

Setting up Install Process

….

Dependency Installed:

  compat-readline5.x86_64 0:5.2-17.1.el6                                

  openstack-packstack-puppet.noarch 0:2014.1.1-0.12.dev1068.el6         

  openstack-puppet-modules.noarch 0:2014.1-12.el6                       

  ruby.x86_64 0:1.8.7.352-13.el6                                        

  ruby-irb.x86_64 0:1.8.7.352-13.el6                                    

  ruby-libs.x86_64 0:1.8.7.352-13.el6                                   

  ruby-rdoc.x86_64 0:1.8.7.352-13.el6                                   

  rubygem-json.x86_64 0:1.5.5-1.el6                                     

  rubygems.noarch 0:1.3.7-5.el6                                          

 

Complete!

 

3. PackStack은 데브스택의 localrc와 같은 환경 설정 파일을 자동으로 생성합니다. 다음 명령어를 실행하면 PackStack을 설치하기 위한 파라메터 템플릿이 자동으로 생성됩니다.

$ packstack --gen-answer-file=my_answers.txt

 ** my_answers.txt 파일을 생성했다면 본 파일의 내용을 확인하고, 아래와 같은 명령어로 설치하면 됩니다. 만일 생성을 하지 않고 바로 실행을 하고자 한다면 4번과 같이 설치합니다.

$ packstack --answer-file=my_answers.txt


4. 서버 한 대에 오픈스택을 설치할 예정이므로 allinone 옵션을 사용해서 다음과 같이 설치합니다. 설치 완료까지는 수십 여분이 소요되므로 모니터링 하면서 잠시 기다립니다.

$ packstack --allinone

Welcome to Installer setup utility

Packstack changed given value  to required value /home/stack/.ssh/id_rsa.pub

 

Installing:

Clean Up                                             [ DONE ]

Setting up ssh keys                                  [ DONE ]

Discovering hosts' details                           [ DONE ]

Adding pre install manifest entries                  [ DONE ]

Adding MySQL manifest entries                        [ DONE ]

Preparing servers                                    [ DONE ]

Installing Dependencies                              [ DONE ]

Copying Puppet modules and manifests                 [ DONE ]

Applying 10.10.15.11_prescript.pp

10.10.15.11_prescript.pp:                            [ DONE ]      

Applying 10.10.15.11_mysql.pp

Applying Puppet manifests                            [ DONE ]

Finalizing                                           [ DONE ]

 

 **** Installation completed successfully ******

 

 

Additional information:

 * A new answerfile was created in: /home/stack/packstack-answers-20140609-134419.txt

 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.

 * File /root/keystonerc_admin has been created on OpenStack client host 10.10.15.11. To use the command line tools you need to source the file.

 * Copy of keystonerc_admin file has been created for non-root user in /home/stack.

 * To access the OpenStack Dashboard browse to http://10.10.15.11/dashboard .

Please, find your login credentials stored in the keystonerc_admin in your home directory.

 * To use Nagios, browse to http://10.10.15.11/nagios username : nagiosadmin, password : 231887a7862e4495

 * Because of the kernel update the host 10.10.15.11 requires reboot.

 * The installation log file is available at: /var/tmp/packstack/20140609-134418-LSGqHh/openstack-setup.log

 * The generated manifests are available at: /var/tmp/packstack/20140609-134418-LSGqHh/manifests



이렇게 해서 오픈스택을 설치해 보았습니다. 다음시간에는 설치된 오픈스택 데쉬보도에 접속을 해 보고, Neutron 네트워크도 설정해 보도록 하겠습니다.


그럼, 다음 시간에 다시 만나요~!!

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함