Skip to content

Instantly share code, notes, and snippets.

@vik-y
Last active December 29, 2023 07:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save vik-y/72694f475f024607b4ac3c79b40c5116 to your computer and use it in GitHub Desktop.
Save vik-y/72694f475f024607b4ac3c79b40c5116 to your computer and use it in GitHub Desktop.
openstack installation steps

Before using this make sure you allocate 6GB. 2 cores

Install openswitch and init a br-int bridge

yum -y install make gcc openssl-devel autoconf automake rpm-build redhat-rpm-config python-devel openssl-devel kernel-devel kernel-debug-devel libtool wget
mkdir -p ~/rpmbuild/SOURCES
wget http://openvswitch.org/releases/openvswitch-2.5.1.tar.gz
cp openvswitch-2.5.1.tar.gz ~/rpmbuild/SOURCES/
tar xfz openvswitch-2.5.1.tar.gz
sed 's/openvswitch-kmod, //g' openvswitch-2.5.1/rhel/openvswitch.spec > openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec
rpmbuild -bb --nocheck ~/openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec
ls -l ~/rpmbuild/RPMS/x86_64/
yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.5.1-1.x86_64.rpm
systemctl start openvswitch.service
chkconfig openvswitch on

# Now that the installation is completed lets add br-int
ovs-vsctl add-br br-int

Please note that this might not work and will require some fixups.

Fixing the above thing, it is important to setup two bridges - one external, another internal and have to patch them using a patch port

ovs-vsctl add-port ovs-vsctl set interface type=patch ovs-vsctl set interface options:peer=

Create an external bridge

# Create interl and external bridges 
ovs-vsctl add-br br-enp0s8
ovs-vsctl add-br br-int

# Create new ports on both the bridges for patching 
ovs-vsctl add-port br-enp0s8 int-patch 
ovs-vsctl add-port br-int enp0s8-patch

# Mark the newly created interfaces as patch interfaces
ovs-vsctl set interface int-patch type=patch
ovs-vsctl set interface enp0s8-patch type=patch

# Connect the patch interfaces 
ovs-vsctl set interface int-patch options:peer=enp0s8-patch
ovs-vsctl set interface enp0s8-patch options:peer=int-patch 

# I am sure there is a better way to do this. Find it out. 
# Now try attaching a docker container/VM to br-int and check if it can be reached from the outside world or not. 
# If it can be reached then your setup was successful. 

// TOWRITE Configure network and bridges properly. Take help of the article below

# This is the most important part of your network configuration. Here, you must
# select your network mappings. Please, ensure you understand OpenStack
# network philosophy before you configure this.
# Our defaults assumes a flat network configuration with external routers connected
# to an openvswitch br-enp0s9 switch. Change those defaults to suit your network or
# your system will not have a viable network service.
integration_bridge="br-int"
# The bridge_mappings must be set in the form:
# physical_network_name01:bridge_interface01,physical_network_name02:bridge_interface02
# Sample:
# bridge_mappings="physical01:br-eth1,physical02:br-enp0s9,physical03:br-em2"
# VERY IMPORTANT NOTE: Ensure your OVS Bridges are created before you install openstack,
# including br-int and all bridges defined in the "bridge_mappings" variable. Fail
# to do this, and Neutron will be unable to function properlly.
bridge_mappings="physical01:br-enp0s9"

Enable rhel repositories

sudo yum install epel-release
# Verify using 
yum repolist

Fix the python keyring error

wget ftp://mirror.switch.ch/pool/4/mirror/centos/7.3.1611/cloud/x86_64/openstack-mitaka/common/python-keyring-5.7.1-1.el7.noarch.rpm
sudo rpm -i --replacefiles python-keyring-5.7.1-1.el7.noarch.rpm 
sudo yum install -y python-keyring

# For some reason the solution listed above was having issues 
yum remove python-keyring
yum install python-keyring 
# This did the job I don't know why or how. 

Install python-zmq

yum erase -f zeromq
yum versionlock clear
yum install python-zmq

Enable openstack repositores

yum install centos-release-openstack-ocata

Now disable heat installation by going into main-config file.

sudo useradd gnocchi
git clone https://vik_y@bitbucket.org/vik_y/openstack-ocata-installer.git
./main-installer.sh install 

Test this and update Everything worked well and installation went through fine.

Now go and create a new network from admin section. Assign a new subnet to the network.

Now create the new VM. Make sure you tick the create new volume option as "No".

This instruction set is mostly to get started with the installation on server by following the documentation properly.

To test on virtualbox : Create a Virtual Machine with 8GB RAM. 25 GB disk - for os installation 25 GB disk to use as a cinder volume.

Install your centos 7 server with 64 bits and select the packages for a basic infrastructure server. You can pick the graphics environment too but it is not mandatory.

# Install Centos Ocata Repos 
yum -y install centos-release-openstack-ocata
# Install RHEL Repos 
yum -y install https://rdoproject.org/repos/rdo-release.rpm
# Install EPEL Repos
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

WARNING: This is VERY important!. Make sure you have the following items configured in /etc/sysctl.conf:

net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0

yum -y install openvswitch

service openvswitch start

chkconfig openvswitch on
yum -y upgrade
reboot

Then, create the bridges:

First step: br-int (OpenStack integration switch/bridge):

ovs-vsctl add-br br-int
// Change depending on the interface 
Next step: br-enp0s9 (OpenStack networks switch/bridge). Example for "enp0s9" interface:

ovs-vsctl add-br br-enp0s9
ovs-vsctl add-port br-enp0s9 enp0s9
// The above command might break the internet on your server 

Fix it by :
sudo ifconfig enp0s9 
sudo ifconfig enp0s9 0 
sudo ifconfig br-enp0s9 192.168.0.131 netmask 255.255.255.0
sudo route add default gw 192.168.0.1 br-enp0s9

// Now your internet will start working and your openstack network requirement is 
also setup properly. Let's start working with the VMs now and see how we can proceed further 

// One additional step might be required for external connectivity 
// Patching the br-int and br-enp0s9

### Please note patching is not required
### Openstack will do the patching automatically 
### The patching part below is just here for reference. 
# Create new ports on both the bridges for patching 
ovs-vsctl add-port br-enp0s9 int-patch 
ovs-vsctl add-port br-int enp0s9-patch

# Mark the newly created interfaces as patch interfaces
ovs-vsctl set interface int-patch type=patch
ovs-vsctl set interface enp0s9-patch type=patch

# Connect the patch interfaces 
ovs-vsctl set interface int-patch options:peer=enp0s9-patch
ovs-vsctl set interface enp0s9-patch options:peer=int-patch
### Patch part reference ends here 
```sh
// OVS is ready and all configured now. 

// Modify the config file and install services in following order: 

keystone
glance 
cinder
neutron
nova

nova_without_compute="no" ceilometer_without_compute="no"

// Cinder configuration is important and might be a challenge because I haven't done it before. 
Refer to this. 
https://github.com/tigerlinux/openstack-ocata-installer-centos7/blob/master/DOCS/README-FIRST.md#cinder
# Check where the 2nd disk is mounted on. 
# Generally the primary disk will be mounted on /dev/sda
# In my case the secondary disk was /dev/sdb
# So I ran the following commands to create my block storage volume.
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
# NOTE: This would delete anything stored in the /dev/sdb disk

flat_network_create="yes"

@vik-y
Copy link
Author

vik-y commented Sep 10, 2017

ALERT !!.. PLEASE READ CAREFULLY (THIS MESSAGE WILL BE ON SCREEN FOR 20 SECONDS)
For any additional COMPUTE NODE you add in your OpenStack deployment, please
run the following command IN YOUR NOVA CONTROLLER NODE:
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

@vik-y
Copy link
Author

vik-y commented Sep 12, 2017

Port binding failed

2017-09-12 01:19:53.848 2105 ERROR nova.compute.manager [instance: 08c6e596-88c2-4f77-ba04-23607571e27d] PortBindingFailed: Binding failed for port 9d4a96d3-d927-4c44-a82f-ac8ed6a626cf, please check neutron logs for more information.

2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager [req-9852ccf6-e53e-4e9f-bb07-6eca8bb46427 d9cf046190c74464a21615fbb836ed17 45c5d10dbd834ca7b33eb0b19458155b - - -] Instance failed network setup after 1 attempt(s)
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager Traceback (most recent call last):
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1400, in _allocate_network_async
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager bind_host_id=bind_host_id)
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 873, in allocate_for_instance
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager bind_host_id, dhcp_options, available_macs)
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 992, in update_ports_for_instance
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager vif.destroy()
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in exit
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager self.force_reraise()
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager six.reraise(self.type
, self.value, self.tb)
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 962, in _update_ports_for_instance
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager port_client, instance, port_id, port_req_body)
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 429, in _update_port
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager _ensure_no_port_binding_failure(port)
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 177, in _ensure_no_port_binding_failure
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager raise exception.PortBindingFailed(port_id=port['id'])
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager PortBindingFailed: Binding failed for port a3c60623-b888-46be-a4b0-3392a0f095b7, please check neutron logs for more information.
2017-09-12 01:12:51.559 2105 ERROR nova.compute.manager
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [req-9852ccf6-e53e-4e9f-bb07-6eca8bb46427 d9cf046190c74464a21615fbb836ed17 45c5d10dbd834ca7b33eb0b19458155b - - -] [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] Instance failed to spawn
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] Traceback (most recent call last):
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2125, in _build_resources
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] yield resources
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1931, in _build_and_run_instance
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] block_device_info=block_device_info)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2726, in spawn
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] block_device_info=block_device_info)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3133, in _create_image
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] fallback_from_host)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3252, in _create_and_inject_local_root
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] self._inject_data(backend, instance, injection_info)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3040, in _inject_data
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] info=str(injection_info), instance=instance)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "", line 22, in repr
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/model.py", line 560, in repr
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] return self._sync_wrapper(fn, *args, **kwargs)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/model.py", line 539, in _sync_wrapper
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] self.wait()
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/model.py", line 571, in wait
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] self[:] = self._gt.wait()
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 175, in wait
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] return self._exit_event.wait()
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 121, in wait
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] return hubs.get_hub().switch()
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 294, in switch
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] return self.greenlet.switch()
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 214, in main
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] result = function(*args, **kwargs)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/utils.py", line 1087, in context_wrapper
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] return func(*args, **kwargs)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1417, in _allocate_network_async
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] six.reraise(*exc_info)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 1400, in _allocate_network_async
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] bind_host_id=bind_host_id)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 873, in allocate_for_instance
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] bind_host_id, dhcp_options, available_macs)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 992, in update_ports_for_instance
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] vif.destroy()
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in exit
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] self.force_reraise()
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] six.reraise(self.type
, self.value, self.tb)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 962, in _update_ports_for_instance
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] port_client, instance, port_id, port_req_body)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 429, in _update_port
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] _ensure_no_port_binding_failure(port)
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] File "/usr/lib/python2.7/site-packages/nova/network/neutronv2/api.py", line 177, in _ensure_no_port_binding_failure
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] raise exception.PortBindingFailed(port_id=port['id'])
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f] PortBindingFailed: Binding failed for port a3c60623-b888-46be-a4b0-3392a0f095b7, please check neutron logs for more information.
2017-09-12 01:12:51.561 2105 ERROR nova.compute.manager [instance: 328fb813-9420-4cbb-9f16-f31c9016ff9f]

@vik-y
Copy link
Author

vik-y commented Sep 12, 2017

IMPORTANT:

I think I missed the network configuration and that's why VMs are not working properly

# This is the most important part of your network configuration. Here, you must
# select your network mappings. Please, ensure you understand OpenStack
# network philosophy before you configure this.
# Our defaults assumes a flat network configuration with external routers connected
# to an openvswitch br-enp0s9 switch. Change those defaults to suit your network or
# your system will not have a viable network service.
integration_bridge="br-int"
# The bridge_mappings must be set in the form:
# physical_network_name01:bridge_interface01,physical_network_name02:bridge_interface02
# Sample:
# bridge_mappings="physical01:br-eth1,physical02:br-enp0s9,physical03:br-em2"
# VERY IMPORTANT NOTE: Ensure your OVS Bridges are created before you install openstack,
# including br-int and all bridges defined in the "bridge_mappings" variable. Fail
# to do this, and Neutron will be unable to function properlly.
bridge_mappings="physical01:br-enp0s9"

@vik-y
Copy link
Author

vik-y commented Nov 28, 2017

I followed the instructions given in Notes.txt. I created two bridges on my system : br-int and br-em1. em1 is the interface on my provider network.

Then I did the following:

ovs-vsctl add-br br-em1
ovs-vsctl add-port br-em1 em1

But I think after this step we also need to patch br-int and br-em1 for external connectivity in the VMs right? I ran the commands given below to do the patching.

@vik-y
Copy link
Author

vik-y commented Nov 28, 2017

I followed the instructions given in Notes.txt. I created two bridges on my system : br-int and br-em1. em1 is the interface on my provider network.

Then I did the following:

ovs-vsctl add-br br-em1
ovs-vsctl add-port br-em1 em1

But I think after this step we also need to patch br-int and br-em1 for external connectivity in the VMs right? I ran the commands given below to do the patching.

# Create new ports on both the bridges for patching 
ovs-vsctl add-port br-em1 int-patch 
ovs-vsctl add-port br-int em1-patch

# Mark the newly created interfaces as patch interfaces
ovs-vsctl set interface int-patch type=patch
ovs-vsctl set interface em1-patch type=patch

# Connect the patch interfaces 
ovs-vsctl set interface int-patch options:peer=em1-patch
ovs-vsctl set interface em1-patch options:peer=int-patch 

I don't see the script doing the patching anywhere. Isn't this necessary for external connectivity?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment