OpenStack Class2015.02.27 23:39

바로 이어서 다음편 올려봅니다. 지금 안올리면 올릴 시간이 없어서예요~!! ㅠㅠ


이번 포스팅은 Glance와 Nova 설치편입니다.


Glance 설치

인스턴스를 생성하기 위해서는 운영체제가 설치되어 있는 이미지가 필요합니다. 이런 이미지 파일을 관리하는 서비스가 바로 Glance입니다. Glance는 오픈스택 컴퓨트 서비스를 사용하기 위한 주요 서비스에 해당합니다.

 

1.     우선 Openstack-glancepython-glanceclient를 설치합니다.

# yum install openstack-glance python-glanceclient

 

2.     설치가 완료되면 /etc/glance/glance-api.conf/etc/glance/glance-registry.conf 파일에 데이터베이스 정보를 다음과 같이 설정합니다.

# openstack-config --set /etc/glance/glance-api.conf database \
  connection mysql://glance:glancedbpass@10.10.15.11/glance
# openstack-config --set /etc/glance/glance-registry.conf database \
  connection mysql://glance:glancedbpass@10.10.15.11/glance

 

3.     이번에는 /etc/glance/glance-api.conf 파일에 Qpid 정보를 설정합니다.

# openstack-config --set /etc/glance/glance-api.conf DEFAULT \
  rpc_backend qpid
# openstack-config --set /etc/glance/glance-api.conf DEFAULT \
  qpid_hostname 10.10.15.11

 

4.     Mysql에 접속해서 glance 데이터베이스와 glance 계정을 생성하고 접속권한을 설정합니다.

# mysql -u root -p
mysql> CREATE DATABASE glance;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'glancedbpass';
Query OK, 0 rows affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'glancedbpass';
Query OK, 0 rows affected (0.00 sec)


5.     이번에는 다음과 같은 명령어로 Glance 테이블을 생성합니다.

# su -s /bin/sh -c "glance-manage db_sync" glance

 

6.     Keystoneglance 계정을 생성하고 서비스 테넌트에 생성한 glance 계정을 추가합니다.

# keystone user-create --name=glance --pass=glancepass \
   --email=glance@example.com
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |        glance@example.com        |
| enabled  |               True               |
|    id    | f56fee77b3944019ab979649360e2464 |
|   name   |              glance              |
| username |              glance              |
+----------+----------------------------------+
# keystone user-role-add --user=glance --tenant=service --role=admin

 

7.     Keystone 서비스 생성이 완료되면 생성한 glance 정보를 openstack-config 명령어를 이용해서 환경설정 파일에 적용합니다.

# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  auth_uri http://10.10.15.11:5000
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  auth_host 10.10.15.11
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  auth_port 35357
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  auth_protocol http
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  admin_tenant_name service
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  admin_user glance
# openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \
  admin_password glancepass
# openstack-config --set /etc/glance/glance-api.conf paste_deploy \
  flavor keystone
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  auth_uri http://10.10.15.11:5000
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  auth_host 10.10.15.11
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  auth_port 35357
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  auth_protocol http
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  admin_tenant_name service
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  admin_user glance
# openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken \
  admin_password glancepass
# openstack-config --set /etc/glance/glance-registry.conf paste_deploy \
  flavor keystone

 

8.     사용자와 다른 서비스들이 접속할 수 있도록 Keystone 서비스와 endpoint를 생성합니다.

# keystone service-create --name=glance --type=image \
--description="OpenStack Image Service"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |     OpenStack Image Service      |
|   enabled   |               True               |
|      id     | b87d2c7a58474da1a5a0a6100d074893 |
|     name    |              glance              |
|     type    |              image               |
+-------------+----------------------------------+
# keystone endpoint-create \
  --service-id=b87d2c7a58474da1a5a0a6100d074893 \
  --publicurl=http://10.10.15.11:9292 \
  --internalurl=http://10.10.15.11:9292 \
  --adminurl=http://10.10.15.11:9292
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
|   adminurl  |     http://10.10.15.11:9292      |
|      id     | 8abd3e5eb80b4c0cadf7f8568236d991 |
| internalurl |     http://10.10.15.11:9292      |
|  publicurl  |     http://10.10.15.11:9292      |
|    region   |            regionOne             |
|  service_id | b87d2c7a58474da1a5a0a6100d074893 |
+-------------+----------------------------------+

 

9.     Keystone 서비스와 endpoint 생성을 완료했으면 glance-apiglance-registry 서비스를 재시작합니다. 그리고 부팅 시 자동으로 서비스가 시작될 수 있도록 설정합니다.

# service openstack-glance-api start
Starting openstack-glance-api:                             [  OK  ]
# service openstack-glance-registry start
Starting openstack-glance-registry:                        [  OK  ]
# chkconfig openstack-glance-api on
# chkconfig openstack-glance-registry on

 

10.  /tmp/images 디렉터리를 하나 생성하고 해당 디렉터리에 들어간 후 wget을 이용해서 가장 가벼운 cirros 이미지를 하나 내려 받습니다.

# mkdir /tmp/images
# cd /tmp/images/
# wget http://cdn.download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img

 

11.  내려 받은 이미지는 glance 명령어를 이용해서 다음과 같이 등록합니다.

# glance image-create --name "cirros-0.3.2-x86_64" --disk-format qcow2 \
--container-format bare --is-public True --progress < cirros-0.3.2-x86_64-disk.img
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 64d7c1cd2b6f60c92c14662941cb7913     |
| container_format | bare                                 |
| created_at       | 2014-06-15T19:08:14                  |
| deleted          | False                                |
| deleted_at       | None                                 |
| disk_format      | qcow2                                |
| id               | 06be01da-151d-4681-bdc9-6127a3590972 |
| is_public        | True                                 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros-0.3.2-x86_64                  |
| owner            | dbd8df87e5c34536844d915b555061b6     |
| protected        | False                                |
| size             | 13167616                             |
| status           | active                               |
| updated_at       | 2014-06-15T19:08:15                  |
| virtual_size     | None                                 |
+------------------+--------------------------------------+

 

12.  이미지 목록도 확인해 봅니다.

# glance image-list
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| ID                                   | Name                | Disk Format | Container Format | Size     | Status |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+
| 06be01da-151d-4681-bdc9-6127a3590972 | cirros-0.3.2-x86_64 | qcow2       | bare             | 13167616 | active |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+

 

Nova Management 설치

가상 인스턴스를 생성하고 부팅시키며, 필요 없을 경우 삭제하는 일은 Nova에서 담당합니다. Nova는 사용자에게서 전달받은 인스턴스 관련 명령어들을 하이퍼바이저로 전달하고, 하이퍼바이저는 전달받은 명령어 대로 인스턴스를 생성 또는 삭제합니다. 그럼 지금부터 오픈스택의 핵심 기능인 Nova를 설치해 보겠습니다.

 

1.     우선 yum install을 이용해서 다음과 같이 Nova 관련 서비스들을 설치합니다.

# yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler \
  python-novaclient

 

2.     설치가 완료되면 openstack-config를 이용해서 데이터베이스 정보를 설정합니다.

# openstack-config --set /etc/nova/nova.conf \
  database connection mysql://nova:novadbpass@10.10.15.11/nova

 

3.     이번에는 다음과 같이 Qpid 정보를 설정합니다.

# openstack-config --set /etc/nova/nova.conf \
  DEFAULT rpc_backend qpid
# openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname 10.10.15.11

 

4.     VNC 콘솔 접속을 위한 VNC Server 정보를 다음과 같이 설정합니다.

# openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.10.15.11
# openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 10.10.15.11
# openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 10.10.15.11

 

5.     Mysql을 접속해서 nova 데이터베이스와 계정을 생성하고 접속권한을 설정합니다.

# mysql -u root -p
mysql> CREATE DATABASE nova;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'novadbpass';
Query OK, 0 rows affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY 'novadbpass';
Query OK, 0 rows affected (0.00 sec)

 

6.     Nova 테이블 생성을 위하여 nova-manage db sync 명령을 다음과 같이 실행합니다.

# su -s /bin/sh -c "nova-manage db sync" nova

 

7.     테이블 생성이 완료되면 인증을 위한 Keystonenova 계정을 생성해야 합니다. Nova 계정을 생성하고 서비스 테넌트에 생성한 nova를 추가합니다.

# keystone user-create --name=nova --pass=novapass --email=nova@example.com
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |         nova@example.com         |
| enabled  |               True               |
|    id    | fcad2a86ef664e4ca0bd4188f68c9cee |
|   name   |               nova               |
| username |               nova               |
+----------+----------------------------------+
# keystone user-role-add --user=nova --tenant=service --role=admin

 

 

8.     Openstack-config를 이용해서 nova.confkeystone 정보를 설정합니다.

# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://10.10.15.11:5000
# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host 10.10.15.11
# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http
# openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357
# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova
# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service
# openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password novapass

 

9.     이번에는 사용자와 다른 서비스들이 접속할 수 있도록 keystone 서비스와 endpoint를 생성합니다.

# keystone service-create --name=nova --type=compute \
--description="OpenStack Compute"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |        OpenStack Compute         |
|   enabled   |               True               |
|      id     | 867c0b68aac94cf8b6ef69f528abc651 |
|     name    |               nova               |
|     type    |             compute              |
+-------------+----------------------------------+
# keystone endpoint-create \
  --service-id=867c0b68aac94cf8b6ef69f528abc651 \
  --publicurl=http://10.10.15.11:8774/v2/%\(tenant_id\)s \
  --internalurl=http://10.10.15.11:8774/v2/%\(tenant_id\)s \
  --adminurl=http://10.10.15.11:8774/v2/%\(tenant_id\)s
+-------------+------------------------------------------+
|   Property  |                  Value                   |
+-------------+------------------------------------------+
|   adminurl  | http://10.10.15.11:8774/v2/%(tenant_id)s |
|      id     |     ec40706eb0ee49d688897a4c6978e37b     |
| internalurl | http://10.10.15.11:8774/v2/%(tenant_id)s |
|  publicurl  | http://10.10.15.11:8774/v2/%(tenant_id)s |
|    region   |                regionOne                 |
|  service_id |     867c0b68aac94cf8b6ef69f528abc651     |
+-------------+------------------------------------------+

 

10.  모든 설정이 완료되면 nova 관련 서비스들을 모두 재시작합니다. 그리고 부팅 시 자동으로 서비스가 실행될 수 있도록 설정합니다.

# service openstack-nova-api start
Starting openstack-nova-api:                               [  OK  ]
# service openstack-nova-cert start
Starting openstack-nova-cert:                              [  OK  ]
# service openstack-nova-consoleauth start
Starting openstack-nova-consoleauth:                       [  OK  ]
# service openstack-nova-scheduler start
Starting openstack-nova-scheduler:                         [  OK  ]
# service openstack-nova-conductor start
Starting openstack-nova-conductor:                         [  OK  ]
# service openstack-nova-novncproxy start
Starting openstack-nova-novncproxy:                        [  OK  ]
# chkconfig openstack-nova-api on
# chkconfig openstack-nova-cert on
# chkconfig openstack-nova-consoleauth on
# chkconfig openstack-nova-scheduler on
# chkconfig openstack-nova-conductor on
# chkconfig openstack-nova-novncproxy on

 

11.  Nova가 정상적으로 설치되었는지 nova 명령어로 이미지 목록을 확인해 봅니다.

# nova image-list
+--------------------------------------+---------------------+--------+--------+
| ID                                   | Name                | Status | Server |
+--------------------------------------+---------------------+--------+--------+
| 06be01da-151d-4681-bdc9-6127a3590972 | cirros-0.3.2-x86_64 | ACTIVE |        |
+--------------------------------------+---------------------+--------+--------+

 


 

Nova-network 설정

오픈스택에서 네트워킹은 기존 네트워킹 방식인 Nova-network를 사용하는 방법과 Neutron을 설치해서 SDN(Software Defined Network)을 사용하는 방법 두 가지가 있습니다. 여기서는 기존 네트워킹 방식인 Nova-network를 이용해서 네트워크를 설정해 보겠습니다.

 

1.     Openstack-config 명령어를 이용해서 /etc/nova/nova.conf에 기존 nova-network API를 사용하겠다고 다음과 같이 설정합니다.

# openstack-config --set /etc/nova/nova.conf DEFAULT \
  network_api_class nova.network.api.API
# openstack-config --set /etc/nova/nova.conf DEFAULT \
  security_group_api nova

 

2.     설정이 끝나면 nova 서비스를 재시작합니다.

# service openstack-nova-api restart
Stopping openstack-nova-api:                               [  OK  ]
Starting openstack-nova-api:                               [  OK  ]
# service openstack-nova-scheduler restart
Stopping openstack-nova-scheduler:                         [  OK  ]
Starting openstack-nova-scheduler:                         [  OK  ]
# service openstack-nova-conductor restart
Stopping openstack-nova-conductor:                         [  OK  ]
Starting openstack-nova-conductor:                         [  OK  ]



이렇게 해서 Glance와 Nova 설치 포스팅을 모두 마쳤습니다. 다음 포스팅에서는 Horizon 설치와 Cinder 설치를 포스팅하도록 하겠습니다.  

Posted by 나리 짱!!! naleejang