OpenStack2012.10.23 14:51

요즘 Openstack을 설치하고, 운영하면서 Glance라는 녀석과 매일 싸우고 있다. 그러면서, 자연스럽게 Glance 명령어 옵션에는 무엇이 있을까? 라는 의문을 갖게 되고, 관련된 문서를 찾아보고 하면서 알게된 Glance 명령어 옵션들을 정리해 보았다. Openstack을 운영하거나 스터디하는 사람들에게 도움이 되길 바라며서 블로그에 자료를 공유한다. 


glance --help를 입력하면 아래와 같은 glance 명령어 옵션을 확인할 수 있다. 나는 아래에 있는 이 명령어 옵션들에 대한 사용법은 어떤 것이고, 더 입력해야할 파라메터는 어떤것들이 있는지, 그리고, 사용 예제까지 아주 꼼꼼하게 분석해 보았다.


** Glance 명령어 옵션

add                 DEPRECATED! Use image-create instead.

    clear               DEPRECATED!

    delete              DEPRECATED! Use image-delete instead.

    details             DEPRECATED! Use image-list instead.

    image-create        Create a new image.

    image-delete        Delete a specific image.

    image-download      Download a specific image.

    image-list          List images you can access.

    image-members       DEPRECATED! Use member-list instead.

    image-show          Describe a specific image.

    image-update        Update a specific image.

    index               DEPRECATED! Use image-list instead.

    member-add          DEPRECATED! Use member-create instead.

    member-create       Share a specific image with a tenant.

    member-delete       Remove a shared image from a tenant.

    member-images       DEPRECATED! Use member-list instead.

    member-list         Describe sharing permissions by image or tenant.

    members-replace     DEPRECATED!

    show                DEPRECATED! Use image-show instead.

    update              DEPRECATED! Use image-update instead.

    help                Display help about this program or one of its

                        subcommands.

 

Add : image-create와 같은 명령어로 Glance 저장공간으로 이미지를 추가한다.

-      공식

$ glance add name=”{image name}” is_public=true container_format={container format} disk_format={disk format} < {image file name}

 

-      파라메터 설명

{image name}

사용자가 식별하기 쉬운 OS Image명을 입력한다.

{container format}

Container format에는 ari, ami, aki, bare가 있으며, ari RAMDISK, ami KERNEL, aki RamDisk Kernel 을 가지고 있는 image 를 올릴 때 사용한다. 대표적인 Linux OS cirros가 있다. kernel이나 ramdisk가 없는 일반 img 파일은 모두 bare로 입력하면 된다.

{disk format}

Disk format역시 ari, ami, aki가 있으며, 이외에 확장자에 따라 img파일은 raw, qcow2 파일은 qcow2 로 표현한다.

{image file name}

업로드 할 OS Image 명을 입력하면 된다. 단 업로드 할 이미지는 현재 실행디렉토리에 있어야만 한다. 만일 다른 디렉토리에 이미지가 있다면 해당 경로를 전부 써 주어야 한다.

 

-      예제

$ glance add name=”Ubuntu 12.04 LTS” is_public=true container_format=bare  disk_format=raw < ubuntu-12.04-server-cloudimg-amd64-disk1.img

Added new image with ID : ca5b58ac-e97c-437c-b06e-f195159ab475


 

Clear : glance 저장공간에 업로드 되어 있는 모든 image를 삭제한다.

-      공식

$ glance clear

Deleting image 0449eee2-8081-48a8-a7b3-ae679dee1b57 “cirros-0.3.0-x86_64-uec-ramdisk” … done

Completed in 0.0328 sec.

 

 

Delete : 특정 이미지를 삭제할 경우 delete 명령을 사용하는데 image-delete와 같다.

-      공식

$ glance delete {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.

 

-      예제

$ glance delete ca5b58ac-e97c-437c-b06e-f195159ab475

Deleted image ca5b58ac-e97c-437c-b06e-f195159ab475

 

 

Details : glance 저장공간에 업로드 되어 있는 모든 image의 상세정보를 확인할 수 있다.

-      공식 및 예제

$ glance details

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

URI: http://211.111.174.182:9292/v1/images/ca5b58ac-e97c-437c-b06e-f195159ab475

Id: ca5b58ac-e97c-437c-b06e-f195159ab475

Public: Yes

Protected: No

Name: Ubuntu 12.04 LTS

Status: active

Size: 226426880

Disk format: qcow2

Container format: ovf

Minimum Ram Required (MB): 0

Minimum Disk Required (GB): 0

Owner: 8855a00a79414352bc033697e6ccd2e8

Created at: 2012-10-09T08:34:05

Deleted at: None

Updated at: 2012-10-09T08:34:07

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

 


 

Image-create : glance 저장공간으로 이미지를 추가한다.

-      공식

$ glance image-create –name ”{image name}” --public --container_format {container format}  --disk_format {disk format} < {image file name}

 

-      파라메터 설명 : 파라메터는 add 명령어의 파라메터와 같으므로 생략~!

 

-      예제

$ glance image-create –name ”Ubuntu 12.04 LST” --public --container_format bare --disk_format raw < ubuntu-12.04-server-cloudimg-amd64-disk1.img

+------------------+--------------------------------------+

| Property         | Value                                |

+------------------+--------------------------------------+

| checksum         | 44e30efc9e9450b39eea0a42ecd44c7a     |

| container_format | bare                                 |

| created_at       | 2012-09-27T04:59:49                  |

| deleted          | False                                |

| deleted_at       | None                                 |

| disk_format      | raw                                  |

| id               | c01e2c2e-5d4d-4a03-a76e-ada8622fa414 |

| is_public        | True                                 |

| min_disk         | 0                                    |

| min_ram          | 0                                    |

| name             | Ubuntu 12.04 LTS                     |

| owner            | 4aafa99227af447d9041ff38a3c1e687     |

| protected        | False                                |

| size             | 219340260                            |

| status           | active                               |

| updated_at       | 2012-09-27T04:59:51                  |

+------------------+--------------------------------------+

 

 

Image-delete : 위에서 살펴본 delete 명령어와 같이 특정 이미지를 삭제한다.

-      예제

$ glance image-delete ca5b58ac-e97c-437c-b06e-f195159ab475

Deleted image ca5b58ac-e97c-437c-b06e-f195159ab475

 

 

Image-download : Help에는 특정이미지 파일을 로컬 폴더로 다운로드 받는다고 나오나 아직은 제대로 구현이 되어 있지 않으므로 실행하지 않길 바란다.

-      공식

$ glance image-download {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.

 

 

Image-list : glance 저장공간에 업로드 되어 있는 모든 이미지 목록을 보여준다.

-      공식 및 예제

$ glance image-list

+--------------------------------------+---------------------------------+-------------+------------------+-----------++

| ID                                   | Name                            | Disk Format | Container Format | Size      ||

+--------------------------------------+---------------------------------+-------------+------------------+-----------++

| 0449eee2-8081-48a8-a7b3-ae679dee1b57 | cirros-0.3.0-x86_64-uec-ramdisk | ari         | ari              | 2254249   ||

| a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038 | cirros-0.3.0-x86_64-uec         | ami         | ami              | 25165824  ||

| c6c42034-370a-488a-a08d-83ef1713b5f4 | cirros-0.3.0-x86_64-uec-kernel  | aki         | aki              | 4731440   ||

| ca5b58ac-e97c-437c-b06e-f195159ab475 | Ubuntu 12.04 LTS                | qcow2       | ovf              | 226426880 ||

+--------------------------------------+---------------------------------+-------------+------------------+-----------++

 

 

Image-members : 특정 이미지를 쉐어한 User가 누구인지를 확인할 수 있다.

-      공식 

$ glance image-members {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.


       -      예제

$ glance image-members ca5b58ac-e97c-437c-b06e-f195159ab475

admin

nalee



Image-show : 특정 이미지의 상세정보를 확인할 수 있다.

-      공식

$ glance image-show {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.

 

-      예제

$ glance image-show a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038

+-----------------------+--------------------------------------+

| Property              | Value                                |

+-----------------------+--------------------------------------+

| Property 'kernel_id'  | c6c42034-370a-488a-a08d-83ef1713b5f4 |

| Property 'ramdisk_id' | 0449eee2-8081-48a8-a7b3-ae679dee1b57 |

| checksum              | 2f81976cae15c16ef0010c51e3a6c163     |

| container_format      | ami                                  |

| created_at            | 2012-10-09T08:23:22                  |

| deleted               | False                                |

| disk_format           | ami                                  |

| id                    | a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038 |

| is_public             | True                                 |

| min_disk              | 0                                    |

| min_ram               | 0                                    |

| name                  | cirros-0.3.0-x86_64-uec              |

| owner                 | 8855a00a79414352bc033697e6ccd2e8     |

| protected             | False                                |

| size                  | 25165824                             |

| status                | active                               |

| updated_at            | 2012-10-09T08:23:23                  |

+-----------------------+--------------------------------------+

 

 

Image-update : 이 명령어를 이용하면 특정 이미지의 정보나 이미지 파일을 다른 파일로 변경할 수 있다.

-      공식

$ glance image-update [--name <NAME>] [--disk-format <CONTAINER_FORMAT>]

                           [--container-format <DISK_FORMAT>]

                           [--owner <TENANT_ID>] [--size <SIZE>]

                           [--min-disk <DISK_GB>] [--min-ram <DISK_RAM>]

                           [--location <IMAGE_URL>] [--file <FILE>]

                           [--checksum <CHECKSUM>] [--copy-from <IMAGE_URL>]

                           [--is-public IS_PUBLIC]

                           [--is-protected IS_PROTECTED]

                           [--property <key=value>] [--purge-props]

                           <IMAGE_ID>

 

-      파라메터 설명

[--name <NAME>]

사용자가 식별하기 쉬운 OS Image명을 입력한다.

[--container-format <CONTAINER_FORMAT>]

Container format에는 ari, ami, aki, bare가 있으며, ari RAMDISK, ami KERNEL, aki RamDisk Kernel 을 가지고 있는 image 를 올릴 때 사용한다. 대표적인 Linux OS cirros가 있다. kernel이나 ramdisk가 없는 일반 img 파일은 모두 bare로 입력하면 된다.

[--container-format <DISK_FORMAT>]

Disk format역시 ari, ami, aki가 있으며, 이외에 확장자에 따라 img파일은 raw, qcow2 파일은 qcow2 로 표현한다.

[--owner <TENANT_ID>]

해당 이미지의 member id를 입력한다. 하지만 대체적으로는 생략한다.

[--size <SIZE>]

이미지 사이즈 정보로 생략한다.

[--min-disk <DISK_GB>]

최소사양의 DISK 사이즈를 GB단위로 입력한다.

[--min-ram <DISK_RAM>]

최소사양의 RAM 사이즈를 입력한다.

[--location <IMAGE_URL>]

업로드하고자 하는 원격이미지 웹 URL을 입력한다.

[--file <FILE>]

업로드하고자 하는 파일이 로컬에 있을 경우 해당 이미지 파일명을 입력한다.

[--checksum <CHECKSUM>]

Checksum을 입력하는데 대체적으로 생략한다.

[--copy-from <IMAGE_URL>]

Location과 같이 원격 이미지 웹 URL을 입력한다.

[--is-public IS_PUBLIC]

이미지를 공개한다는 뜻이다.

[--is-protected IS_PROTECTED]

같은 tenant member에게만 이미지를 공개한다는 뜻이다.

[--property <key=value>]

RamDisk 파일과 Kernel 파일이 있을 경우 속성으로 그 값을 입력한다.

ex) --property kernel_id=7edc921d-53d9-4fa2-9a9d-31cad37de01f

[--purge-props]

다른 속성값이 있으면 계속 속성을 입력한다.

<IMAGE_ID>

변경하고자 하는 image id를 입력한다.

 

Index : index 명령어 역시 image-list와 같은 역할을 하며 다음과 같은 정보를 확인할 수 있다.

$ glance index

ID                                   Name                           Disk Format          Container Format     Size         

------------------------------------ ------------------------------ -------------------- -------------------- --------------

ca5b58ac-e97c-437c-b06e-f195159ab475 Ubuntu 12.04 LTS               qcow2                ovf                       226426880

a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038 cirros-0.3.0-x86_64-uec        ami                  ami                        25165824

0449eee2-8081-48a8-a7b3-ae679dee1b57 cirros-0.3.0-x86_64-uec-ramdis ari                  ari                         2254249

c6c42034-370a-488a-a08d-83ef1713b5f4 cirros-0.3.0-x86_64-uec-kernel aki                  aki                         4731440

 

 

Member-add : member를 추가시키는 명령어로 member-create 와 같은 명령어이다.

-      공식

$ glance member-add [--can-share] image_id member_id

 

-      파라메터 설명

image_id

멤버를 추가하고자 하는 이미지 id를 입력한다.

member_id

추가하고자 하는 tenant 명을 입력한다.

[--can-share]

해당 옵션을 넣은 사용자는 이미지를 쉐어할 수 있다.

 

-      예제

$ glance member-add ca5b58ac-e97c-437c-b06e-f195159ab475 nalee

 

 

Member-create : member-add와 같은 명령어이다.

-      공식

$ glance member-create [--can-share] <IMAGE_ID> <TENANT_ID>

 

-      파라메터 설명

<IMAGE_ID>

멤버를 추가하고자 하는 이미지 id를 입력한다.

<TENANT_ID>

추가하고자 하는 tenant 명을 입력한다.

[--can-share]

해당 옵션을 넣은 사용자는 이미지를 쉐어할 수 있다.

 

-      예제

$ glance member-create ca5b58ac-e97c-437c-b06e-f195159ab475 admin

 

Member-delete : 특정 이미지의 특정 사용자를 삭제할 때 사용하는 명령어이다.

-      공식

$ glance member-delete <IMAGE_ID> <TENANT_ID>

 

-      파라메터 설명

<IMAGE_ID>

삭제하고자 하는 이미지 id를 입력한다.

<TENANT_ID>

삭제하고자 하는 tenant 명을 입력한다.

 

-      예제

$ glance member-images <member-id>

 

 

Member-images : 특정 사용자만 사용할 수 있는 이미지 목록을 보여준다.

-      공식

$ glance member-images <member-id>

 

-      파라메터 설명

<member_id>

검색하고자 하는 tenant 명을 입력한다.

 

-      예제

$ glance member-images admin

ca5b58ac-e97c-437c-b06e-f195159ab475

 

 

Member-list : 특정 이미지나 특정 사용자의 이미지 목록을 보여준다.

-      공식

$ glance member-list -–image-id <IMAGE_ID> or -–member-id <TENANT_ID>

 

-      파라메터 설명

<IMAGE_ID>

검색하고자 하는 이미지 id를 입력한다.

<TENANT_ID>

검색하고자 하는 tenant 명을 입력한다.

 

-      예제

$ glance member-list --image-id ca5b58ac-e97c-437c-b06e-f195159ab475

+--------------------------------------+-----------+-----------+

| Image ID                             | Member ID | Can Share |

+--------------------------------------+-----------+-----------+

| ca5b58ac-e97c-437c-b06e-f195159ab475 | admin     |           |

| ca5b58ac-e97c-437c-b06e-f195159ab475 | nalee     |           |

+--------------------------------------+-----------+-----------+


    

Members-replace : 본 명령어를 통해 해당 이미지의 사용자 정보 중 이미지 쉐어 여부를 수정할 수 있다고 Help 명령어에는 나오나 직접 실행을 해 보면 이 명령어는 사라지고 없음을 바로 확인할 수 있다.

 

 

Show : 특정 이미지의 상세 정보를 확인할 수 있는 명령어로 image-show와 같은 역할을 한다.

-      공식

$ glance show <IMAGE_ID>

 

-      예제

$ glance show ca5b58ac-e97c-437c-b06e-f195159ab475

URI: http://211.111.174.182:9292/v1/images/ca5b58ac-e97c-437c-b06e-f195159ab475

Id: ca5b58ac-e97c-437c-b06e-f195159ab475

Public: No

Protected: No

Name: Ubuntu 12.04 LTS

Status: active

Size: 226426880

Disk format: qcow2

Container format: ovf

Minimum Ram Required (MB): 0

Minimum Disk Required (GB): 0

Owner: 8855a00a79414352bc033697e6ccd2e8

Created at: 2012-10-09T08:34:05

Updated at: 2012-10-23T02:42:29

 

 

Update : image-update와 같은 명령어로 특정 이미지의 메타정보나 이미지 파일을 변경할 때 사용하는 명령어이다.

-      공식

$ glance update <IMAGE_ID>

 

-      예제

$ glance -v update ca5b58ac-e97c-437c-b06e-f195159ab475 is_public=true

Updated image ca5b58ac-e97c-437c-b06e-f195159ab475

Updated image metadata for image ca5b58ac-e97c-437c-b06e-f195159ab475:

URI: http://211.111.174.182:9292/v1/images/ca5b58ac-e97c-437c-b06e-f195159ab475

Id: ca5b58ac-e97c-437c-b06e-f195159ab475

Public: Yes

Protected: No

Name: Ubuntu 12.04 LTS

Status: active

Size: 226426880

Disk format: qcow2

Container format: ovf

Minimum Ram Required (MB): 0

Minimum Disk Required (GB): 0

Owner: 8855a00a79414352bc033697e6ccd2e8

Created at: 2012-10-09T08:34:05

Deleted at: None

Updated at: 2012-10-23T05:46:53

 


Help : 명령어 옵션의 상세 설명 또는 들어가야 할 파라메터 정보등을 알려준다.

-      예제

$ glance help image-create

usage: glance image-create [--id <IMAGE_ID>] [--name <NAME>]

                           [--disk-format <DISK_FORMAT>]

                           [--container-format <CONTAINER_FORMAT>]

                           [--owner <TENANT_ID>] [--size <SIZE>]

                           [--min-disk <DISK_GB>] [--min-ram <DISK_RAM>]

                           [--location <IMAGE_URL>] [--file <FILE>]

                           [--checksum <CHECKSUM>] [--copy-from <IMAGE_URL>]

                           [--is-public IS_PUBLIC]

                           [--is-protected IS_PROTECTED]

                           [--property <key=value>]

 

Create a new image.

 

Optional arguments:

  --id <IMAGE_ID>       ID of image to reserve.

  --name <NAME>         Name of image.

  --disk-format <DISK_FORMAT>

                        Disk format of image.

  --container-format <CONTAINER_FORMAT>

                        Container format of image.

  --owner <TENANT_ID>   Tenant who should own image.

  --size <SIZE>         Size of image data (in bytes). Only used with '--

                        location' and '--copy_from'.

  --min-disk <DISK_GB>  Minimum size of disk needed to boot image (in

                        gigabytes).

  --min-ram <DISK_RAM>  Minimum amount of ram needed to boot image (in

                        megabytes).

  --location <IMAGE_URL>

                        URL where the data for this image already resides. For

                        example, if the image data is stored in the filesystem

                        local to the glance server at

                        '/usr/share/image.tar.gz', you would specify

                        'file:///usr/share/image.tar.gz'.

  --file <FILE>         Local file that contains disk image to be uploaded

                        during creation. Alternatively, images can be passed

                        to the client via stdin.

  --checksum <CHECKSUM>

                        Hash of image data used Glance can use for

                        verification.

  --copy-from <IMAGE_URL>

                        Similar to '--location' in usage, but this indicates

                        that the Glance server should immediately copy the

                        data and store it in its configured image store.

  --is-public IS_PUBLIC

                        Make image accessible to the public.

  --is-protected IS_PROTECTED

                        Prevent image from being deleted.

  --property <key=value>

                        Arbitrary property to associate with image. May be

                        used multiple times.

 

 

 

** Glance Help의 명령어를 보면 DEPRECATED! 라고 써있는 명령어 옵션을 볼 수 있을 것이다.이 말 뜻은 곧 폐지될 예정이므로, 그 옆에 나와있는 명령어 옵션을 쓰길 권고한다.”는 뜻이다.

 

 

 

참조 URL : http://docs.openstack.org/developer/glance/glance.html


Posted by 나리 짱!!! naleejang