ISO イメージからのイメージの作成

ここでは、ISO イメージから Openstack で使用するイメージを作成する方法を紹介します。

まず、ISO イメージをダウンロードします。ここでは、CentOS-7-x86_64-Minimal-1804.iso をダウンロードしています。

[root@controller ~]# curl -LO http://ftp.riken.jp/Linux/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  906M  100  906M    0     0  1465k      0  0:10:33  0:10:33 --:--:-- 1142k
[root@controller ~]# 

コントローラーノードで、admin クレデンシャルを読み込み、管理者専用 CLI コマンドへのアクセス権を取得します。

[root@controller ~]# . openrc/admin-openrc 
[root@controller ~]# 

ISO形式で、イメージを作成します。ここでは、ダウンロードした CentOS-7-x86_64-Minimal-1804.iso の ISOイメージを使って、CentOS-7-x86_64-Minimal-1804_iso といった名前のイメージを作成しています。

[root@controller ~]# openstack image create "CentOS-7-x86_64-Minimal-1804_iso" --disk-format iso \
 --container-format bare < CentOS-7-x86_64-Minimal-1804.iso \
 --public
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                      |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | fabdc67ff3a1674a489953effa285dfd                                                                                                                                                           |
| container_format | bare                                                                                                                                                                                       |
| created_at       | 2018-10-27T13:15:25Z                                                                                                                                                                       |
| disk_format      | iso                                                                                                                                                                                        |
| file             | /v2/images/787c96c9-d0b5-4188-904a-75794f271b19/file                                                                                                                                       |
| id               | 787c96c9-d0b5-4188-904a-75794f271b19                                                                                                                                                       |
| min_disk         | 0                                                                                                                                                                                          |
| min_ram          | 0                                                                                                                                                                                          |
| name             | CentOS-7-x86_64-Minimal-1804_iso                                                                                                                                                           |
| owner            | 257bcb40994f44a1b2740dba5200d6c4                                                                                                                                                           |
| properties       | os_hash_algo='sha512', os_hash_value='74b1c57aa29d40383d3558344ec45e544cb420ff08383e0a3ca092325f057af32947aee19a89181b481c2283819f6ad66b3a497bd02dfbd184724f79cb161368', os_hidden='False' |
| protected        | False                                                                                                                                                                                      |
| schema           | /v2/schemas/image                                                                                                                                                                          |
| size             | 950009856                                                                                                                                                                                  |
| status           | active                                                                                                                                                                                     |
| tags             |                                                                                                                                                                                            |
| updated_at       | 2018-10-27T13:15:30Z                                                                                                                                                                       |
| virtual_size     | None                                                                                                                                                                                       |
| visibility       | public                                                                                                                                                                                     |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@controller ~]# 

利用可能なネットワークを一覧表示し、確認します。

[root@controller ~]# openstack network list
+--------------------------------------+----------------+--------------------------------------+
| ID                                   | Name           | Subnets                              |
+--------------------------------------+----------------+--------------------------------------+
| 2769f828-ae94-4934-8b63-eb5a7a139b73 | Self network 1 | 812d8088-e027-452b-b006-3124bbee81c2 |
| a07ede34-eb96-470e-97a8-6dd6917ba18d | provider       | b80414a4-b901-4b5d-a030-b144e49733ca |
+--------------------------------------+----------------+--------------------------------------+
[root@controller ~]# 

利用可能なフレーバーを一覧表示し、確認します。

[root@controller ~]# openstack flavor list
+-----+---------+------+------+-----------+-------+-----------+
| ID  | Name    |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+-----+---------+------+------+-----------+-------+-----------+
| 0   | m1.nano |   64 |    1 |         0 |     1 | True      |
| 102 | micro   | 1024 |   10 |         0 |     1 | True      |
+-----+---------+------+------+-----------+-------+-----------+
[root@controller ~]# 

コントローラーノードにおいて、demo クレデンシャルを読み込み、利用者用の CLI コマンドへのアクセス権を取得します。

[root@controller ~]# . openrc/demo-openrc 
[root@controller ~]# 

先程作成したイメージファイルを使って、セルフサービスネットワークにインスタンスを作成します。ここでは、 CentOS-7-x86_64-Minimal-1804_iso イメージファイルと micro のフレーバーを使って、Self network 1 のセルフサービスサービスネトワークに、my_server_1 のインスタンスを作成しています。

[root@controller ~]# openstack server create --image CentOS-7-x86_64-Minimal-1804_iso \
>   --nic net-id=2769f828-ae94-4934-8b63-eb5a7a139b73 \
>   --flavor micro my_server_1
+-----------------------------+-------------------------------------------------------------------------+
| Field                       | Value                                                                   |
+-----------------------------+-------------------------------------------------------------------------+
| OS-DCF:diskConfig           | MANUAL                                                                  |
| OS-EXT-AZ:availability_zone |                                                                         |
| OS-EXT-STS:power_state      | NOSTATE                                                                 |
| OS-EXT-STS:task_state       | scheduling                                                              |
| OS-EXT-STS:vm_state         | building                                                                |
| OS-SRV-USG:launched_at      | None                                                                    |
| OS-SRV-USG:terminated_at    | None                                                                    |
| accessIPv4                  |                                                                         |
| accessIPv6                  |                                                                         |
| addresses                   |                                                                         |
| adminPass                   | ppRXAV22kqD9                                                            |
| config_drive                |                                                                         |
| created                     | 2018-10-28T06:23:03Z                                                    |
| flavor                      | micro (102)                                                             |
| hostId                      |                                                                         |
| id                          | 92472f78-8bf6-4c24-8f80-2cfe55d3e81f                                    |
| image                       | CentOS-7-x86_64-Minimal-1804_iso (5c8d7d25-0306-4e69-b12b-9bff8e08e684) |
| key_name                    | None                                                                    |
| name                        | my_server_1                                                             |
| progress                    | 0                                                                       |
| project_id                  | b9644b0689c4469baa45f9acb009d860                                        |
| properties                  |                                                                         |
| security_groups             | name='default'                                                          |
| status                      | BUILD                                                                   |
| updated                     | 2018-10-28T06:23:03Z                                                    |
| user_id                     | 64b377d70bc4457faa169912b02a24d1                                        |
| volumes_attached            |                                                                         |
+-----------------------------+-------------------------------------------------------------------------+
[root@controller ~]# 

インスタンスがシャットダウン後に保存される、ブート可能なボリュームを作成します。ここでは、CentOS-7-x86_64-Minimal-1804_iso イメージを使って作成しています。

[root@controller ~]# openstack volume create \
>   --size 3 \
>   --bootable CentOS-7-x86_64-Minimal-1804_iso \
> 
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2018-10-28T06:23:58.000000           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 351da38b-e48e-4e62-ad64-0fc16ea64040 |
| multiattach         | False                                |
| name                | CentOS-7-x86_64-Minimal-1804_iso     |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 3                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| updated_at          | None                                 |
| user_id             | 64b377d70bc4457faa169912b02a24d1     |
+---------------------+--------------------------------------+
[root@controller ~]# 

my_server_1 インスタンスに CentOS-7-x86_64-Minimal-1804_iso ボリュームを接続します。ここでは、/dev/vda デバイスに接続しています。

[root@controller ~]# openstack server add volume my_server_1 \
>   CentOS-7-x86_64-Minimal-1804_iso \
>   --device /dev/vda
[root@controller ~]# 

ダッシュボードにログインし、作成した my_server_1 インスタンスにコンソール接続し、OSのインストール処理をします。

my_server_1 インスタンスの OS インストール処理が完了したら、my_server_1 インスタンスを削除します。my_server_1 インスタンスは、ISO イメージからイメージを作成するためだけに作成したものであるため、イメージ作成後は削除します。

[root@controller ~]# openstack server delete my_server_1
[root@controller ~]# 

サーバーのインスタンスを一覧表示し、確認します。

[root@controller ~]# openstack server list
+--------------------------------------+-------------+--------+---------------------------------------------+-------+--------+
| ID                                   | Name        | Status | Networks                                    | Image | Flavor |
+--------------------------------------+-------------+--------+---------------------------------------------+-------+--------+
| f10aaa7d-b3d7-4887-9aa5-387c53eee539 | My server 1 | ACTIVE | Self network 1=172.16.2.109, 192.168.25.116 |       | micro  |
+--------------------------------------+-------------+--------+---------------------------------------------+-------+--------+
[root@controller ~]# 

ボリュームを一覧表示し、確認します。インスタンスを削除しても、ISO イメージのボリューム(CentOS-7-x86_64-Minimal-1804_iso)は残ったいることが確認できます。このボリュームは、OSインストール処理済みの状態のものとなります。

[root@controller ~]# openstack volume list
+--------------------------------------+----------------------------------+-----------+------+--------------------------------------+
| ID                                   | Name                             | Status    | Size | Attached to                          |
+--------------------------------------+----------------------------------+-----------+------+--------------------------------------+
| 351da38b-e48e-4e62-ad64-0fc16ea64040 | CentOS-7-x86_64-Minimal-1804_iso | available |    3 |                                      |
| daf9e60e-9f43-4ecc-ac31-696d565b513c |                                  | in-use    |   10 | Attached to My server 1 on /dev/vda  |
+--------------------------------------+----------------------------------+-----------+------+--------------------------------------+
[root@controller ~]# 

CentOS-7-x86_64-Minimal-1804_iso のボリュームを使って、イメージを作成します。

[root@controller ~]# openstack image create --volume CentOS-7-x86_64-Minimal-1804_iso CentOS-7-x86_64-Minimal \
  --disk-format qcow2 --container-format bare --public
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| container_format    | bare                                 |
| disk_format         | qcow2                                |
| display_description | None                                 |
| id                  | 351da38b-e48e-4e62-ad64-0fc16ea64040 |
| image_id            | 2f28e900-97b5-4707-8b02-e0980b7e217f |
| image_name          | CentOS-7-x86_64-Minimal              |
| protected           | False                                |
| size                | 3                                    |
| status              | uploading                            |
| updated_at          | 2018-10-28T08:03:29.000000           |
| visibility          | shared                               |
| volume_type         | None                                 |
+---------------------+--------------------------------------+
[root@controller ~]# 

利用可能なイメージを一覧表示し、確認します。インスタンスの作成で、CentOS-7-x86_64-Minimal のイメージを指定すれば、CentOS-7-x86_64-Minimal  でインスタンスを起動できるようになります。

[root@controller ~]# openstack image list
+--------------------------------------+----------------------------------+--------+
| ID                                   | Name                             | Status |
+--------------------------------------+----------------------------------+--------+
| 2f28e900-97b5-4707-8b02-e0980b7e217f | CentOS-7-x86_64-Minimal          | active |
| 5c8d7d25-0306-4e69-b12b-9bff8e08e684 | CentOS-7-x86_64-Minimal-1804_iso | active |
| b93ccc14-9a2e-4ef4-a3c6-9719b23eacf5 | centos-7-x86_64                  | active |
| 6b95a861-2df2-4ce7-b238-5cb5194f87c8 | cirros                           | active |
+--------------------------------------+----------------------------------+--------+
[root@controller ~]#