blob: 864ec0118978e0df1d9f99b86a9b9c2d151e2af2 (
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
|
function destroy_nat() {
sudo virsh net-destroy $1 2>&1
sudo virsh net-undefine $1 2>&1
rm -rf $COMPASS_DIR/deploy/work/network/$1.xml
}
function destroy_bridge()
{
bridge=$1
nic=$2
ips=$(ip addr show $bridge | grep 'inet ' | awk -F' ' '{print $2}')
routes=$(ip route show | grep $bridge)
ip link set $bridge down
brctl delbr $bridge
for ip in $ips; do
ip addr add $ip dev $nic
done
echo "$routes" | while read line; do
echo $line | sed "s/$bridge/$nic/g" | xargs ip route add | true
done
}
function create_bridge()
{
bridge=$1
nic=$2
ips=$(ip addr show $nic | grep 'inet ' | awk -F' ' '{print $2}')
routes=$(ip route show | grep $nic)
ip addr flush $nic
brctl addbr $bridge
brctl addif $bridge $nic
ip link set $bridge up
for ip in $ips; do
ip addr add $ip dev $bridge
done
mask=`echo $INSTALL_MASK | awk -F'.' '{print ($1*(2^24)+$2*(2^16)+$3*(2^8)+$4)}'`
mask_len=`echo "obase=2;${mask}"|bc|awk -F'0' '{print length($1)}'`
ip addr add $INSTALL_GW/$mask_len dev $bridge
echo "$routes" | while read line; do
echo $line | sed "s/$nic/$bridge/g" | xargs ip route add | true
done
}
function setup_om_bridge() {
destroy_bridge br_install $OM_NIC
create_bridge br_install $OM_NIC
}
function setup_om_nat() {
destroy_nat install
# create install network
sed -e "s/REPLACE_BRIDGE/br_install/g" \
-e "s/REPLACE_NAME/install/g" \
-e "s/REPLACE_GATEWAY/$INSTALL_GW/g" \
-e "s/REPLACE_MASK/$INSTALL_MASK/g" \
-e "s/REPLACE_START/$INSTALL_IP_START/g" \
-e "s/REPLACE_END/$INSTALL_IP_END/g" \
$COMPASS_DIR/deploy/template/network/nat.xml \
> $WORK_DIR/network/install.xml
sudo virsh net-define $WORK_DIR/network/install.xml
sudo virsh net-start install
}
function create_nets() {
destroy_nat mgmt
# create mgmt network
sed -e "s/REPLACE_BRIDGE/br_mgmt/g" \
-e "s/REPLACE_NAME/mgmt/g" \
-e "s/REPLACE_GATEWAY/$MGMT_GW/g" \
-e "s/REPLACE_MASK/$MGMT_MASK/g" \
-e "s/REPLACE_START/$MGMT_IP_START/g" \
-e "s/REPLACE_END/$MGMT_IP_END/g" \
$COMPASS_DIR/deploy/template/network/nat.xml \
> $WORK_DIR/network/mgmt.xml
sudo virsh net-define $WORK_DIR/network/mgmt.xml
sudo virsh net-start mgmt
# create install network
if [[ ! -z $VIRT_NUMBER ]];then
setup_om_nat
else
setup_om_bridge
fi
}
|