forked from nirajdp76/vnf-f5-vpc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
f5-userdata.sh
124 lines (111 loc) · 2.75 KB
/
f5-userdata.sh
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
#!/bin/bash
# Description:
# Example userdata consisting of simple bash script to
# jnstall BIG-IP Liecense
# MGMT GUI Port will be on 8443
# generic init utils
function checkStatus() {
count=1
sleep 10;
STATUS=`cat /var/prompt/ps1`;
while [[ ${STATUS}x != 'Active'x ]]; do
echo -n '.';
sleep 5;
count=$(($count+1));
STATUS=`cat /var/prompt/ps1`;
if [[ $count -eq 60 ]]; then
checkretstatus="restart";
return;
fi
done
checkretstatus="run";
}
function checkF5Ready {
sleep 5
while [[ ! -e '/var/prompt/ps1' ]]; do
echo -n '.'
sleep 5
done
sleep 5
STATUS=`cat /var/prompt/ps1`
while [[ ${STATUS}x != 'NO LICENSE'x ]]; do
echo -n '.'
sleep 5
STATUS=`cat /var/prompt/ps1`
done
echo -n ' '
while [[ ! -e '/var/prompt/cmiSyncStatus' ]]; do
echo -n '.'
sleep 5
done
STATUS=`cat /var/prompt/cmiSyncStatus`
while [[ ${STATUS}x != 'Standalone'x ]]; do
echo -n '.'
sleep 5
STATUS=`cat /var/prompt/cmiSyncStatus`
done
}
function checkStatusnoret {
sleep 10
STATUS=`cat /var/prompt/ps1`
while [[ ${STATUS}x != 'Active'x ]]; do
echo -n '.'
sleep 5
STATUS=`cat /var/prompt/ps1`
done
}
function networkUp {
# usage:
# networkUp <num_attempts> <url>
# networkUp 120
# networkUp 120 https://aws.amazon.com
NETWORK_UP=FALSE
if [[ "$2" ]]; then
NETWORK_UP_CMD="curl --output /dev/null --silent --fail -H 'Cache-Control: no-cache' ${2}"
else
NETWORK_UP_CMD="curl --output /dev/null --silent --fail --head -H 'Cache-Control: no-cache' https://activate.f5.com/license/index.jsp"
fi
for ((i=1;i<=$1;i++)); do
if ${NETWORK_UP_CMD}; then
NETWORK_UP=TRUE
break
else
echo "Test network reachability attempt # ${i} failed. Trying again in 5 secs"
sleep 5
fi
done
}
function LicenseBigIP {
# usage
# LicenseBigIP <regkey>
for ((i=1;i<=5;i++)); do
LICENSE_RETURN=$( tmsh install /sys license registration-key ${1} )
if [ "${LICENSE_RETURN}" == "New license installed" ]; then
break
else
echo "License attempt # ${i} failed. Trying again in 5 secs"
sleep 5
fi
done
}
FILE=/var/log/onboard.log
if [ ! -e $FILE ]
then
touch $FILE
nohup $0 0<&- &>/dev/null &
exit
fi
exec 1<&-
exec 2<&-
exec 1<>$FILE
exec 2>&1
checkF5Ready
echo "Setting Some Config Vars..."
BIGIP_LICENSE_KEY=F5-LICENSE-REPLACEMENT
echo 'start install byol license'
LicenseBigIP ${BIGIP_LICENSE_KEY}
checkStatusnoret
sleep 20
tmsh save /sys config
echo 'done installing byol'
date