본문 바로가기

Cloud Native/Install_OpenStack

OpenStack Kilo Install - Image Service

OpenStack glance Install

OpenStack에서 이미지 서비스를 담당하는 glance를 설치한다.


OpenStack의 Infrastructure-as-a-Service(IaaS)로 이야기 되는 glance는 OpenStack의 VM에 설치될 OS의 image를 관리한다.



OpenStack glance install



1. glance install을 위한 서비스 등록


  • Control Node
    • Database 사용자 생성
$ mysql -u root -p
      • DB 사용자 등록 (glance)
MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> exit
      • OpenStack CLI로 OpenStack 서비스를 생성하기 위하여 admin 계정 활성화
$ source admin-openrc.sh
    • OpenStack glance 등록
      • glance 사용자 등록
      • 여기서 설정한 Password는 glance-api.conf/glance-registry.conf 등 여러 파일에 사용하여야 함 (기억할 것)
$ openstack user create --password-prompt glance

[결과]
User Password:
Repeat User Password:
+----------+--------------------------------------------+
| Field       | Value                                            |
+----------+--------------------------------------------+
| email      | None                                            |
| enabled   | True                                             |
| id           | 76409d2d86a943ae81bf3327163a7d23 |
| name      | glance                                           |
| username | glance                                           |
+----------+---------------------------------------------+
      • admin 사용자가 glance 관련 관리를 할 수 있도록 role 설정
$ openstack role add --project service --user glance admin

[결과]
+-------+------------------------------------------+
| Field    | Value                                         |
+-------+------------------------------------------+
| id       | 9c6551f223cc492392c51c2e454756e4 |
| name  | admin                                          |
+-------+------------------------------------------+
      • glance 서비스 엔티티 등록
$ openstack service create --name glance --description "OpenStack Image service" image

[결과]
+-------------+-------------------------------------------+
| Field         | Value                                            |
+-------------+-------------------------------------------+
| description | OpenStack Image service                  |
| enabled     | True                                             |
| id             | e0896ae5795346e5a0162bde2de81738 |
| name        | glance                                           |
| type          | image                                           |
+-------------+-------------------------------------------+
    • glance endpoint 등록
$ openstack endpoint create --publicurl http://controlnode01:9292 --internalurl http://controlnode01:9292 --adminurl http://controlnode01:9292 --region RegionOne image

[결과]
+--------------+---------------------------------------------+
| Field            | Value                                            |
+--------------+---------------------------------------------+
| adminurl       | http://controlnode01:9292                 |
| id                | 5f4755f428c643b4a26584652eee7780  |
| internalurl     | http://controlnode01:9292                 |
| publicurl       | http://controlnode01:9292                 |
| region          | RegionOne                                     |
| service_id      | e0896ae5795346e5a0162bde2de81738 |
| service_name | glance                                           |
| service_type   | image                                           |
+--------------+---------------------------------------------+


2. glance install

  • Control Node
    • glance 패키지 다운로드
$ sudo apt-get install glance python-glanceclient
    • glance config 파일 수정
      • /etc/glance/glance-api.conf
$ sudo vi /etc/glance/glance-api.conf

[파일 내용 수정 및 추가]------------------------------------------------------------------

[database]
...
connection = mysql://glance:GLANCE_DBPASS@controlnode01/glance

[keystone_authtoken]
...
auth_uri = http://controlnode01:5000
auth_url = http://controlnode01:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = <glance 사용자 등록에 설정한 pass>

[paste_deploy]
...
flavor = keystone

[glance_store]
...
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

[DEFAULT]
...
notification_driver = noop
verbose = True
------------------------------------------------------------------------------------
      • /etc/glance/glance-registry.conf
$ sudo vi /etc/glance/glance-registry.conf

[파일 내용 수정 및 추가]---------------------------------------------------------

[database]
...
connection = mysql://glance:GLANCE_DBPASS@controlnode01/glance

[keystone_authtoken]
...
auth_uri = http://controlnode01:5000
auth_url = http://controlnode01:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = <glance 사용자 등록에 설정한 pass>

[paste_deploy]
...
flavor = keystone

[DEFAULT]
...
notification_driver = noop
verbose = True
---------------------------------------------------------------------------------------
    • glance config 수정 내용 sync
$ sudo su

$ su -s /bin/sh -c "glance-manage db_sync" glance
    • glance 서비스 재실행
$ sudo service glance-registry restart
$ sudo service glance-api restart

$ sudo rm -f /var/lib/glance/glance.sqlite


3. glance 동작 확인 및 light weight OS 이미지 설정

glance는 서두에 이야기 한 것 처럼 OS 이미지를 관리하는 서비스이다.

하이퍼바이저 위에 OS가 설치되는 서비스에서 OS 종류가 다양하여야 하는 것은 당연한 일이다.

OpenStack에서는 CirrOS라고 하는 매우 가벼운 테스트용 OS 이미지를 제공하고 있다.

이를 활용하여 VM에 CirrOS를 설치하게 되는데 VM간의 네트워크 등을 확인하는 정도로 사용하면 되겠다.

  • Control Node
    • 클라이언트 환경 설정 (API 버전 2)
$ echo "export OS_IMAGE_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
    • OpenStack CLI를 활용하기 위한 admin 계정 활성
$ source admin-openrc.sh
    • 이미지가 저장될 디렉토리 생성
$ mkdir /tmp/images
    • CirrOS 이미지 다운로드
$ wget -P /tmp/images http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
    • glance 서비스에 사용할 CirrOS 이미지 업로드
$ glance image-create --name "cirros-0.3.4-x86_64" --file /tmp/images/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public --progress

[결과]
[=============================>] 100%
+-------------------+---------------------------------------------+
| Property            | Value                                              |
+-------------------+---------------------------------------------+
| checksum          | ee1eca47dc88f4879d8a229cc70a07c6     |
| container_format | bare                                               |
| created_at         | 2015-10-01T00:04:55Z                         |
| disk_format        | qcow2                                             |
| id                    | b6810506-c9fe-48ba-b4df-5efad5e7c2b3 |
| min_disk            | 0                                                    |
| min_ram            | 0                                                    |
| name                | cirros-0.3.4-x86_64                             |
| owner               | 0d1c68156ad84d63a6b7a19e92b46ddf   |
| protected           | False                                              |
| size                   | 13287936                                       |
| status                | active                                             |
| tags                  | []                                                   |
| updated_at         | 2015-10-01T00:04:55Z                        |
| virtual_size          | None                                             |
| visibility             | public                                             |
+-------------------+---------------------------------------------+
    • glance 이미지 업로드 정상 동작 확인
$ glance image-list

[결과]
+----------------------------------------------+---------------------+
| ID                                                     | Name                |
+----------------------------------------------+---------------------+
| b6810506-c9fe-48ba-b4df-5efad5e7c2b3 | cirros-0.3.4-x86_64 |
+----------------------------------------------+---------------------+