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 ~]#