{"id":9082,"date":"2016-10-12T19:20:17","date_gmt":"2016-10-12T17:20:17","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/"},"modified":"2016-10-12T19:20:17","modified_gmt":"2016-10-12T17:20:17","slug":"how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/","title":{"rendered":"How to install Mirantis OpenStack 9.0  using VirtualBox  \u2013 part 3"},"content":{"rendered":"<p>In the two first blogs, I installed the Fuel environment and deployed OpenStack in the Fuel slave nodes and all of that from the <strong><em>Fuel Master node<\/em><\/strong>.<\/p>\n<p>In this blog, I will show you\u00a0 all the steps to follow in order to create an instance in OpenStack. All is going to be done via the Command Line Interface and not via Horizon &#8211; the OpenStack Dashboard (I will explain this in an other blog) .<\/p>\n<p>&nbsp;<\/p>\n<p>Let&#8217;s begin!<\/p>\n<p>First of all let&#8217;s connect to the Fuel Master node and list all the nodes :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[root@fuel ~]# fuel2 node list\n+----+------------+--------+-------------+-----------------+-----------+-------------------+---------+---------------+--------+\n| id | name | status | os_platform | roles | ip | mac | cluster | platform_name | online |\n+----+------------+--------+-------------+-----------------+-----------+-------------------+---------+---------------+--------+\n| 1 | Storage | ready | ubuntu | [u'cinder'] | 10.20.0.5 | 08:00:27:80:04:e8 | 1 | None | True |\n| 2 | Compute | ready | ubuntu | [u'compute'] | 10.20.0.4 | 08:00:27:cc:85:69 | 1 | None | True |\n| 3 | Controller | ready | ubuntu | [u'controller'] | 10.20.0.3 | 08:00:27:35:b0:77 | 1 | None | True |\n+----+------------+--------+-------------+-----------------+-----------+-------------------+---------+---------------+--------+<\/pre>\n<p>&nbsp;<\/p>\n<p>Now, I connect to the <strong><em>controller node<\/em><\/strong><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[root@fuel ~]# ssh 10.20.0.3\nWarning: Permanently added '10.20.0.3' (ECDSA) to the list of known hosts.\nWelcome to Ubuntu 14.04.5 LTS (GNU\/Linux 3.13.0-98-generic x86_64)\n\n* Documentation:  https:\/\/help.ubuntu.com\/\nLast login: Tue Oct 11 09:55:54 2016 from 10.20.0.2\nroot@node-3:~#<\/pre>\n<p>&nbsp;<\/p>\n<p>Let&#8217;s put an alias for each of the Fuel slave nodes\u00a0 :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[root@fuel ~]# cat \/etc\/hosts\n127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4\n::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\n10.20.0.2       fuel.domain.tld fuel\n10.20.0.3       fuel.domain.tld controller\n10.20.0.4       fuel.domain.tld compute\n10.20.0.5       fuel.domain.tld storage<\/pre>\n<p>&nbsp;<\/p>\n<p>Now I can connect with the aliases:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[root@fuel ~]# ssh controller\nThe authenticity of host 'controller (10.20.0.3)' can't be established.\nECDSA key fingerprint is 01:b5:15:22:03:d0:f9:bb:86:3a:06:a7:8c:19:bd:22.\nAre you sure you want to continue connecting (yes\/no)? yes\nWarning: Permanently added 'controller,10.20.0.3' (ECDSA) to the list of known hosts.\nWelcome to Ubuntu 14.04.5 LTS (GNU\/Linux 3.13.0-98-generic x86_64)\n\n* Documentation: https:\/\/help.ubuntu.com\/\nLast login: Tue Oct 11 10:12:34 2016 from 10.20.0.2\nroot@node-3:~# exit\nlogout<\/pre>\n<p>&nbsp;<\/p>\n<p>Repeat this step for the two left nodes (<em><strong>compute &amp; storage<\/strong><\/em>)<\/p>\n<p class=\"brush: bash; gutter: true; first-line: 1\">I connect to the <em><strong>controller node<\/strong><\/em> :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[root@fuel ~]# ssh controller\nWelcome to Ubuntu 14.04.5 LTS (GNU\/Linux 3.13.0-98-generic x86_64)\n\n* Documentation:  https:\/\/help.ubuntu.com\/\nLast login: Tue Oct 11 11:24:16 2016 from 10.20.0.2\nroot@node-3:~#<\/pre>\n<p>&nbsp;<\/p>\n<p>I\u00a0 try to enter an OpenStack Command Line (list the instances for example) :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova list\n ERROR (CommandError): You must provide a username or user ID via --os-username, --os-user-id, env[OS_USERNAME] or env[OS_USER_ID]\n root@node-3:~#<\/pre>\n<p>It is normal because using OpenStack Clients Command Line\u00a0 requires before to get a token from <em><strong>Keystone<\/strong><\/em>.<\/p>\n<p>In order to do that, you have to specify where the <em><strong>controller node<\/strong><\/em> can reach Keystone and get the required informations from the\u00a0 OpenStack API&#8217;s. Because it is an authentification process you will also need to specify a <em><strong>username<\/strong><\/em> and a <em><strong>password<\/strong><\/em>.<\/p>\n<p>But doing this at each time you use the OpenStack Command Lines clients can\u00a0 quickly become <strong><em>inconvenient<\/em><\/strong>. Hopefully, in OpenStack, there is a way to avoid this. The solution is to create a file with all environments variables that need to be exported for getting this token from <em><strong>Keystone<\/strong><\/em>.<\/p>\n<p>Mirantis creates this file for us:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# ls\nopenrc<\/pre>\n<p>Let&#8217;s see what this file contains :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# cat openrc\n#!\/bin\/sh\nexport OS_NO_CACHE='true'\nexport OS_TENANT_NAME='admin'\nexport OS_PROJECT_NAME='admin'\nexport OS_USERNAME='admin'\nexport OS_PASSWORD='admin'\nexport OS_AUTH_URL='http:\/\/192.168.0.2:5000\/'\nexport OS_DEFAULT_DOMAIN='Default'\nexport OS_AUTH_STRATEGY='keystone'\nexport OS_REGION_NAME='RegionOne'\nexport CINDER_ENDPOINT_TYPE='internalURL'\nexport GLANCE_ENDPOINT_TYPE='internalURL'\nexport KEYSTONE_ENDPOINT_TYPE='internalURL'\nexport NOVA_ENDPOINT_TYPE='internalURL'\nexport NEUTRON_ENDPOINT_TYPE='internalURL'\nexport OS_ENDPOINT_TYPE='internalURL'\nexport MURANO_REPO_URL='http:\/\/storage.apps.openstack.org\/'\nexport MURANO_PACKAGES_SERVICE='glance'<\/pre>\n<p>&nbsp;<\/p>\n<p>I source the file to export the environment variables :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# source openrc<\/pre>\n<p>&nbsp;<\/p>\n<p>I check if the variables were exported. It is via the OS_AUTH_URL that the controller node can reach <strong><em>Keystone<\/em><\/strong><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# echo $OS_USERNAME\nadmin\nroot@node-3:~# echo $OS_PASSWORD\nadmin\nroot@node-3:~# echo $OS_AUTH_URL\nhttp:\/\/192.168.0.2:5000\/<\/pre>\n<p>&nbsp;<\/p>\n<p>Now I can list if there are some instances running :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova list\n+----+------+--------+------------+-------------+----------+\n| ID | Name | Status | Task State | Power State | Networks |\n+----+------+--------+------------+-------------+----------+\n+----+------+--------+------------+-------------+----------+<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4>Let&#8217;s create the first instance<\/h4>\n<p>In order to create this instance, I need :<\/p>\n<ul>\n<li>a flavor<\/li>\n<li>an OS<\/li>\n<li>a network<\/li>\n<li>a keypair<\/li>\n<li>a name<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>I list the available flavors<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova flavor-list\n +--------------------------------------+-----------+-----------+------+-----------+------+-------+-------------+-----------+\n | ID                                   | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |\n +--------------------------------------+-----------+-----------+------+-----------+------+-------+-------------+-----------+\n | 1                                    | m1.tiny   | 512       | 1    | 0         |      | 1     | 1.0         | True      |\n | 2                                    | m1.small  | 2048      | 20   | 0         |      | 1     | 1.0         | True      |\n | 3                                    | m1.medium | 4096      | 40   | 0         |      | 2     | 1.0         | True      |\n | 4                                    | m1.large  | 8192      | 80   | 0         |      | 4     | 1.0         | True      |\n | 5                                    | m1.xlarge | 16384     | 160  | 0         |      | 8     | 1.0         | True      |\n | d942587a-c48b-48ca-9c96-cad3c358eb6e | m1.micro  | 64        | 0    | 0         |      | 1     | 1.0         | True      |\n +--------------------------------------+-----------+-----------+------+-----------+------+-------+-------------+-----------+<\/pre>\n<p>&nbsp;<\/p>\n<p>Then, I list the Operating Systems or <strong><em>images<\/em><\/strong> available. There is only one image created by default by Fuel which is a mini Linux, it is called <em><strong>Cirros<\/strong><\/em>.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova image-list\n+--------------------------------------+--------+--------+--------+\n| ID                                   | Name   | Status | Server |\n+--------------------------------------+--------+--------+--------+\n| a3708fe7-60f7-49c9-91ed-a6eee1ab8ba4 | TestVM | ACTIVE |        |\n+--------------------------------------+--------+--------+--------+<\/pre>\n<p>&nbsp;<\/p>\n<p>I list also the networks (they had been created by Fuel during the deployment of OpenStack)<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# neutron net-list\n+--------------------------------------+--------------------+-------------------------------------------------------+\n| id                                   | name               | subnets                                               |\n+--------------------------------------+--------------------+-------------------------------------------------------+\n| b22e82c9-df6b-4580-a77e-cde8e93f30d8 | admin_floating_net | 7acc6b15-1c00-4447-b4f7-0fcced7a594b 172.16.0.0\/24    |\n| 09b1e122-cb63-44d5-af0b-244d3aa06331 | admin_internal_net | aea6fc29-dfb6-4586-9b09-70ce5c992315 192.168.111.0\/24 |\n+--------------------------------------+--------------------+-------------------------------------------------------+<\/pre>\n<p>&nbsp;<\/p>\n<p>I create a keypair that will be injected in the future instance in order to avoid a password authentification (unless if a password authentification was set up).. <em><strong>This step is n<\/strong><strong><em>ot useful for this case because the Cirros image provides a password by default. <\/em><\/strong><\/em>But it can be helpful if you use other cloud images (ubuntu, centos, etc..)<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova keypair-add --pub-key ~\/.ssh\/authorized_keys mykey\nroot@node-3:~# nova keypair-list\n+-------+------+-------------------------------------------------+\n| Name  | Type | Fingerprint                                     |\n+-------+------+-------------------------------------------------+\n| mykey | ssh  | ee:56:e6:c0:7b:e2:d5:2b:61:23:d7:76:49:b3:d8:d5 |\n+-------+------+-------------------------------------------------+<\/pre>\n<p>&nbsp;<\/p>\n<p>Now I got all the informations that I need, let&#8217;s create the instance which I will name <strong><em>InstanceTest01<\/em><\/strong><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova boot \\\n&gt; --flavor m1.micro \\\n&gt; --image TestVM \\\n&gt; --key-name mykey \\\n&gt; --nic net-id=09b1e122-cb63-44d5-af0b-244d3aa06331 \\\n&gt; InstanceTest01\n+--------------------------------------+-------------------------------------------------+\n| Property | Value |\n+--------------------------------------+-------------------------------------------------+\n| OS-DCF:diskConfig | MANUAL |\n| OS-EXT-AZ:availability_zone | |\n| OS-EXT-SRV-ATTR:host | - |\n| OS-EXT-SRV-ATTR:hostname | instancetest01 |\n| OS-EXT-SRV-ATTR:hypervisor_hostname | - |\n| OS-EXT-SRV-ATTR:instance_name | instance-00000001 |\n| OS-EXT-SRV-ATTR:kernel_id | |\n| OS-EXT-SRV-ATTR:launch_index | 0 |\n| OS-EXT-SRV-ATTR:ramdisk_id | |\n| OS-EXT-SRV-ATTR:reservation_id | r-dyo0086w |\n| OS-EXT-SRV-ATTR:root_device_name | - |\n| OS-EXT-SRV-ATTR:user_data | - |\n| OS-EXT-STS:power_state | 0 |\n| OS-EXT-STS:task_state | scheduling |\n| OS-EXT-STS:vm_state | building |\n| OS-SRV-USG:launched_at | - |\n| OS-SRV-USG:terminated_at | - |\n| accessIPv4 | |\n| accessIPv6 | |\n| adminPass | bUQJDtwM3vjr |\n| config_drive | |\n| created | 2016-10-11T13:08:34Z |\n| description | - |\n| flavor | m1.micro (d942587a-c48b-48ca-9c96-cad3c358eb6e) |\n| hostId | |\n| host_status | |\n| id | b84b49f1-1b01-4aa9-bd9c-c8691fca9298 |\n| image | TestVM (a3708fe7-60f7-49c9-91ed-a6eee1ab8ba4) |\n| key_name | mykey |\n| locked | False |\n| metadata | {} |\n| name | InstanceTest01 |\n| os-extended-volumes:volumes_attached | [] |\n| progress | 0 |\n| security_groups | default |\n| status | BUILD |\n| tenant_id | abfec6fc54c14da28f9971e04c344ec8 |\n| updated | 2016-10-11T13:08:36Z |\n| user_id | d0e1e11f84064f4c8aa02381f0d42ed2 |\n+--------------------------------------+-------------------------------------------------+<\/pre>\n<p>Here is the instance running :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova list\n+--------------------------------------+----------------+--------+------------+-------------+----------------------------------+\n| ID | Name | Status | Task State | Power State | Networks |\n+--------------------------------------+----------------+--------+------------+-------------+----------------------------------+\n| b84b49f1-1b01-4aa9-bd9c-c8691fca9298 | InstanceTest01 | ACTIVE | - | Running | admin_internal_net=192.168.111.3 |\n+--------------------------------------+----------------+--------+------------+-------------+----------------------------------+<\/pre>\n<p>So the instance is up and running<\/p>\n<p>&nbsp;<\/p>\n<p>We connect to the <em><strong>compute node<\/strong><\/em> to check if the instance is really running on it:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">Connection to controller closed.\n[root@fuel ~]# ssh compute\nWelcome to Ubuntu 14.04.5 LTS (GNU\/Linux 3.13.0-98-generic x86_64)\n\n* Documentation: https:\/\/help.ubuntu.com\/\nLast login: Tue Oct 11 18:07:23 2016 from 10.20.0.2\nroot@node-2:~# virsh list\nId Name State\n----------------------------------------------------\n2 instance-00000001 running\n\nroot@node-2:~#<\/pre>\n<p>Yes, the instance is running.<\/p>\n<p>I need to add the <strong><em>ssh<\/em><\/strong> rule for accessing the instance, I will add also the <strong><em>icmp<\/em><\/strong> one. These rules are managed by <em><strong>security groups<\/strong><\/em>.<\/p>\n<p>Let&#8217;s try to ping the instance just created, from now all the operations are done on the <em><strong>controller node\u00a0 <\/strong><\/em>:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\"> root@node-3:~# ip netns exec qrouter-0c67b78a-93d4-417c-9ad3-3b29e1480934 ping 192.168.111.3\n PING 192.168.111.3 (192.168.111.3) 56(84) bytes of data.\n ^C\n --- 192.168.111.3 ping statistics ---\n 3 packets transmitted, 0 received, 100% packet loss, time 2004ms<\/pre>\n<p>&nbsp;<\/p>\n<p>I can not ping my instance, let&#8217;s see what rules are currently in the default security group created by OpenStack:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova secgroup-list\n +--------------------------------------+---------+------------------------+\n | Id                                   | Name    | Description            |\n +--------------------------------------+---------+------------------------+\n | 954e4d85-ea38-4a4b-bbe6-e355946fdfb0 | default | Default security group |\n +--------------------------------------+---------+------------------------+<\/pre>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova secgroup-list-rules 954e4d85-ea38-4a4b-bbe6-e355946fdfb0\n+-------------+-----------+---------+-----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+-----------+--------------+\n|                                             | | | | default |\n|                                             | | | | default |\n+-------------+-----------+---------+-----------+--------------+<\/pre>\n<p>There are<em><strong> no rules<\/strong><\/em>. So, I add the icmp rule in this default security group<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova secgroup-add-rule 954e4d85-ea38-4a4b-bbe6-e355946fdfb0 icmp -1 -1 0.0.0.0\/0\n +-------------+-----------+---------+-----------+--------------+\n | IP Protocol | From Port | To Port | IP Range | Source Group |\n +-------------+-----------+---------+-----------+--------------+\n | icmp | -1 | -1 | 0.0.0.0\/0 | |\n +-------------+-----------+---------+-----------+--------------+<\/pre>\n<p>&nbsp;<\/p>\n<p>I check if the rule was added<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova secgroup-list-rules 954e4d85-ea38-4a4b-bbe6-e355946fdfb0\n +-------------+-----------+---------+-----------+--------------+\n | IP Protocol | From Port | To Port | IP Range  | Source Group |\n +-------------+-----------+---------+-----------+--------------+\n |             |           |         |           | default      |\n |             |           |         |           | default      |\n | icmp        | -1        | -1      | 0.0.0.0\/0 |              |\n +-------------+-----------+---------+-----------+--------------+<\/pre>\n<p>&nbsp;<\/p>\n<p>Let&#8217;s test if I can ping the instance, we need to use the network namespace <em><strong>qrouter<\/strong><\/em> which is basically the router that the <em><strong>controller node<\/strong><\/em> will use to reach the instance on the <em><strong>compute node<\/strong><\/em><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# ip netns list\nqdhcp-09b1e122-cb63-44d5-af0b-244d3aa06331\nqrouter-0c67b78a-93d4-417c-9ad3-3b29e1480934\nhaproxy\nvrouter<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-11974\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter.png\" alt=\"IDqRouter\" width=\"741\" height=\"394\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# ip netns exec qrouter-0c67b78a-93d4-417c-9ad3-3b29e1480934 ping 192.168.111.3\n PING 192.168.111.3 (192.168.111.3) 56(84) bytes of data.\n 64 bytes from 192.168.111.3: icmp_seq=1 ttl=64 time=2.29 ms\n 64 bytes from 192.168.111.3: icmp_seq=2 ttl=64 time=0.789 ms\n ^C\n --- 192.168.111.3 ping statistics ---\n 2 packets transmitted, 2 received, 0% packet loss, time 1001ms<\/pre>\n<p>&nbsp;<\/p>\n<p>I do the same with the <em><strong>ssh rule<\/strong> <\/em><\/p>\n<p>First, I test if I can access my instance<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# ip netns exec qrouter-0c67b78a-93d4-417c-9ad3-3b29e1480934 ssh cirros@192.168.111.3 -v\n OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014\n debug1: Reading configuration data \/etc\/ssh\/ssh_config\n debug1: \/etc\/ssh\/ssh_config line 19: Applying options for *\n debug1: Connecting to 192.168.111.3 [192.168.111.3] port 22.\n ^C<\/pre>\n<p>&nbsp;<\/p>\n<p>No I can not, so I add the rule<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\"> \nroot@node-3:~# nova secgroup-add-rule  954e4d85-ea38-4a4b-bbe6-e355946fdfb0 tcp 22 22 0.0.0.0\/0\n+-------------+-----------+---------+-----------+--------------+\n| IP Protocol | From Port | To Port | IP Range  | Source Group |\n+-------------+-----------+---------+-----------+--------------+\n| tcp         | 22        | 22      | 0.0.0.0\/0 |              |\n+-------------+-----------+---------+-----------+--------------+<\/pre>\n<p>&nbsp;<\/p>\n<p>I check if the rule was added :<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# nova secgroup-list-rules 954e4d85-ea38-4a4b-bbe6-e355946fdfb0\n+-------------+-----------+---------+-----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+-----------+--------------+\n| | | | | default |\n| tcp | 22 | 22 | 0.0.0.0\/0 | |\n| | | | | default |\n| icmp | -1 | -1 | 0.0.0.0\/0 | |\n+-------------+-----------+---------+-----------+--------------+<\/pre>\n<p class=\"brush: bash; gutter: true; first-line: 1\">I connect to my instance, the username by default is cirros<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">root@node-3:~# ip netns exec qrouter-0c67b78a-93d4-417c-9ad3-3b29e1480934 ssh cirros@192.168.111.3 -v\nOpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014\ndebug1: Reading configuration data \/etc\/ssh\/ssh_config\ndebug1: \/etc\/ssh\/ssh_config line 19: Applying options for *\ndebug1: Connecting to 192.168.111.3 [192.168.111.3] port 22.\ndebug1: Connection established.\ndebug1: permanently_set_uid: 0\/0\ndebug1: identity file \/root\/.ssh\/id_rsa type -1\ndebug1: identity file \/root\/.ssh\/id_rsa-cert type -1\ndebug1: identity file \/root\/.ssh\/id_dsa type -1\ndebug1: identity file \/root\/.ssh\/id_dsa-cert type -1\ndebug1: identity file \/root\/.ssh\/id_ecdsa type -1\ndebug1: identity file \/root\/.ssh\/id_ecdsa-cert type -1\ndebug1: identity file \/root\/.ssh\/id_ed25519 type -1\ndebug1: identity file \/root\/.ssh\/id_ed25519-cert type -1\ndebug1: Enabling compatibility mode for protocol 2.0\ndebug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8\ndebug1: Remote protocol version 2.0, remote software version dropbear_2015.67\ndebug1: no match: dropbear_2015.67\ndebug1: SSH2_MSG_KEXINIT sent\ndebug1: SSH2_MSG_KEXINIT received\ndebug1: kex: server-&gt;client aes128-ctr hmac-md5 none\ndebug1: kex: client-&gt;server aes128-ctr hmac-md5 none\ndebug1: sending SSH2_MSG_KEX_ECDH_INIT\ndebug1: expecting SSH2_MSG_KEX_ECDH_REPLY\ndebug1: Server host key: ECDSA 1b:f1:1c:34:13:83:cd:b1:37:a9:e4:32:37:65:91:c4\nThe authenticity of host '192.168.111.3 (192.168.111.3)' can't be established.\nECDSA key fingerprint is 1b:f1:1c:34:13:83:cd:b1:37:a9:e4:32:37:65:91:c4.\nAre you sure you want to continue connecting (yes\/no)? yes<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Type yes, and the <em><strong>password<\/strong><\/em> is <strong><em>cubswin:)<\/em><\/strong><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">Warning: Permanently added '192.168.111.3' (ECDSA) to the list of known hosts.\ndebug1: ssh_ecdsa_verify: signature correct\ndebug1: SSH2_MSG_NEWKEYS sent\ndebug1: expecting SSH2_MSG_NEWKEYS\ndebug1: SSH2_MSG_NEWKEYS received\ndebug1: SSH2_MSG_SERVICE_REQUEST sent\ndebug1: SSH2_MSG_SERVICE_ACCEPT received\ndebug1: Authentications that can continue: publickey,password\ndebug1: Next authentication method: publickey\ndebug1: Trying private key: \/root\/.ssh\/id_rsa\ndebug1: Trying private key: \/root\/.ssh\/id_dsa\ndebug1: Trying private key: \/root\/.ssh\/id_ecdsa\ndebug1: Trying private key: \/root\/.ssh\/id_ed25519\ndebug1: Next authentication method: password\ncirros@192.168.111.3's password: \ndebug1: Authentication succeeded (password).\nAuthenticated to 192.168.111.3 ([192.168.111.3]:22).\ndebug1: channel 0: new [client-session]\ndebug1: Entering interactive session.\ndebug1: Sending environment.\ndebug1: Sending env LANG = en_US.UTF-8\n$ \n$ # \"I am connected to my instance\"\n$<\/pre>\n<p>So now, I am connected to my instance<\/p>\n<p>&nbsp;<\/p>\n<p>Let&#8217;s check if I can ping google<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ ping www.google.com\nPING www.google.com (172.217.18.100): 56 data bytes\n64 bytes from 172.217.18.100: seq=0 ttl=59 time=29.485 ms\n64 bytes from 172.217.18.100: seq=1 ttl=59 time=9.089 ms\n64 bytes from 172.217.18.100: seq=2 ttl=59 time=27.027 ms\n64 bytes from 172.217.18.100: seq=3 ttl=59 time=9.992 ms\n64 bytes from 172.217.18.100: seq=4 ttl=59 time=26.734 ms\n\n<\/pre>\n<p class=\"brush: bash; gutter: true; first-line: 1\">This ended this series. Mirantis made OpenStack very simple to install but it requires good skills in Puppet and Astute if you want to customize the installation (like create a network node role or customize the installation of MySQL database in the controller node for example)<\/p>\n<p class=\"brush: bash; gutter: true; first-line: 1\">In other blogs, I will show you how to add nodes to the Fuel environment to make the cloud more powerful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the two first blogs, I installed the Fuel environment and deployed OpenStack in the Fuel slave nodes and all of that from the Fuel Master node. In this blog, I will show you\u00a0 all the steps to follow in order to create an instance in OpenStack. All is going to be done via the [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":9084,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[955],"tags":[135,956,957],"type_dbi":[],"class_list":["post-9082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","tag-cloud","tag-mirantis","tag-openstack"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3 - 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\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3\" \/>\n<meta property=\"og:description\" content=\"In the two first blogs, I installed the Fuel environment and deployed OpenStack in the Fuel slave nodes and all of that from the Fuel Master node. In this blog, I will show you\u00a0 all the steps to follow in order to create an instance in OpenStack. All is going to be done via the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-12T17:20:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"876\" \/>\n\t<meta property=\"og:image:height\" content=\"466\" \/>\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: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=\"12 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\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\"},\"headline\":\"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3\",\"datePublished\":\"2016-10-12T17:20:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/\"},\"wordCount\":789,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png\",\"keywords\":[\"Cloud\",\"mirantis\",\"openstack\"],\"articleSection\":[\"Cloud\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/\",\"name\":\"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png\",\"datePublished\":\"2016-10-12T17:20:17+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png\",\"width\":876,\"height\":466},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3\"}]},{\"@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\/59554f0d99383431eb6ed427e338952b\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3 - 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\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/","og_locale":"en_US","og_type":"article","og_title":"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3","og_description":"In the two first blogs, I installed the Fuel environment and deployed OpenStack in the Fuel slave nodes and all of that from the Fuel Master node. In this blog, I will show you\u00a0 all the steps to follow in order to create an instance in OpenStack. All is going to be done via the [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/","og_site_name":"dbi Blog","article_published_time":"2016-10-12T17:20:17+00:00","og_image":[{"width":876,"height":466,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png","type":"image\/png"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"headline":"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3","datePublished":"2016-10-12T17:20:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/"},"wordCount":789,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png","keywords":["Cloud","mirantis","openstack"],"articleSection":["Cloud"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/","url":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/","name":"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png","datePublished":"2016-10-12T17:20:17+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IDqRouter-1.png","width":876,"height":466},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-install-mirantis-openstack-9-0-using-virtualbox-part-1-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to install Mirantis OpenStack 9.0 using VirtualBox \u2013 part 3"}]},{"@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\/59554f0d99383431eb6ed427e338952b","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"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\/9082","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=9082"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9082\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/9084"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9082"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}