Ian Wells b78c4a3354 Initial VPP ML2 network driver version
This is the first OpenStack commit for a ML2 driver for VPP.  This
contains the driver and a VPP agent that uses the VPP API (via the
python API package) to control VPP, and the driver and agent
communicate with one another via an etcd instance.

This version is (loosely, subject to some tidying and getting it
past the Gerrit tests) based on
http://github.com/iawells/networking-vpp.

Change-Id: I8909ddc56b5c49ec2ee1b25acbff21716eee70f6
Co-Authored-By: Ian Wells <iawells@cisco.com>
Co-Authored-By: Naveen Joy <najoy@cisco.com>
Co-Authored-By: Feng Pan <fpan@redhat.com>
2016-09-15 12:50:28 -07:00

111 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
#set -o xtrace
#Author: Naveen Joy: najoy@cisco.com
#Usage: boot-vm <vm-name> <network-name> [<availability-zon>] [<fixed_ip>]
###Program Variables###
#Cirros Image:
#image=02fffc39-807f-4890-bdff-48d665cca290
#Ubuntu 14.04 Image
image=ff03d4f4-f68a-4a32-9a8e-ce3f142d8a34
flavor=2
devstack_dir=/home/demo/devstack
source $devstack_dir/openrc admin admin
key_name=demo_key
#######################
if [[ $# < 2 ]]; then
echo "Usage $0 <vm-name> <network> [<availability-zone>] [<fixed_ip>]"
echo "When fixed_ip is null, DHCP is used.."
echo "When the availability-zone is null, the default AZ=nova is used"
exit 1
fi
vm_name=${1:-}
net_name=${2:-}
az=${3:-"nova"}
fixed_ip=${4:-}
if [[ ${az} = "nova" ]] && [[ -n ${fixed_ip} ]]; then
gateway=10.0.0.101
else
gateway=10.0.0.100
fi
function make-user-data-fixed-ip() {
local -r fixed_ip=$1
local -r netmask="255.255.255.0"
local -r gateway=$2
read -r -d '' userdata << EOF
#cloud-config
bootcmd:
- ifconfig eth0 ${fixed_ip}
- ifconfig eth0 netmask ${netmask}
- route add default gw ${gateway}
- ifconfig eth0 up
users:
- default
- name: ubuntu
gecos: ubuntu
ssh_pwauth: True
chpasswd:
list: |
root:password
cloud-user:atomic
ubuntu:ubuntu
admin:ubuntu
expire: False
write_files:
- content: |
auto eth0
iface eth0 inet static
address ${fixed_ip}
netmask ${netmask}
gateway ${gateway}
dns-nameservers 171.68.226.120 171.70.168.183
dns-search cisco.com
path: /etc/network/interfaces.d/eth0.cfg
permissions: '0644'
runcmd:
- ifconfig eth0 down
- ifconfig eth0 up
EOF
}
function make-user-data() {
read -r -d '' userdata << EOF
#cloud-config
users:
- default
- name: ubuntu
gecos: ubuntu
ssh_pwauth: True
chpasswd:
list: |
root:password
cloud-user:atomic
ubuntu:ubuntu
admin:ubuntu
expire: False
EOF
}
if [[ -z "${fixed_ip}" ]]; then
echo "Booting with DHCP - VM:${vm_name}, image:${image}, flavor:${flavor}, network:${net_name}"
make-user-data
echo "${userdata}" > userdata
nova boot --image ${image} --flavor ${flavor} --nic net-name=${net_name} \
--user-data userdata --key-name ${key_name} --availability-zone ${az} ${vm_name}
else
echo "Booting with Static IP - VM:${vm_name}, IP:${fixed_ip}, image:${image}, flavor:${flavor}, network:${net_name} and AZ:${az}"
make-user-data-fixed-ip "${fixed_ip}" "${gateway}"
echo "${userdata}" > userdata
nova boot --image ${image} --flavor ${flavor} --nic net-name=${net_name},v4-fixed-ip=${fixed_ip} \
--user-data userdata --key-name ${key_name} --availability-zone ${az} ${vm_name}
fi