{"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:10","modified_gmt":"2025-02-24T12:02:10","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>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>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>&#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\/sites\/2\/2025\/01\/ostack20-1024x442.png\" alt=\"\" class=\"wp-image-36888\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/01\/ostack20-1024x442.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/01\/ostack20-300x130.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/01\/ostack20-768x332.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/01\/ostack20.png 1204w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>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>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>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>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>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>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>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>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>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>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>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\/sites\/2\/2025\/02\/Screenshot_20250203_080131-1024x745.png\" alt=\"\" class=\"wp-image-36974\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250203_080131-1024x745.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250203_080131-300x218.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250203_080131-768x559.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250203_080131.png 1150w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>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>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\/sites\/2\/2025\/02\/Screenshot_20250224_091757-1024x484.png\" alt=\"\" class=\"wp-image-37430\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250224_091757-1024x484.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250224_091757-300x142.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250224_091757-768x363.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/02\/Screenshot_20250224_091757.png 1482w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>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;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[955,1320],"tags":[135,73,957],"type_dbi":[],"class_list":["post-36885","post","type-post","status-publish","format-standard","hentry","category-cloud","category-devops","tag-cloud","tag-linux","tag-openstack"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>OpenStack \u2013 Deploying the first compute instance - dbi 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;]\" \/>\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 Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-24T12:02:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-24T12:02:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/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=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\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\":\"Daniel Westermann\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"OpenStack \u2013 Deploying the first compute instance\",\"datePublished\":\"2025-02-24T12:02:06+00:00\",\"dateModified\":\"2025-02-24T12:02:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/openstack-deploying-the-first-compute-instance\\\/\"},\"wordCount\":525,\"commentCount\":0,\"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\\\/sites\\\/2\\\/2025\\\/01\\\/ostack20-1024x442.png\",\"keywords\":[\"Cloud\",\"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 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\\\/sites\\\/2\\\/2025\\\/01\\\/ostack20-1024x442.png\",\"datePublished\":\"2025-02-24T12:02:06+00:00\",\"dateModified\":\"2025-02-24T12:02:10+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"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\\\/sites\\\/2\\\/2025\\\/01\\\/ostack20.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/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 Blog\",\"description\":\"\",\"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\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\\\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/westermanndanie\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/daniel-westermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"OpenStack \u2013 Deploying the first compute instance - dbi 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;]","og_url":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/","og_site_name":"dbi Blog","article_published_time":"2025-02-24T12:02:06+00:00","article_modified_time":"2025-02-24T12:02:10+00:00","og_image":[{"width":1204,"height":520,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/01\/ostack20.png","type":"image\/png"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","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":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"OpenStack \u2013 Deploying the first compute instance","datePublished":"2025-02-24T12:02:06+00:00","dateModified":"2025-02-24T12:02:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/openstack-deploying-the-first-compute-instance\/"},"wordCount":525,"commentCount":0,"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\/sites\/2\/2025\/01\/ostack20-1024x442.png","keywords":["Cloud","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 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\/sites\/2\/2025\/01\/ostack20-1024x442.png","datePublished":"2025-02-24T12:02:06+00:00","dateModified":"2025-02-24T12:02:10+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"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\/sites\/2\/2025\/01\/ostack20.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/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 Blog","description":"","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":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_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\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=36885"}],"version-history":[{"count":17,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/36885\/revisions"}],"predecessor-version":[{"id":37432,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/36885\/revisions\/37432"}],"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"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=36885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}