ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

OpenStackコマンドでインスタンスを作成する

OpenStackコマンドでインスタンスを作成(起動)するには、openstack server createを使います。 実際にインスタンスを作成するには、次のコマンドで必要な情報を用意する必要があります。

インスタンス起動に必要な情報の取得

//フレーバーの確認
openstack flavor list

//イメージの確認
openstack image list

//セキュリティグループの確認
openstack security group list

//キーペアの確認
openstack keypair list

//ネットワークの確認
openstack network list

//サブネットの確認
openstack subnet list

インスタンス起動

cloud-initファイルの準備

適当に用意します。例は、ログインするときのデフォルトユーザーを「デフォルト」からcloud-userに変更します。 デフォルトユーザーはイメージによって異なっており、Ubuntuならubuntu、Debianならdebian、Fedoraならfedora、RHELの場合はcloud-user、Alma Linuxならalmalinuxだったと思います。詳しくは配布元の情報を確認してください。 面倒なので、ここではcloud-userにしちゃいます。デフォルトのユーザーを変えるのは、セキュリティー的には良いことです。

$ cat cloudinit.file
...
#cloud-config
system_info:
  default_user:
    name: cloud-user

基本的なインスタンスの起動

一番基本的なインスタンスの起動方法は、エフェメラルストレージを使って(Cinderボリュームを使わないで)インスタンスを起動する方法です。多くのOpenStackデプロイメントではこの構成でデプロイされると思います。

大文字部分は冒頭のコマンドを実行して、適切なIDや名前に置き換えて実行してください。

$ openstack server create --flavor FLAVOR-ID --image IMAGE-ID \
  --security-group SG-ID --key-name KEYPAIR-NAME --user-data cloudinit.file --config-drive true \
  --nic net-id=PROJECT_NET_ID INSTANCE-NAME

Cinderボリュームを使ったインスタンスを起動:

続いて、Cinderボリュームを使ってインスタンスを起動する方法です。この例はブートボリュームがCinder ボリュームになります。

$ openstack volume create --size VOLUME-SIZE --image IMAGE-ID --bootable VOLUME-NAME
$ openstack server create --flavor FLAVOR-ID --volume VOLUME-NAME \
  --security-group SG-ID --key-name KEYPAIR-NAME --user-data cloudinit.file --config-drive true \
  --nic net-id=PROJECT_NET_ID INSTANCE-NAME

実行例

$ openstack server create --flavor 518130ce-f7d3-4ea8-91dc-a8d7f924a0b2 --volume testvm1-volume \
>   --security-group ytooyama --key-name yt-key --user-data cloudinit.file --config-drive true \
>   --nic net-id=a68a0a9b-61b8-47b5-9fb5-b227ab2a3ab2 testvm1  
+-------------------------------------+-------------------------------------------------+
| Field                               | Value                                           |
+-------------------------------------+-------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                          |
| OS-EXT-AZ:availability_zone         |                                                 |
| OS-EXT-SRV-ATTR:host                | None                                            |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                            |
| OS-EXT-SRV-ATTR:instance_name       |                                                 |
| 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                           | 2VKoQLP65tiM                                    |
| config_drive                        | True                                            |
| created                             | 2024-03-06T08:35:56Z                            |
| flavor                              | m1.micro (518130ce-f7d3-4ea8-91dc-a8d7f924a0b2) |
| hostId                              |                                                 |
| id                                  | 9b3925bd-8f41-434d-8973-da72f2cafd01            |
| image                               |                                                 |
| key_name                            | yt-key                                          |
| name                                | testvm1                                         |
| progress                            | 0                                               |
| project_id                          | 1043b30ac4d54c9f959dfc23803e85c7                |
| properties                          |                                                 |
| security_groups                     | name='b2687081-c69d-457f-9a2e-df0233fbd57f'     |
| status                              | BUILD                                           |
| updated                             | 2024-03-06T08:35:56Z                            |
| user_id                             | f8396fe570a3459c973b535fa2d15d6a                |
| volumes_attached                    |                                                 |
+-------------------------------------+--------------------------------------------

$ openstack floating ip list
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| ID                                   | Floating IP Address | Fixed IP Address | Port | Floating Network                     | Project                          |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
| 73480d1b-eeb8-41fe-a925-7720ef8fbca9 | 172.16.214.32       | None             | None | 8b4b8ca2-33d8-43d8-be5a-9e77cea99cfc | 1043b30ac4d54c9f959dfc23803e85c7 |
| 9bac66f0-86f4-468e-b580-88f54938a688 | 172.16.214.63       | None             | None | 8b4b8ca2-33d8-43d8-be5a-9e77cea99cfc | 1043b30ac4d54c9f959dfc23803e85c7 |
| d2e132d6-0898-4cf8-a796-7fa3e9e2665d | 172.16.214.61       | None             | None | 8b4b8ca2-33d8-43d8-be5a-9e77cea99cfc | 1043b30ac4d54c9f959dfc23803e85c7 |
+--------------------------------------+---------------------+------------------+------+--------------------------------------+----------------------------------+
-----+

$ openstack server add floating ip testvm1 172.16.214.61 

$ openstack server list
+--------------------------------------+---------+--------+---------------------------------------+-------+----------+
| ID                                   | Name    | Status | Networks                              | Image | Flavor   |
+--------------------------------------+---------+--------+---------------------------------------+-------+----------+
| 9b3925bd-8f41-434d-8973-da72f2cafd01 | testvm1 | ACTIVE | user-net=192.168.1.159, 172.16.214.61 |       | m1.micro |
+--------------------------------------+---------+--------+---------------------------------------+-------+----------+

$ ping -c3 172.16.214.61
PING 172.16.214.61 (172.16.214.61) 56(84) bytes of data.
64 bytes from 172.16.214.61: icmp_seq=1 ttl=62 time=3.37 ms
64 bytes from 172.16.214.61: icmp_seq=2 ttl=62 time=1.58 ms
64 bytes from 172.16.214.61: icmp_seq=3 ttl=62 time=0.690 ms

--- 172.16.214.61 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.690/1.880/3.369/1.113 ms

The authenticity of host '172.16.214.61 (172.16.214.61)' can't be established.
ECDSA key fingerprint is SHA256:xxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。