blob: d292acd9388f6cb76f8f87387689df722d1494a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
#!/bin/bash
#
# Author: Daniel Smith (Ericsson)
#
# Script to update neutron configuration for OVSDB/ODL integratino
#
# Usage - Set / pass CONTROL_HOST to your needs
#
CONTROL_HOST=172.30.9.70
# ENV
source ~/openrc
# VARS
ML2_CONF=/etc/neutron/plugins/ml2/ml2_conf.ini
MODE=0
# FUNCTIONS
# Update ml2_conf.ini
function update_ml2conf {
echo "Backing up and modifying ml2_conf.ini"
cp $ML2_CONF $ML2_CONF.bak
sed -i -e 's/mechanism_drivers =openvswitch/mechanism_drivers = opendaylight/g' $ML2_CONF
sed -i -e 's/tenant_network_types = flat,vlan,gre,vxlan/tenant_network_types = vxlan/g' $ML2_CONF
cat "[ml2_odl]" >> $ML2_CONF
cat "password = admin" >> $ML2_CONF
cat "username = admin" >> $ML2_CONF
cat "url = http://${CONTROL_HOST}:8080/controller/nb/v2/neutron" >> $ML2_CONF
}
function reset_neutrondb {
echo "Reseting DB"
mysql -e "drop database if exists neutron_ml2;"
mysql -e "create database neutron_ml2 character set utf8;"
mysql -e "grant all on neutron_ml2.* to 'neutron'@'%';"
neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head
}
function restart_neutron {
echo "Restarting Neutron Server"
service neutron-server restart
echo "Should see Neutron runing now"
service neutron-server status
echo "Shouldnt be any nets, but should work (return empty)"
neutron net-list
}
function stop_neutron {
echo "Stopping Neutron / OVS components"
service neutron-plugin-openvswitch-agent stop
if [ $MODE == "0" ]
then
service neutron-server stop
fi
}
function verify_ML2_working {
echo "checking that we can talk via ML2 properly"
curl -u admin:admin http://${CONTROL_HOST}:8080/controller/nb/v2/neutron/networks > /tmp/check_ml2
if grep "network" /tmp/check_ml2
then
echo "Success - ML2 to ODL is working"
else
echo "im sorry Jim, but its dead"
fi
}
function set_mode {
if ls -l /var/lib/glance/images
then
echo "Controller Mode"
MODE=0
else
echo "Compute Mode"
MODE=1
fi
}
function stop_ovs {
echo "Stopping OpenVSwitch"
service openvswitch-switch stop
}
function control_setup {
echo "Modifying Controller"
stop_neutron
stop_ovs
rm -rf /var/log/openvswitch/*
mkdir -p /opt/opnfv/odl/ovs_back
mv /etc/openvswitch/conf.db /opt/opnfv/odl/ovs_back/.
mv /etc/openvswitch/.conf*lock* /opt/opnfv/odl/ovs_back/.
service openvswitch-switch start
ovs-vsctl set-manager tcp:172.30.9.70:6640
ovs-vsctl add-br br-eth0
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-eth0 eth0
ovs-vsctl add-port br-eth0 br-eth0--br-ex
ovs-vsctl add-port br-ex br-ex--br-eth0
ovs-vsctl set interface br-ex--br-eth0 type=patch
ovs-vsctl set interface br-eth0--br-ex type=patch
ovs-vsctl set interface br-ex--br-eth0 options:peer=br-eth0--br-ex
ovs-vsctl set interface br-eth0--br-ex options:peer=br-ex--br-eth0
ifconfig br-ex 172.30.9.70/24 up
service neutron-server restart
echo "setting up networks"
ip link add link eth1 name br-mgmt type vlan id 300
ip link add link eth1 name br-storage type vlan id 301
/etc/init.d/networking restart
echo "Reset Neutron DB"
#reset_neutrondb
echo "Restarting Neutron Components"
#restart_neutron
echo "Verifying ODL ML2 plugin is working"
verify_ML2_working
}
function compute_setup {
echo "do compute stuff here"
echo "stopping neutron openvswitch plugin"
stop_neutron
ip link add link eth1 name br-mgmt type vlan id 300
ifconfig br-mgmt `grep address /etc/network/interfaces.d/ifcfg-br-mgmt | awk -F" " '{print $2}'`/24
ip link add link eth1 name br-storage type vlan id 301
ifconfig br-storage `grep address /etc/network/interfaces.d/ifcfg-br-storage | awk -F" " '{print $2}'`/24
ifconfig eth1 `grep address /etc/network/interfaces.d/ifcfg-br-fw-mgmt | awk -F" " '{print $2}'`/24
echo "set manager, and route for ODL controller"
ovs-vsctl set-manager tcp:192.168.0.2:6640
route add 172.17.0.1 gw 192.168.0.2
verify_ML2_working
}
# MAIN
echo "Starting to make call"
update_ml2conf
echo "Check Mode"
set_mode
if [ $MODE == "0" ];
then
echo "Calling control setup"
control_setup
elif [ $MODE == "1" ];
then
echo "Calling compute setup"
compute_setup
else
echo "Something is bad - call for help"
exit
fi
|