/
install.sh
160 lines (132 loc) · 4.24 KB
/
install.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
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
function install-neutron-packages-controller() {
echo "Installing Neutron for Controller"
sleep 2
apt-get install neutron-server neutron-plugin-ml2 \
neutron-linuxbridge-agent neutron-dhcp-agent \
haproxy \
neutron-metadata-agent python-neutronclient conntrack -y
}
function install-cinder-packages-controller() {
echo "Installing Cinder for Controller"
sleep 2
apt-get install cinder-api cinder-scheduler python-cinderclient -y
}
function install-ceilometer-packages-controller() {
echo "Installing Ceilometer for Controller"
sleep 2
apt-get install mongodb-server mongodb-clients python-pymongo -y
sleep 2
apt-get install ceilometer-api ceilometer-collector ceilometer-agent-central \
ceilometer-agent-notification ceilometer-alarm-evaluator ceilometer-alarm-notifier \
python-ceilometerclient -y
}
function install-heat-packages-controller() {
echo "Installing Heat for Controller..."
sleep 2
apt-get install heat-api heat-api-cfn heat-engine \
python-heatclient -y
}
function install-common-packages() {
echo "About to install crudini"
apt-get install crudini -y
sleep 3
echo "About to install NTP Server"
sleep 3
apt-get install chrony -y
service chrony restart
echo "About to configure APT for Ocata"
sleep 3
apt-get install software-properties-common -y
ubuntu_version=`lsb_release -sr`
if [ "$ubuntu_version" == "17.04" ] || [ "$ubuntu_version" == "16.04" ]
then
add-apt-repository cloud-archive:ocata
else
echo "Ocata release supported only on Zesty (17.04) and Xenial (16.04)"
exit 1;
fi
echo "Doing full system update"
sleep 3
apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y
apt-get autoremove -y
apt-get install python-openstackclient -y
}
function install-controller-packages() {
echo "Installing MariaDB and MongoDB..."
apt-get install mariadb-server python-pymysql -y
echo "Installing RabbitMQ..."
sleep 3
apt-get install rabbitmq-server -y
echo "Installing Keystone..."
echo "manual" > /etc/init/keystone.override
sleep 3
apt-get install keystone apache2 libapache2-mod-wsgi memcached python-memcache -y
echo "Installing Glance..."
sleep 2
apt-get install glance python-glanceclient -y
echo "Installing Nova for Controller"
sleep 2
apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy \
nova-scheduler nova-placement-api python-novaclient -y
install-neutron-packages-controller
echo "Installing Horizon..."
sleep 2
apt-get install openstack-dashboard -y
#install-cinder-packages-controller
#install-ceilometer-pacakges-controller
#install-heat-pacakges-controller
echo "Installing Network Node Components..."
sleep 2
install-networknode-packages
echo "Doing autoremove..."
sleep 2
apt-get autoremove -y
}
function install-networknode-packages() {
echo "About to install Neutron for Network Node..."
sleep 2
apt-get install neutron-plugin-ml2 neutron-plugin-linuxbridge-agent \
neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent python-neutronclient conntrack -y
apt-get autoremove -y
}
function install-compute-packages() {
echo "About to install Nova for Compute"
sleep 3
apt-get install nova-compute sysfsutils -y
echo "About to install Neutron for Compute"
sleep 2
apt-get install neutron-plugin-linuxbridge-agent conntrack -y
echo "About to install Ceilometer for Compute"
sleep 2
apt-get install ceilometer-agent-compute -y
apt-get autoremove -y
}
if [ $# -ne 1 ]
then
echo "Correct Syntax: $0 [ allinone | controller | compute | networknode ] "
exit 1;
fi
if [ "$1" == "allinone" ]
then
echo "Installing packages for All-in-One"
sleep 5
install-common-packages
install-controller-packages
install-compute-packages
install-networknode-packages
elif [ "$1" == "controller" ] || [ "$1" == "compute" ] || [ "$1" == "networknode" ]
then
install-common-packages
echo "Installing packages for: "$1
sleep 5
install-$1-packages
else
echo "Correct Syntax: $0 [ allinone | controller | compute | networknode ]"
exit 1;
fi
echo "********************************************"
echo "NEXT STEPS:"
echo "** Update lib/config-paramters.sh for Interface names"
echo "** Run the below command on all nodes:"
echo " configure.sh <controller_ip_address>"
echo "********************************************"