88a6c92dc7
Move networking-ovn/vagrant into neutron/tools/ovn_vagrant Also added two sample local.conf files for a DB-only and VTEP nodes. Co-Authored-By: zhangyanxian <zhangyanxianmail@163.com> Co-Authored-By: chen-li <shchenli@cn.ibm.com> Co-Authored-By: Russell Bryant <rbryant@redhat.com> Co-Authored-By: Kyle Mestery <mestery@mestery.com Co-Authored-By: Miguel Angel Ajo <majopela@redhat.com> Co-Authored-By: Richard Theis <rtheis@us.ibm.com> Co-Authored-By: JUNJIE NAN <nanjj@cn.ibm.com> Co-Authored-By: Flavio Fernandes <flavio@flaviof.com> Co-Authored-By: John Kasperski <jckasper@us.ibm.com> Co-Authored-By: Matthew Kassawara <mkassawara@gmail.com> Co-Authored-By: venkatamahesh <venkatamaheshkotha@gmail.com> Co-Authored-By: Tong Li <litong01@us.ibm.com> Co-Authored-By: venkata anil <anilvenkata@redhat.com> Co-Authored-By: Vu Cong Tuan <tuanvc@vn.fujitsu.com> Co-Authored-By: RYAN D. MOATS <rmoats@us.ibm.com> Change-Id: I12966d5548a60b46edd5c84ee0035eb11671fd8c Partially-Implements: blueprint neutron-ovn-merge
104 lines
3.7 KiB
Bash
104 lines
3.7 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Script Arguments:
|
|
# $1 - ovn-controller IP address
|
|
# $2 - ovn-db IP address
|
|
OVN_CONTROLLER_IP=$1
|
|
OVN_DB_IP=$2
|
|
|
|
cp neutron/devstack/ovn-compute-local.conf.sample devstack/local.conf
|
|
sed -i -e 's/<IP address of host running everything else>/'$OVN_CONTROLLER_IP'/g' devstack/local.conf
|
|
|
|
sudo umount /opt/stack/data/nova/instances
|
|
|
|
# Get the IP address
|
|
if ip a | grep enp0 ; then
|
|
ipaddress=$(ip -4 addr show enp0s8 | grep -oP "(?<=inet ).*(?=/)")
|
|
else
|
|
ipaddress=$(ip -4 addr show eth1 | grep -oP "(?<=inet ).*(?=/)")
|
|
fi
|
|
|
|
# Fixup HOST_IP with the local IP address
|
|
sed -i -e 's/<IP address of current host>/'$ipaddress'/g' devstack/local.conf
|
|
|
|
# Adjust some things in local.conf
|
|
cat << DEVSTACKEOF >> devstack/local.conf
|
|
|
|
# Set this to the address of the main DevStack host running the rest of the
|
|
# OpenStack services.
|
|
Q_HOST=$1
|
|
HOSTNAME=$(hostname)
|
|
OVN_SB_REMOTE=tcp:$OVN_DB_IP:6642
|
|
OVN_NB_REMOTE=tcp:$OVN_DB_IP:6641
|
|
|
|
# Enable logging to files.
|
|
LOGFILE=/opt/stack/log/stack.sh.log
|
|
|
|
# Use provider network for public.
|
|
Q_USE_PROVIDERNET_FOR_PUBLIC=True
|
|
OVS_PHYSICAL_BRIDGE=br-provider
|
|
PHYSICAL_NETWORK=provider
|
|
|
|
# Until OVN supports NAT, the private network IP address range
|
|
# must not conflict with IP address ranges on the host. Change
|
|
# as necessary for your environment.
|
|
NETWORK_GATEWAY=172.16.1.1
|
|
FIXED_RANGE=172.16.1.0/24
|
|
|
|
ENABLE_CHASSIS_AS_GW=False
|
|
DEVSTACKEOF
|
|
|
|
# Add unique post-config for DevStack here using a separate 'cat' with
|
|
# single quotes around EOF to prevent interpretation of variables such
|
|
# as $Q_DHCP_CONF_FILE.
|
|
|
|
cat << 'DEVSTACKEOF' >> devstack/local.conf
|
|
|
|
# Set the availablity zone name (default is nova) for the DHCP service.
|
|
[[post-config|$Q_DHCP_CONF_FILE]]
|
|
[AGENT]
|
|
availability_zone = nova
|
|
DEVSTACKEOF
|
|
|
|
devstack/stack.sh
|
|
|
|
# Build the provider network in OVN. You can enable instances to access
|
|
# external networks such as the Internet by using the IP address of the host
|
|
# vboxnet interface for the provider network (typically vboxnet1) as the
|
|
# gateway for the subnet on the neutron provider network. Also requires
|
|
# enabling IP forwarding and configuring SNAT on the host. See the README for
|
|
# more information.
|
|
|
|
source /vagrant/provisioning/provider-setup.sh
|
|
|
|
provider_setup
|
|
|
|
# Add host route for the private network, at least until the native L3 agent
|
|
# supports NAT.
|
|
# FIXME(mkassawara): Add support for IPv6.
|
|
source devstack/openrc admin admin
|
|
ROUTER_GATEWAY=`neutron port-list -c fixed_ips -c device_owner | grep router_gateway | awk -F'ip_address' '{ print $2 }' | cut -f3 -d\"`
|
|
sudo ip route add $FIXED_RANGE via $ROUTER_GATEWAY
|
|
|
|
# NFS Setup
|
|
sudo apt-get update
|
|
sudo apt-get install -y nfs-common
|
|
sudo mkdir -p /opt/stack/data/nova/instances
|
|
sudo chmod o+x /opt/stack/data/nova/instances
|
|
sudo chown vagrant:vagrant /opt/stack/data/nova/instances
|
|
sudo sh -c "echo \"$OVN_CONTROLLER_IP:/opt/stack/data/nova/instances /opt/stack/data/nova/instances nfs defaults 0 0\" >> /etc/fstab"
|
|
sudo mount /opt/stack/data/nova/instances
|
|
sudo chown vagrant:vagrant /opt/stack/data/nova/instances
|
|
sudo sh -c "echo \"listen_tls = 0\" >> /etc/libvirt/libvirtd.conf"
|
|
sudo sh -c "echo \"listen_tcp = 1\" >> /etc/libvirt/libvirtd.conf"
|
|
sudo sh -c "echo -n \"auth_tcp =\" >> /etc/libvirt/libvirtd.conf"
|
|
sudo sh -c 'echo " \"none\"" >> /etc/libvirt/libvirtd.conf'
|
|
sudo sh -c "sed -i 's/env libvirtd_opts\=\"\-d\"/env libvirtd_opts\=\"-d -l\"/g' /etc/init/libvirt-bin.conf"
|
|
sudo sh -c "sed -i 's/libvirtd_opts\=\"\-d\"/libvirtd_opts\=\"\-d \-l\"/g' /etc/default/libvirt-bin"
|
|
sudo /etc/init.d/libvirt-bin restart
|
|
|
|
# Set the OVN_*_DB variables to enable OVN commands using a remote database.
|
|
echo -e "\n# Enable OVN commands using a remote database.
|
|
export OVN_NB_DB=$OVN_NB_REMOTE
|
|
export OVN_SB_DB=$OVN_SB_REMOTE" >> ~/.bash_profile
|