Skip to content

Instantly share code, notes, and snippets.

@arcolife
Last active April 26, 2020 21:18
Show Gist options
  • Save arcolife/6190442fdffee7abcc7044f3387eb6ae to your computer and use it in GitHub Desktop.
Save arcolife/6190442fdffee7abcc7044f3387eb6ae to your computer and use it in GitHub Desktop.
openstack 10 (newton) network router create

create network / subnet / image / flavor

# create a net and a subnet
i=1;
while [ $i -lt 51 ]; do 
  neutron net-create scalenet$i --shared; 
  j=0; 
  while [ $j -lt 4 ]; do 
    neutron subnet-create scalenet$i $i.$j.0.0/16; 
    j=$[$j+1]; 
  done; 
  i=$[$i+1]; 
done

neutron --os-username admin net-list
openstack domain list admin_domain

openstack role assignment list --user admin --project scaleadmin10 --names
 
i=1;while [ $i -lt 201 ]; do openstack user create --domain admin_domain   --password password$i scaleuser$i; i=$[$i+1]; done

i=1;while [ $i -lt 201 ]; do openstack role add --project scaleadmin$i --user admin admin; i=$[$i+1];echo "Added admin:admin user:role to project:scaleadmin$i"; done

openstack network create  --provider-network-type flat --provider-physical-network datacentre public
openstack subnet create --network public --subnet-range 192.0.2.0/24  --allocation-pool start=192.0.2.50,end=192.0.2.240 --no-dhcp public-sub

glance image-create --name "ubuntu" --disk-format iso             --container-format bare             --file ubuntu-16.04.3-desktop-amd64.iso
nova flavor-create m1.medium auto 2048 20 4 --swap 2048 --is-public True


[heat-admin@overcloud-controller-0 ~]$ openstack network show public
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        | nova                                 |
| created_at                | 2017-11-02T11:48:11Z                 |
| description               |                                      |
| id                        | 797dd76d-aca0-4a4e-acb4-5c5b5efbe505 |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | False                                |
| mtu                       | 1496                                 |
| name                      | public                               |
| port_security_enabled     | True                                 |
| project_id                | a5778a40001b49e3a6e21c11ebaaaaf8     |
| project_id                | a5778a40001b49e3a6e21c11ebaaaaf8     |
| provider:network_type     | flat                                 |
| provider:physical_network | datacentre                           |
| provider:segmentation_id  | None                                 |
| qos_policy_id             | None                                 |
| revision_number           | 6                                    |
| router:external           | External                             |
| shared                    | False                                |
| status                    | ACTIVE                               |
| subnets                   | 2893960a-74a3-4582-8a50-dbd3a5795706 |
| tags                      | []                                   |
| updated_at                | 2017-11-02T11:53:08Z                 |
+---------------------------+--------------------------------------+
[heat-admin@overcloud-controller-0 ~]$ openstack network show scalenet10
+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                     | Value                                                                                                                                                  |
+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up            | UP                                                                                                                                                     |
| availability_zone_hints   |                                                                                                                                                        |
| availability_zones        | nova                                                                                                                                                   |
| created_at                | 2017-10-19T05:10:05Z                                                                                                                                   |
| description               |                                                                                                                                                        |
| id                        | aee32462-f555-4392-891f-7a4600946759                                                                                                                   |
| ipv4_address_scope        | None                                                                                                                                                   |
| ipv6_address_scope        | None                                                                                                                                                   |
| mtu                       | 1446                                                                                                                                                   |
| name                      | scalenet10                                                                                                                                             |
| port_security_enabled     | True                                                                                                                                                   |
| project_id                | a5778a40001b49e3a6e21c11ebaaaaf8                                                                                                                       |
| project_id                | a5778a40001b49e3a6e21c11ebaaaaf8                                                                                                                       |
| provider:network_type     | vxlan                                                                                                                                                  |
| provider:physical_network | None                                                                                                                                                   |
| provider:segmentation_id  | 62                                                                                                                                                     |
| qos_policy_id             | None                                                                                                                                                   |
| revision_number           | 11                                                                                                                                                     |
| router:external           | Internal                                                                                                                                               |
| shared                    | True                                                                                                                                                   |
| status                    | ACTIVE                                                                                                                                                 |
| subnets                   | 3413e300-3b65-44ce-b351-8794bad587dd, 52fb1ef6-e47e-449c-a556-a371226eb830, 8e7dec7b-078a-4fa3-b98d-77449babd85d, d3ba3c63-f3d0-41f5-9caf-5a47cd39624c |
| tags                      | []                                                                                                                                                     |
| updated_at                | 2017-10-19T05:10:11Z                                                                                                                                   |
+---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+

create router in public network

# create router r1
openstack router create r1
 
openstack router set --external-gateway public r1
neutron router-gateway-set r1 public


for all subnets in that net:
    add interface from r1 to that subnet
   

pick a network

openstack network list | grep scalenet10
| aee32462-f555-4392-891f-7a4600946759 | scalenet10 | 3413e300-3b65-44ce-b351-8794bad587dd, 52fb1ef6-e47e-449c-a556-a371226eb830, 8e7dec7b-078a-4fa3-b98d-77449babd85d, d3ba3c63-f3d0-41f5-9caf-5a47cd39624c |

make sure the network is owned by the same tenant as the vm.

in our case, we formed

=> network id is aee32462-f555-4392-891f-7a4600946759 for scalenet10

create a vm with that network or find existing vms in that network

# create
[heat-admin@overcloud-controller-0 ~]$ openstack server create --os-project-name admin --image cirros1 --nic net-id=aee32462-f555-4392-891f-7a4600946759  --flavor m1.medium scalevm777
+--------------------------------------+--------------------------------------------------+
| Field                                | Value                                            |
+--------------------------------------+--------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                           |
| OS-EXT-AZ:availability_zone          |                                                  |
| OS-EXT-SRV-ATTR:host                 | None                                             |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | None                                             |
| OS-EXT-SRV-ATTR:instance_name        |                                                  |
| OS-EXT-STS:power_state               | NOSTATE                                          |
| OS-EXT-STS:task_state                | scheduling                                       |
| OS-EXT-STS:vm_state                  | building                                         |
| OS-SRV-USG:launched_at               | None                                             |
| OS-SRV-USG:terminated_at             | None                                             |
| accessIPv4                           |                                                  |
| accessIPv6                           |                                                  |
| addresses                            |                                                  |
| adminPass                            | EuMqhQPaqWm5                                     |
| config_drive                         |                                                  |
| created                              | 2017-11-14T11:32:33Z                             |
| flavor                               | m1.medium (ff92df77-3081-427d-a925-1f7acd67a6da) |
| hostId                               |                                                  |
| id                                   | 16319499-174f-48f1-a4fa-1f8c1a407bb9             |
| image                                | cirros1 (646641ba-091c-48bc-b690-8220637dd1d5)   |
| key_name                             | None                                             |
| name                                 | scalevm777                                       |
| os-extended-volumes:volumes_attached | []                                               |
| progress                             | 0                                                |
| project_id                           | a5778a40001b49e3a6e21c11ebaaaaf8                 |
| properties                           |                                                  |
| security_groups                      | [{u'name': u'default'}]                          |
| status                               | BUILD                                            |
| updated                              | 2017-11-14T11:32:33Z                             |
| user_id                              | dbf2aa966fb2437aa3b3d0dd71bd8c60                 |
+--------------------------------------+--------------------------------------------------+


OR

# find vm ID throguh all tenants
[heat-admin@overcloud-controller-0 ~]$ nova list --all-tenants | grep scalevm.*scalenet10
...
| eeeb50d9-487f-45b5-b6c8-978e94f17927 | scalevm1                   | cb7bee6fdef24c54bd183bd242e347a8 | ACTIVE | -          | Running     | scalenet10=10.1.0.12              |
...
| 50e64763-08f0-4bfd-ac3a-8d8cd8e9463d | scalevm99                  | 191165f3a2e44c109c50c535abd9ac67 | ACTIVE | -          | Running     | scalenet10=10.1.0.110             |
...

# find vm ID through vm name
[heat-admin@overcloud-controller-0 ~]$ nova list --all-tenants | grep scalevm99
| 50e64763-08f0-4bfd-ac3a-8d8cd8e9463d | scalevm99                  | 191165f3a2e44c109c50c535abd9ac67 | ACTIVE | -          | Running     | scalenet10=10.1.0.110             |

show vm details and get IP

..using VM's ID

[heat-admin@overcloud-controller-0 ~]$ nova show 50e64763-08f0-4bfd-ac3a-8d8cd8e9463d
+--------------------------------------+----------------------------------------------------------+
| Property                             | Value                                                    |
+--------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                   |
| OS-EXT-AZ:availability_zone          | nova                                                     |
| OS-EXT-SRV-ATTR:host                 | overcloud-compute-2.localdomain                          |
| OS-EXT-SRV-ATTR:hostname             | scalevm99                                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-compute-2.localdomain                          |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000299                                        |
| OS-EXT-SRV-ATTR:kernel_id            |                                                          |
| OS-EXT-SRV-ATTR:launch_index         | 0                                                        |
| OS-EXT-SRV-ATTR:ramdisk_id           |                                                          |
| OS-EXT-SRV-ATTR:reservation_id       | r-so89cwqa                                               |
| OS-EXT-SRV-ATTR:root_device_name     | /dev/vda                                                 |
| OS-EXT-SRV-ATTR:user_data            | -                                                        |
| OS-EXT-STS:power_state               | 1                                                        |
| OS-EXT-STS:task_state                | -                                                        |
| OS-EXT-STS:vm_state                  | active                                                   |
| OS-SRV-USG:launched_at               | 2017-10-19T05:56:20.000000                               |
| OS-SRV-USG:terminated_at             | -                                                        |
| accessIPv4                           |                                                          |
| accessIPv6                           |                                                          |
| config_drive                         |                                                          |
| created                              | 2017-10-19T05:56:11Z                                     |
| description                          | scalevm99                                                |
| flavor                               | m1.nano (0)                                              |
| hostId                               | b27a154d46c0c7e780ffd8d2a52a1c261dbf4782277851f400afd2aa |
| host_status                          | UP                                                       |
| id                                   | 50e64763-08f0-4bfd-ac3a-8d8cd8e9463d                     |
| image                                | cirros1 (646641ba-091c-48bc-b690-8220637dd1d5)           |
| key_name                             | -                                                        |
| locked                               | False                                                    |
| metadata                             | {}                                                       |
| name                                 | scalevm99                                                |
| os-extended-volumes:volumes_attached | []                                                       |
| progress                             | 0                                                        |
| scalenet10 network                   | 10.1.0.110                                               |
| security_groups                      | default                                                  |
| status                               | ACTIVE                                                   |
| tags                                 | []                                                       |
| tenant_id                            | 191165f3a2e44c109c50c535abd9ac67                         |
| updated                              | 2017-10-19T05:56:21Z                                     |
| user_id                              | dbf2aa966fb2437aa3b3d0dd71bd8c60                         |
+--------------------------------------+----------------------------------------------------------+

get port ID for that VM ID

[heat-admin@overcloud-controller-0 ~]$ openstack port list | grep 10.1.1.110
| cfb7248c-e08f-47d7-88db-4a1df02fa7f3 |      | fa:16:3e:bf:fe:7c | ip_address='10.1.1.110', subnet_id='3413e300-3b65-44ce-b351-8794bad587dd' |

port ID of VM => cfb7248c-e08f-47d7-88db-4a1df02fa7f3

create floating ip

..and associate port ID of VM with floating IP

openstack floating ip  create public

[heat-admin@overcloud-controller-0 ~]$ openstack floating ip  list
+--------------------------------------+---------------------+------------------+------+
| ID                                   | Floating IP Address | Fixed IP Address | Port |
+--------------------------------------+---------------------+------------------+------+
| 3b42c9ca-f3bd-442c-be04-03346258eb11 | 192.0.2.52          | None             | None |
+--------------------------------------+---------------------+------------------+------+

[heat-admin@overcloud-controller-0 ~]$ neutron floatingip-associate 3b42c9ca-f3bd-442c-be04-03346258eb11 cb590bf7-70bf-42cc-be61-3965a37e0a44
Associated floating IP 3b42c9ca-f3bd-442c-be04-03346258eb11

[heat-admin@overcloud-controller-0 ~]$ openstack floating ip  list
+--------------------------------------+---------------------+------------------+--------------------------------------+
| ID                                   | Floating IP Address | Fixed IP Address | Port                                 |
+--------------------------------------+---------------------+------------------+--------------------------------------+
| 3b42c9ca-f3bd-442c-be04-03346258eb11 | 192.0.2.52          | 10.1.1.141       | 3c3716c0-c959-4249-b4ff-cef4a4cd224e |
+--------------------------------------+---------------------+------------------+--------------------------------------+

[heat-admin@overcloud-controller-0 ~]$ nova show  6192ad58-7e20-4682-95f9-8e7cf3885ce8
+--------------------------------------+----------------------------------------------------------+
| Property                             | Value                                                    |
+--------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                   |
| OS-EXT-AZ:availability_zone          | nova                                                     |
| OS-EXT-SRV-ATTR:host                 | overcloud-compute-6.localdomain                          |
| OS-EXT-SRV-ATTR:hostname             | ubuntu777                                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | overcloud-compute-6.localdomain                          |
| OS-EXT-SRV-ATTR:instance_name        | instance-000003c8                                        |
| OS-EXT-SRV-ATTR:kernel_id            |                                                          |
| OS-EXT-SRV-ATTR:launch_index         | 0                                                        |
| OS-EXT-SRV-ATTR:ramdisk_id           |                                                          |
| OS-EXT-SRV-ATTR:reservation_id       | r-72yhdlwq                                               |
| OS-EXT-SRV-ATTR:root_device_name     | /dev/hda                                                 |
| OS-EXT-SRV-ATTR:user_data            | -                                                        |
| OS-EXT-STS:power_state               | 1                                                        |
| OS-EXT-STS:task_state                | -                                                        |
| OS-EXT-STS:vm_state                  | active                                                   |
| OS-SRV-USG:launched_at               | 2017-11-07T10:19:08.000000                               |
| OS-SRV-USG:terminated_at             | -                                                        |
| accessIPv4                           |                                                          |
| accessIPv6                           |                                                          |
| config_drive                         |                                                          |
| created                              | 2017-11-07T10:18:19Z                                     |
| description                          | ubuntu777                                                |
| flavor                               | m1.medium (ff92df77-3081-427d-a925-1f7acd67a6da)         |
| hostId                               | 3fb45ae6a6c3b3fa37f7f170d298c458f50dad2749c7500e753aac8a |
| host_status                          | UP                                                       |
| id                                   | 6192ad58-7e20-4682-95f9-8e7cf3885ce8                     |
| image                                | ubuntu (7edbaa81-e60b-4318-9b08-11c1734da6e7)            |
| key_name                             | -                                                        |
| locked                               | False                                                    |
| metadata                             | {}                                                       |
| name                                 | ubuntu777                                                |
| os-extended-volumes:volumes_attached | []                                                       |
| progress                             | 0                                                        |
| scalenet10 network                   | 10.1.1.141, 192.0.2.52                                   |
| security_groups                      | default                                                  |
| status                               | ACTIVE                                                   |
| tags                                 | []                                                       |
| tenant_id                            | a5778a40001b49e3a6e21c11ebaaaaf8                         |
| updated                              | 2017-11-07T10:19:08Z                                     |
| user_id                              | dbf2aa966fb2437aa3b3d0dd71bd8c60                         |
+--------------------------------------+----------------------------------------------------------+

ping or ssh to vm

[heat-admin@overcloud-controller-0 ~]$ sudo ping 10.1.1.185
PING 10.1.1.185 (10.1.1.185) 56(84) bytes of data.
^C
--- 10.1.1.185 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

[heat-admin@overcloud-controller-0 ~]$ nova ssh 16319499-174f-48f1-a4fa-1f8c1a407bb9  
ssh: connect to host 192.0.2.52 port 22: No route to host

[heat-admin@overcloud-controller-0 ~]$ nova get-spice-console 16319499-174f-48f1-a4fa-1f8c1a407bb9 spice-html5
ERROR (BadRequest): Unavailable console type spice-html5. (HTTP 400) (Request-ID: req-262c30ee-c207-42b3-8634-a52f9b458c1b)

add permission to security group

# get tenenat/project ID for a VM and list security group settings 

[heat-admin@overcloud-controller-0 ~]$ nova show scalevm777 | grep tenant_id
| tenant_id                            | a5778a40001b49e3a6e21c11ebaaaaf8                         |

[heat-admin@overcloud-controller-0 ~]$ openstack security group list | grep a5778a40001b49e3a6e21c11ebaaaaf8
| b036ee5a-7f69-4ec8-8325-f26216a2e9bb | default | Default security group | a5778a40001b49e3a6e21c11ebaaaaf8 |

# add pingability
[heat-admin@overcloud-controller-0 ~]$ [heat-admin@overcloud-controller-0 ~]$ openstack security group rule create b036ee5a-7f69-4ec8-8325-f26216a2e9bb --protocol icmp --src-ip 0.0.0.0/0
HttpException: Conflict

# old command to add ping 
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

# add ssh-ability
[heat-admin@overcloud-controller-0 ~]$ openstack security group rule create b036ee5a-7f69-4ec8-8325-f26216a2e9bb --protocol tcp --dst-port 22:22 --src-ip 0.0.0.0/0
HttpException: Conflict

# old command to add ssh
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0


[heat-admin@overcloud-controller-0 ~]$ openstack security group show b036ee5a-7f69-4ec8-8325-f26216a2e9bb
+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field           | Value                                                                                                                                                                    |
+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at      | 2017-09-25T09:12:55Z                                                                                                                                                     |
| description     | Default security group                                                                                                                                                   |
| id              | b036ee5a-7f69-4ec8-8325-f26216a2e9bb                                                                                                                                     |
| name            | default                                                                                                                                                                  |
| project_id      | a5778a40001b49e3a6e21c11ebaaaaf8                                                                                                                                         |
| project_id      | a5778a40001b49e3a6e21c11ebaaaaf8                                                                                                                                         |
| revision_number | 3                                                                                                                                                                        |
| rules           | created_at='2017-09-25T09:12:55Z', direction='ingress', ethertype='IPv6', id='4a6933a8-ebed-4e63-a59c-570c27acb2bc', project_id='a5778a40001b49e3a6e21c11ebaaaaf8',      |
|                 | remote_group_id='b036ee5a-7f69-4ec8-8325-f26216a2e9bb', revision_number='1', updated_at='2017-09-25T09:12:55Z'                                                           |
|                 | created_at='2017-09-25T09:12:55Z', direction='ingress', ethertype='IPv4', id='7f3009b1-0a53-4805-8e49-99eead1cf973', project_id='a5778a40001b49e3a6e21c11ebaaaaf8',      |
|                 | remote_group_id='b036ee5a-7f69-4ec8-8325-f26216a2e9bb', revision_number='1', updated_at='2017-09-25T09:12:55Z'                                                           |
|                 | created_at='2017-09-25T09:12:55Z', direction='egress', ethertype='IPv4', id='b3ef80df-0021-42c9-bf8e-8d648cd7b31e', project_id='a5778a40001b49e3a6e21c11ebaaaaf8',       |
|                 | revision_number='1', updated_at='2017-09-25T09:12:55Z'                                                                                                                   |
|                 | created_at='2017-11-15T09:48:36Z', direction='ingress', ethertype='IPv4', id='bd886565-2fab-493d-90b1-223986b5df65', port_range_max='22', port_range_min='22',           |
|                 | project_id='a5778a40001b49e3a6e21c11ebaaaaf8', protocol='tcp', remote_ip_prefix='0.0.0.0/0', revision_number='1', updated_at='2017-11-15T09:48:36Z'                      |
|                 | created_at='2017-09-25T09:12:55Z', direction='egress', ethertype='IPv6', id='da49813b-d9cb-4027-a00d-0e051f968bab', project_id='a5778a40001b49e3a6e21c11ebaaaaf8',       |
|                 | revision_number='1', updated_at='2017-09-25T09:12:55Z'                                                                                                                   |
|                 | created_at='2017-11-15T09:46:12Z', direction='ingress', ethertype='IPv4', id='f3d245e8-80e5-4f89-922c-7a47605c6b44', project_id='a5778a40001b49e3a6e21c11ebaaaaf8',      |
|                 | protocol='icmp', remote_ip_prefix='0.0.0.0/0', revision_number='1', updated_at='2017-11-15T09:46:12Z'                                                                    |
| updated_at      | 2017-11-15T09:48:36Z                                                                                                                                                     |
+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[heat-admin@overcloud-controller-0 ~]$ ssh-keygen -q -N ""
[heat-admin@overcloud-controller-0 ~]$ openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

list endpoints

[heat-admin@overcloud-controller-0 ~]$ openstack endpoint list > endpoints.out

list router ip address details

[heat-admin@overcloud-controller-0 ~]$ sudo ip netns exec qrouter-a9c983be-4aec-4dae-a8f1-1f9a8592a1d7 ip address