{"id":36885,"date":"2025-02-24T13:02:06","date_gmt":"2025-02-24T12:02:06","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=36885"},"modified":"2025-02-24T13:02:06","modified_gmt":"2025-02-24T12:02:06","slug":"openstack-deploying-the-first-compute-instance","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/","title":{"rendered":"OpenStack \u2013 Deploying the first compute instance"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Once you have your <a href=\"https:\/\/www.dbi-services.com\/blog\/creating-your-private-cloud-using-openstack-1-introduction\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenStack playground<\/a> up and running it is time to actually use it. What we want to do today is to create our first compute instance. Before we can do that, we again need a bit of preparation. If you know <a href=\"https:\/\/aws.amazon.com\/ec2\/\">AWS EC2<\/a>, or other public cloud services when it comes to compute, you probably know the concept of &#8220;flavors&#8221;, or &#8220;instance types&#8221;, or &#8220;shapes&#8221;, or whatever the wording. No matter how it is called, this is all about defining base metrics for an instance to be launched, such as the number of CPUs\/Cores or the amount of memory to assign  to them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With OpenStack this is not much different. Looking at the &#8220;flavors&#8221; we currently have available we&#8217;ll notice that there is nothing defined yet. You can either look at that from the command line:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ . admin-openrc \n&#x5B;root@controller ~]$ openstack flavor list\n\n&#x5B;root@controller ~]$ \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">&#8230; or from the Horizon dashboard:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"442\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20-1024x442.png\" alt=\"\" class=\"wp-image-36888\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20-1024x442.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20-300x130.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20-768x332.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20.png 1204w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">From now on, we&#8217;ll used the command line but you&#8217;ll see some screenshots of the dashboard when it makes sense. If you prefer using the dashboard, go ahead and manage it from there.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We currently have one image available to deploy instances from, and this is the <a href=\"https:\/\/github.com\/cirros-dev\/cirros\" target=\"_blank\" rel=\"noreferrer noopener\">CirrOS<\/a> image we&#8217;ve uploaded when we created the playground (see the link on top of this post if you didn&#8217;t follow that). This image is really small, so we can create a really small &#8220;flavor&#8221; for this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,18]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano\n+----------------------------+---------+\n| Field                      | Value   |\n+----------------------------+---------+\n| OS-FLV-DISABLED:disabled   | False   |\n| OS-FLV-EXT-DATA:ephemeral  | 0       |\n| description                | None    |\n| disk                       | 1       |\n| id                         | 0       |\n| name                       | m1.nano |\n| os-flavor-access:is_public | True    |\n| properties                 |         |\n| ram                        | 64      |\n| rxtx_factor                | 1.0     |\n| swap                       | 0       |\n| vcpus                      | 1       |\n+----------------------------+---------+\n&#x5B;root@controller ~]$ openstack flavor list\n+----+---------+-----+------+-----------+-------+-----------+\n| ID | Name    | RAM | Disk | Ephemeral | VCPUs | Is Public |\n+----+---------+-----+------+-----------+-------+-----------+\n| 0  | m1.nano |  64 |    1 |         0 |     1 | True      |\n+----+---------+-----+------+-----------+-------+-----------+\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">When it comes to connecting to the VM we&#8217;ll deploy in a couple of minutes later on, you should have a <a href=\"https:\/\/www.ssh.com\/academy\/ssh\/public-key-authentication\" target=\"_blank\" rel=\"noreferrer noopener\">SSH keypair<\/a> (again, very much the same as you know it from public cloud compute services). To create that with OpenStack, create a standard SSH key, and then upload it into OpenStack:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,3,5,17]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ ssh-keygen -q -N &quot;&quot;\nEnter file in which to save the key (\/root\/.ssh\/id_rsa): \n&#x5B;root@controller ~]$ ls -a .ssh\/\n.  ..  id_rsa  id_rsa.pub\n&#x5B;root@controller ~]$ openstack keypair create --public-key ~\/.ssh\/id_rsa.pub demokey\n+-------------+-------------------------------------------------+\n| Field       | Value                                           |\n+-------------+-------------------------------------------------+\n| created_at  | None                                            |\n| fingerprint | f9:ef:2f:7d:c3:6c:99:17:0e:63:3b:f8:b0:75:aa:85 |\n| id          | demokey                                         |\n| is_deleted  | None                                            |\n| name        | demokey                                         |\n| type        | ssh                                             |\n| user_id     | 3d6998879b6c4fdd91ba4b6ec00b7157                |\n+-------------+-------------------------------------------------+\n&#x5B;root@controller ~]$ openstack keypair list\n+---------+-------------------------------------------------+------+\n| Name    | Fingerprint                                     | Type |\n+---------+-------------------------------------------------+------+\n| demokey | f9:ef:2f:7d:c3:6c:99:17:0e:63:3b:f8:b0:75:aa:85 | ssh  |\n+---------+-------------------------------------------------+------+\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The next bit we need to get right for being able to access the instance are <a href=\"https:\/\/docs.openstack.org\/nova\/latest\/user\/security-groups.html\" target=\"_blank\" rel=\"noreferrer noopener\">security groups<\/a>. You can think of them like firewalls allowing or denying access for specific ports and protocols. Current we have one security group available, the default one:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ openstack security group list\n+--------------------------------------+---------+------------------------+----------------------------------+------+\n| ID                                   | Name    | Description            | Project                          | Tags |\n+--------------------------------------+---------+------------------------+----------------------------------+------+\n| 52a3b8d0-9490-4f85-8692-e7875f744bc9 | default | Default security group | 920bf34a6c88454f90d405124ca1076d | &#x5B;]   |\n+--------------------------------------+---------+------------------------+----------------------------------+------+\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">This group does not have any rules defined to allow access over ssh:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ openstack security group rule list default\n+--------------------------------------+-------------+-----------+-----------+------------+-----------+--------------------------------------+----------------------+\n| ID                                   | IP Protocol | Ethertype | IP Range  | Port Range | Direction | Remote Security Group                | Remote Address Group |\n+--------------------------------------+-------------+-----------+-----------+------------+-----------+--------------------------------------+----------------------+\n| 09b76b42-1cb6-437b-b7dc-f6b947d5cf88 | None        | IPv6      | ::\/0      |            | ingress   | 52a3b8d0-9490-4f85-8692-e7875f744bc9 | None                 |\n| 461734e3-113d-4b87-a266-c448eb407f18 | None        | IPv4      | 0.0.0.0\/0 |            | egress    | None                                 | None                 |\n| cf174f68-9e67-4299-8f0a-af9f4c250005 | None        | IPv4      | 0.0.0.0\/0 |            | ingress   | 52a3b8d0-9490-4f85-8692-e7875f744bc9 | None                 |\n| e23e72d7-a432-4330-9a0b-ee74c9d61661 | None        | IPv6      | ::\/0      |            | egress    | None                                 | None                 |\n+--------------------------------------+-------------+-----------+-----------+------------+-----------+--------------------------------------+----------------------+\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">To allow this, we need to add the rules:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; highlight: [1,25]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ openstack security group rule create --proto tcp --dst-port 22 default\n+-------------------------+--------------------------------------+\n| Field                   | Value                                |\n+-------------------------+--------------------------------------+\n| belongs_to_default_sg   | True                                 |\n| created_at              | 2025-01-27T08:51:06Z                 |\n| description             |                                      |\n| direction               | ingress                              |\n| ether_type              | IPv4                                 |\n| id                      | a3bc97d7-8ba1-4f8a-a87f-28e14c2b6883 |\n| name                    | None                                 |\n| normalized_cidr         | 0.0.0.0\/0                            |\n| port_range_max          | 22                                   |\n| port_range_min          | 22                                   |\n| project_id              | 920bf34a6c88454f90d405124ca1076d     |\n| protocol                | tcp                                  |\n| remote_address_group_id | None                                 |\n| remote_group_id         | None                                 |\n| remote_ip_prefix        | 0.0.0.0\/0                            |\n| revision_number         | 0                                    |\n| security_group_id       | 52a3b8d0-9490-4f85-8692-e7875f744bc9 |\n| tags                    | &#x5B;]                                   |\n| updated_at              | 2025-01-27T08:51:06Z                 |\n+-------------------------+--------------------------------------+\n&#x5B;root@controller ~]$ openstack security group rule list default\n+--------------------------------------+-------------+-----------+-----------+------------+-----------+--------------------------------------+----------------------+\n| ID                                   | IP Protocol | Ethertype | IP Range  | Port Range | Direction | Remote Security Group                | Remote Address Group |\n+--------------------------------------+-------------+-----------+-----------+------------+-----------+--------------------------------------+----------------------+\n| 09b76b42-1cb6-437b-b7dc-f6b947d5cf88 | None        | IPv6      | ::\/0      |            | ingress   | 52a3b8d0-9490-4f85-8692-e7875f744bc9 | None                 |\n| 461734e3-113d-4b87-a266-c448eb407f18 | None        | IPv4      | 0.0.0.0\/0 |            | egress    | None                                 | None                 |\n| a3bc97d7-8ba1-4f8a-a87f-28e14c2b6883 | tcp         | IPv4      | 0.0.0.0\/0 | 22:22      | ingress   | None                                 | None                 |\n| cf174f68-9e67-4299-8f0a-af9f4c250005 | None        | IPv4      | 0.0.0.0\/0 |            | ingress   | 52a3b8d0-9490-4f85-8692-e7875f744bc9 | None                 |\n| e23e72d7-a432-4330-9a0b-ee74c9d61661 | None        | IPv6      | ::\/0      |            | egress    | None                                 | None                 |\n+--------------------------------------+-------------+-----------+-----------+------------+-----------+--------------------------------------+----------------------+\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">If you want a ping to success as well, add it:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,25]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ openstack security group rule create --proto icmp default\n+-------------------------+--------------------------------------+\n| Field                   | Value                                |\n+-------------------------+--------------------------------------+\n| belongs_to_default_sg   | True                                 |\n| created_at              | 2025-01-27T08:52:56Z                 |\n| description             |                                      |\n| direction               | ingress                              |\n| ether_type              | IPv4                                 |\n| id                      | 246aab68-9a8c-47f4-9554-0ea9c88ef18d |\n| name                    | None                                 |\n| normalized_cidr         | 0.0.0.0\/0                            |\n| port_range_max          | None                                 |\n| port_range_min          | None                                 |\n| project_id              | 920bf34a6c88454f90d405124ca1076d     |\n| protocol                | icmp                                 |\n| remote_address_group_id | None                                 |\n| remote_group_id         | None                                 |\n| remote_ip_prefix        | 0.0.0.0\/0                            |\n| revision_number         | 0                                    |\n| security_group_id       | 52a3b8d0-9490-4f85-8692-e7875f744bc9 |\n| tags                    | &#x5B;]                                   |\n| updated_at              | 2025-01-27T08:52:56Z                 |\n+-------------------------+--------------------------------------+\n&#x5B;root@controller ~]$ openstack security group rule list default | egrep &quot;tcp|icmp&quot;\n| 246aab68-9a8c-47f4-9554-0ea9c88ef18d | icmp        | IPv4      | 0.0.0.0\/0 |            | ingress   | None                                 | None                 |\n| a3bc97d7-8ba1-4f8a-a87f-28e14c2b6883 | tcp         | IPv4      | 0.0.0.0\/0 | 22:22      | ingress   | None                                 | None                 |\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Now we&#8217;re ready to deploy our first instance. As we have configured a provider network, this is the network we need to use:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ openstack network list\n+--------------------------------------+----------+--------------------------------------+\n| ID                                   | Name     | Subnets                              |\n+--------------------------------------+----------+--------------------------------------+\n| aa8bd4f9-4d89-4c7f-803c-c56aaf8f8f57 | provider | 77ba8f00-edeb-4555-8c2a-be48b24f0320 |\n+--------------------------------------+----------+--------------------------------------+\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">To deploy the instance provide the flavor, the image ID, the network ID, the ssh key, the security group, and a name to the instance:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,2,55]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ . admin-openrc \n&#x5B;root@controller ~]$ openstack server create --flavor m1.nano --image cirros --nic net-id=f0183177-cef2-4e56-8c61-15ae96636ba1 --security-group default --key-name demokey  --wait  &quot;demo-instance&quot;\n\n+-------------------------------------+---------------------------------------------------------------------------------------------+\n| Field                               | Value                                                                                       |\n+-------------------------------------+---------------------------------------------------------------------------------------------+\n| OS-DCF:diskConfig                   | MANUAL                                                                                      |\n| OS-EXT-AZ:availability_zone         | nova                                                                                        |\n| OS-EXT-SRV-ATTR:host                | compute.it.dbi-services.com                                                                 |\n| OS-EXT-SRV-ATTR:hostname            | demo-instance                                                                               |\n| OS-EXT-SRV-ATTR:hypervisor_hostname | compute.it.dbi-services.com                                                                 |\n| OS-EXT-SRV-ATTR:instance_name       | instance-0000000c                                                                           |\n| OS-EXT-SRV-ATTR:kernel_id           | None                                                                                        |\n| OS-EXT-SRV-ATTR:launch_index        | None                                                                                        |\n| OS-EXT-SRV-ATTR:ramdisk_id          | None                                                                                        |\n| OS-EXT-SRV-ATTR:reservation_id      | r-3lautvxl                                                                                  |\n| OS-EXT-SRV-ATTR:root_device_name    | \/dev\/vda                                                                                    |\n| OS-EXT-SRV-ATTR:user_data           | None                                                                                        |\n| OS-EXT-STS:power_state              | Running                                                                                     |\n| OS-EXT-STS:task_state               | None                                                                                        |\n| OS-EXT-STS:vm_state                 | active                                                                                      |\n| OS-SRV-USG:launched_at              | 2025-02-03T07:53:27.000000                                                                  |\n| OS-SRV-USG:terminated_at            | None                                                                                        |\n| accessIPv4                          | None                                                                                        |\n| accessIPv6                          | None                                                                                        |\n| addresses                           | provider=172.22.19.8                                                                        |\n| adminPass                           | 9ZYMUC9HULnv                                                                                |\n| config_drive                        | None                                                                                        |\n| created                             | 2025-02-03T06:52:55Z                                                                        |\n| description                         | None                                                                                        |\n| flavor                              | description=, disk=&#039;1&#039;, ephemeral=&#039;0&#039;, , id=&#039;m1.nano&#039;, is_disabled=, is_public=&#039;True&#039;,      |\n|                                     | location=, name=&#039;m1.nano&#039;, original_name=&#039;m1.nano&#039;, ram=&#039;64&#039;, rxtx_factor=, swap=&#039;0&#039;,       |\n|                                     | vcpus=&#039;1&#039;                                                                                   |\n| hostId                              | 9edd54905ea9dce4189babcb1424ea5cc082dea3f6d876bfd5749446                                    |\n| host_status                         | UP                                                                                          |\n| id                                  | 19ed87ea-b380-4381-9b58-03c8f48cad92                                                        |\n| image                               | cirros (654f6256-3b26-4579-99bc-8a2f55690b81)                                               |\n| key_name                            | demokey                                                                                     |\n| locked                              | None                                                                                        |\n| locked_reason                       | None                                                                                        |\n| name                                | demo-instance                                                                               |\n| pinned_availability_zone            | None                                                                                        |\n| progress                            | None                                                                                        |\n| project_id                          | da47f1e805ef4f5c95ede8daab5f5f4f                                                            |\n| properties                          | None                                                                                        |\n| security_groups                     | name=&#039;default&#039;                                                                              |\n| server_groups                       | None                                                                                        |\n| status                              | ACTIVE                                                                                      |\n| tags                                |                                                                                             |\n| trusted_image_certificates          | None                                                                                        |\n| updated                             | 2025-02-03T06:53:29Z                                                                        |\n| user_id                             | 92181c8807d541368fdc3ffaee1f0168                                                            |\n| volumes_attached                    |                                                                                             |\n+-------------------------------------+---------------------------------------------------------------------------------------------+\n&#x5B;root@controller ~]$ openstack server list\n+--------------------------------------+---------------+--------+----------------------+--------+---------+\n| ID                                   | Name          | Status | Networks             | Image  | Flavor  |\n+--------------------------------------+---------------+--------+----------------------+--------+---------+\n| 19ed87ea-b380-4381-9b58-03c8f48cad92 | demo-instance | ACTIVE | provider=172.22.19.8 | cirros | m1.nano |\n+--------------------------------------+---------------+--------+----------------------+--------+---------+\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">This triggered the instance creation and you can watch the event with:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,7]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ openstack server event list demo-instance\n+------------------------------------------+--------------------------------------+--------+----------------------------+\n| Request ID                               | Server ID                            | Action | Start Time                 |\n+------------------------------------------+--------------------------------------+--------+----------------------------+\n| req-69a0028a-f2ef-4c9d-9213-e137c5b09470 | c5e4728d-819e-4c10-b893-7337fd91d606 | create | 2025-01-27T09:57:36.648465 |\n+------------------------------------------+--------------------------------------+--------+----------------------------+\n&#x5B;root@controller ~]$ openstack server event show demo-instance req-69a0028a-f2ef-4c9d-9213-e137c5b09470\n+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Field      | Value                                                                                                                                                           |\n+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| action     | create                                                                                                                                                          |\n| events     | details=, event=&#039;compute__do_build_and_run_instance&#039;, finish_time=&#039;2025-01-27T09:57:49.761092&#039;, host=&#039;compute.it.dbi-services.com&#039;,                             |\n|            | host_id=&#039;59222072a40332e03d274c533afc51348f1c4cf81b55bf9e618d7ece&#039;, result=&#039;Success&#039;, start_time=&#039;2025-01-27T09:57:40.211637&#039;, traceback=                       |\n| id         | req-69a0028a-f2ef-4c9d-9213-e137c5b09470                                                                                                                        |\n| message    | None                                                                                                                                                            |\n| project_id | 920bf34a6c88454f90d405124ca1076d                                                                                                                                |\n| request_id | req-69a0028a-f2ef-4c9d-9213-e137c5b09470                                                                                                                        |\n| start_time | 2025-01-27T09:57:36.648465                                                                                                                                      |\n| user_id    | 3d6998879b6c4fdd91ba4b6ec00b7157                                                                                                                                |\n+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Looking at the log in the dashboard, all looks fine:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"745\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250203_080131-1024x745.png\" alt=\"\" class=\"wp-image-36974\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250203_080131-1024x745.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250203_080131-300x218.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250203_080131-768x559.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250203_080131.png 1150w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ready to connect and check connectivity to the internet:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,3]; title: ; notranslate\" title=\"\">\n&#x5B;root@controller ~]$ ssh cirros@172.22.19.8\ncirros@172.22.19.11&#039;s password: \n$ nslookup www.dbi-services.com\nServer:    8.8.4.4\nAddress 1: 8.8.4.4 dns.google\n\nName:      www.dbi-services.com\nAddress 1: 2a06:98c1:3120::7\nAddress 2: 188.114.96.7\nAddress 3: 188.114.97.7\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">All fine, so we&#8217;re good to use the instance for whatever purpose. If you need access to the console, this can easily be done over the dashboard:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"484\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250224_091757-1024x484.png\" alt=\"\" class=\"wp-image-37430\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250224_091757-1024x484.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250224_091757-300x142.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250224_091757-768x363.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot_20250224_091757.png 1482w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s it for the introduction posts to OpenStack. From here on, you should be ready to move on, either by adding <a href=\"https:\/\/docs.openstack.org\/2024.2\/install\/\" target=\"_blank\" rel=\"noreferrer noopener\">additional components<\/a> such as block or object storage, or harden the environment (for now all is based on http and no traffic is encrypted).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Once you have your OpenStack playground up and running it is time to actually use it. What we want to do today is to create our first compute instance. Before we can do that, we again need a bit of preparation. If you know AWS EC2, or other public cloud services when it comes to&hellip;&nbsp;<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[955,1320],"tags":[73,957],"class_list":["post-36885","post","type-post","status-publish","format-standard","hentry","category-cloud","category-devops","tag-linux","tag-openstack"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>OpenStack \u2013 Deploying the first compute instance - dbi services | Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenStack \u2013 Deploying the first compute instance\" \/>\n<meta property=\"og:description\" content=\"Once you have your OpenStack playground up and running it is time to actually use it. What we want to do today is to create our first compute instance. Before we can do that, we again need a bit of preparation. If you know AWS EC2, or other public cloud services when it comes to&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi services | Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dbiservices\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-24T12:02:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1204\" \/>\n\t<meta property=\"og:image:height\" content=\"520\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:site\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\"},\"headline\":\"OpenStack \u2013 Deploying the first compute instance\",\"datePublished\":\"2025-02-24T12:02:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/\"},\"wordCount\":525,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/ostack20-1024x442.png\",\"keywords\":[\"Linux\",\"openstack\"],\"articleSection\":[\"Cloud\",\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/\",\"name\":\"OpenStack \u2013 Deploying the first compute instance - dbi services | Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/ostack20-1024x442.png\",\"datePublished\":\"2025-02-24T12:02:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/ostack20.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/ostack20.png\",\"width\":1204,\"height\":520},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OpenStack \u2013 Deploying the first compute instance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi services Blog\",\"description\":\"#BeSharing\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"alternateName\":\"dbi Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\",\"name\":\"dbi services\",\"alternateName\":\"dbi\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"width\":512,\"height\":512,\"caption\":\"dbi services\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dbiservices\\\/\",\"https:\\\/\\\/x.com\\\/dbiservices\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dbi-services\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/dbiservices\"],\"description\":\"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.\",\"email\":\"info@dbi-services.com\",\"telephone\":\"+41 32 422 96 00\",\"legalName\":\"dbi services SA\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"caption\":\"Open source Team\"},\"description\":\"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"OpenStack \u2013 Deploying the first compute instance - dbi services | Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/","og_locale":"en_US","og_type":"article","og_title":"OpenStack \u2013 Deploying the first compute instance","og_description":"Once you have your OpenStack playground up and running it is time to actually use it. What we want to do today is to create our first compute instance. Before we can do that, we again need a bit of preparation. If you know AWS EC2, or other public cloud services when it comes to&hellip;&nbsp;","og_url":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/","og_site_name":"dbi services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2025-02-24T12:02:06+00:00","og_image":[{"width":1204,"height":520,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20.png","type":"image\/png"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_creator":"@dbiservices","twitter_site":"@dbiservices","twitter_misc":{"Written by":"Open source Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a"},"headline":"OpenStack \u2013 Deploying the first compute instance","datePublished":"2025-02-24T12:02:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/"},"wordCount":525,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20-1024x442.png","keywords":["Linux","openstack"],"articleSection":["Cloud","DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/","url":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/","name":"OpenStack \u2013 Deploying the first compute instance - dbi services | Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20-1024x442.png","datePublished":"2025-02-24T12:02:06+00:00","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2025\/01\/ostack20.png","width":1204,"height":520},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"OpenStack \u2013 Deploying the first compute instance"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi services Blog","description":"#BeSharing","publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"alternateName":"dbi Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dbi-services.com\/blog\/#organization","name":"dbi services","alternateName":"dbi","url":"https:\/\/www.dbi-services.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","width":512,"height":512,"caption":"dbi services"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dbiservices\/","https:\/\/x.com\/dbiservices","https:\/\/www.linkedin.com\/company\/dbi-services\/","https:\/\/www.youtube.com\/user\/dbiservices"],"description":"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.","email":"info@dbi-services.com","telephone":"+41 32 422 96 00","legalName":"dbi services SA"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","caption":"Open source Team"},"description":"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.","url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/36885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=36885"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/36885\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=36885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=36885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=36885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}