1
1
#! /bin/bash
2
2
set -e
3
3
4
- if [ $# -ne 9 ]; then
5
- echo " Usage: $0 <ssh_key_file> <controller_host_name> <controller_host_ip> <network_host_name> <network_host_ip> <qemu_compute_host_name> <qemu_compute_host_ip> <hyperv_compute_host_name> <hyperv_compute_host_ip>"
4
+ if [ $# -ne 10 ]; then
5
+ echo " Usage: $0 <openstack_release> < ssh_key_file> <controller_host_name> <controller_host_ip> <network_host_name> <network_host_ip> <qemu_compute_host_name> <qemu_compute_host_ip> <hyperv_compute_host_name> <hyperv_compute_host_ip>"
6
6
exit 1
7
7
fi
8
8
9
- SSH_KEY_FILE =$1
9
+ OPENSTACK_RELEASE =$1
10
10
11
- CONTROLLER_VM_NAME=$2
12
- CONTROLLER_VM_IP=$3
13
- NETWORK_VM_NAME=$4
14
- NETWORK_VM_IP=$5
15
- QEMU_COMPUTE_VM_NAME=$6
16
- QEMU_COMPUTE_VM_IP=$7
17
- HYPERV_COMPUTE_VM_NAME=$8
18
- HYPERV_COMPUTE_VM_IP=$9
11
+ SSH_KEY_FILE=$2
12
+
13
+ CONTROLLER_VM_NAME=$3
14
+ CONTROLLER_VM_IP=$4
15
+ NETWORK_VM_NAME=$5
16
+ NETWORK_VM_IP=$6
17
+ QEMU_COMPUTE_VM_NAME=$7
18
+ QEMU_COMPUTE_VM_IP=$8
19
+ HYPERV_COMPUTE_VM_NAME=$9
20
+ HYPERV_COMPUTE_VM_IP=${10}
19
21
20
22
RDO_ADMIN=root
21
23
RDO_ADMIN_PASSWORD=Passw0rd
22
24
23
25
HYPERV_ADMIN=Administrator
24
26
HYPERV_PASSWORD=$RDO_ADMIN_PASSWORD
25
27
26
- OPENSTACK_RELEASE=grizzly
27
-
28
28
ANSWERS_FILE=packstack_answers.conf
29
29
NOVA_CONF_FILE=/etc/nova/nova.conf
30
+ CEILOMETER_CONF_FILE=/etc/ceilometer/ceilometer.conf
30
31
31
32
DOMAIN=localdomain
32
33
@@ -41,20 +42,11 @@ if [ ! -f "$SSH_KEY_FILE" ]; then
41
42
fi
42
43
SSH_KEY_FILE_PUB=$SSH_KEY_FILE .pub
43
44
44
- configure_ssh_pubkey_auth () {
45
- HOST=$1
46
- ssh-keygen -R $HOST
47
-
48
- wait_for_listening_port $HOST 22 $MAX_WAIT_SECONDS
49
- $BASEDIR /scppass.sh $SSH_KEY_FILE_PUB $RDO_ADMIN @$HOST :$SSH_KEY_FILE_PUB " $RDO_ADMIN_PASSWORD "
50
- $BASEDIR /sshpass.sh $RDO_ADMIN @$HOST " $RDO_ADMIN_PASSWORD " " mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat $SSH_KEY_FILE_PUB >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && restorecon -R -v ~/.ssh"
51
- }
52
-
53
45
echo " Configuring SSH public key authentication on the RDO hosts"
54
46
55
- configure_ssh_pubkey_auth $CONTROLLER_VM_IP
56
- configure_ssh_pubkey_auth $NETWORK_VM_IP
57
- configure_ssh_pubkey_auth $QEMU_COMPUTE_VM_IP
47
+ configure_ssh_pubkey_auth $RDO_ADMIN $ CONTROLLER_VM_IP $SSH_KEY_FILE_PUB $RDO_ADMIN_PASSWORD
48
+ configure_ssh_pubkey_auth $RDO_ADMIN $ NETWORK_VM_IP $SSH_KEY_FILE_PUB $RDO_ADMIN_PASSWORD
49
+ configure_ssh_pubkey_auth $RDO_ADMIN $ QEMU_COMPUTE_VM_IP $SSH_KEY_FILE_PUB $RDO_ADMIN_PASSWORD
58
50
59
51
echo " Sync hosts date and time"
60
52
update_host_date $RDO_ADMIN @$CONTROLLER_VM_IP
@@ -67,11 +59,11 @@ echo "Waiting for WinRM HTTPS port to be available on $HYPERV_COMPUTE_VM_IP"
67
59
wait_for_listening_port $HYPERV_COMPUTE_VM_IP 5986 $MAX_WAIT_SECONDS
68
60
69
61
echo " Renaming and rebooting Hyper-V host $HYPERV_COMPUTE_VM_IP "
70
- exec_with_retry " $BASEDIR /rename-windows-host.sh $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD $HYPERV_COMPUTE_VM_NAME "
62
+ exec_with_retry " $BASEDIR /rename-windows-host.sh $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD $HYPERV_COMPUTE_VM_NAME " 30 30
71
63
72
64
config_openstack_network_adapter () {
73
65
SSHUSER_HOST=$1
74
- ADAPTER=$2
66
+ ADAPTER=$2
75
67
76
68
run_ssh_cmd_with_retry $SSHUSER_HOST " cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$ADAPTER
77
69
DEVICE=" $ADAPTER "
@@ -128,7 +120,7 @@ set_test_network_config $RDO_ADMIN@$QEMU_COMPUTE_VM_IP $QEMU_COMPUTE_VM_TEST_IP/
128
120
129
121
echo " Installing RDO RPMs on controller"
130
122
131
- run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " yum install -y http://rdo.fedorapeople.org/openstack/openstack-grizzly /rdo-release-grizzly .rpm || true"
123
+ run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " yum install -y http://rdo.fedorapeople.org/openstack/openstack-$OPENSTACK_RELEASE /rdo-release-$OPENSTACK_RELEASE .rpm || true"
132
124
run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " yum install -y openstack-packstack"
133
125
134
126
run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm || true"
@@ -145,14 +137,27 @@ crudini --set $ANSWERS_FILE general CONFIG_SSH_KEY /root/.ssh/id_rsa.pub && \
145
137
crudini --set $ANSWERS_FILE general CONFIG_NTP_SERVERS 0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org && \
146
138
crudini --set $ANSWERS_FILE general CONFIG_CINDER_VOLUMES_SIZE 20G && \
147
139
crudini --set $ANSWERS_FILE general CONFIG_NOVA_COMPUTE_HOSTS $QEMU_COMPUTE_VM_IP && \
148
- crudini --del $ANSWERS_FILE general CONFIG_NOVA_NETWORK_HOST && \
149
- crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_L3_HOSTS $NETWORK_VM_IP && \
150
- crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_DHCP_HOSTS $NETWORK_VM_IP && \
151
- crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_METADATA_HOSTS $NETWORK_VM_IP && \
152
- crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_TENANT_NETWORK_TYPE vlan && \
153
- crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_VLAN_RANGES physnet1:1000:2000 && \
154
- crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_BRIDGE_MAPPINGS physnet1:br-eth1 && \
155
- crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_BRIDGE_IFACES br-eth1:eth1"
140
+ crudini --del $ANSWERS_FILE general CONFIG_NOVA_NETWORK_HOST"
141
+
142
+ if [ " $OPENSTACK_RELEASE " == " grizzly" ]; then
143
+ run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " \
144
+ crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_L3_HOSTS $NETWORK_VM_IP && \
145
+ crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_DHCP_HOSTS $NETWORK_VM_IP && \
146
+ crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_METADATA_HOSTS $NETWORK_VM_IP && \
147
+ crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_TENANT_NETWORK_TYPE vlan && \
148
+ crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_VLAN_RANGES physnet1:1000:2000 && \
149
+ crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_BRIDGE_MAPPINGS physnet1:br-eth1 && \
150
+ crudini --set $ANSWERS_FILE general CONFIG_QUANTUM_OVS_BRIDGE_IFACES br-eth1:eth1"
151
+ else
152
+ run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " \
153
+ crudini --set $ANSWERS_FILE general CONFIG_NEUTRON_L3_HOSTS $NETWORK_VM_IP && \
154
+ crudini --set $ANSWERS_FILE general CONFIG_NEUTRON_DHCP_HOSTS $NETWORK_VM_IP && \
155
+ crudini --set $ANSWERS_FILE general CONFIG_NEUTRON_METADATA_HOSTS $NETWORK_VM_IP && \
156
+ crudini --set $ANSWERS_FILE general CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE vlan && \
157
+ crudini --set $ANSWERS_FILE general CONFIG_NEUTRON_OVS_VLAN_RANGES physnet1:1000:2000 && \
158
+ crudini --set $ANSWERS_FILE general CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS physnet1:br-eth1 && \
159
+ crudini --set $ANSWERS_FILE general CONFIG_NEUTRON_OVS_BRIDGE_IFACES br-eth1:eth1"
160
+ fi
156
161
157
162
echo " Deploying SSH private key on $CONTROLLER_VM_IP "
158
163
@@ -166,8 +171,13 @@ run_ssh_cmd_with_retry $RDO_ADMIN@$CONTROLLER_VM_IP "packstack --answer-file=$AN
166
171
echo " Disabling Nova API rate limits"
167
172
run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " crudini --set $NOVA_CONF_FILE DEFAULT api_rate_limit False"
168
173
169
- echo " Enabling Quantum firewall driver on controller"
170
- run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " sed -i 's/^#\ firewall_driver/firewall_driver/g' /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini && service quantum-server restart"
174
+ if [ " $OPENSTACK_RELEASE " == " grizzly" ]; then
175
+ echo " Enabling Quantum firewall driver on controller"
176
+ run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " sed -i 's/^#\ firewall_driver/firewall_driver/g' /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini && service quantum-server restart"
177
+ else
178
+ echo " Enabling Neutron firewall driver on controller"
179
+ run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " sed -i 's/^#\ firewall_driver/firewall_driver/g' /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini && service neutron-server restart"
180
+ fi
171
181
172
182
echo " Set libvirt_type on QEMU/KVM compute node"
173
183
run_ssh_cmd_with_retry $RDO_ADMIN @$QEMU_COMPUTE_VM_IP " grep vmx /proc/cpuinfo > /dev/null && crudini --set $NOVA_CONF_FILE DEFAULT libvirt_type kvm || true"
@@ -178,7 +188,7 @@ run_ssh_cmd_with_retry $RDO_ADMIN@$NETWORK_VM_IP "ovs-vsctl list-ports br-ex | g
178
188
179
189
install_3x_kernel () {
180
190
SSHUSER_HOST=$1
181
- run_ssh_cmd_with_retry $SSHUSER_HOST " yum install -y centos-release-xen && yum update -y --disablerepo=* --enablerepo=Xen4CentOS kernel"
191
+ run_ssh_cmd_with_retry $SSHUSER_HOST " yum install -y centos-release-xen && yum update -y --disablerepo=* --enablerepo=Xen4CentOS kernel"
182
192
}
183
193
184
194
# echo "Installing 3.x kernel on network and compute nodes"
@@ -188,16 +198,31 @@ install_3x_kernel () {
188
198
189
199
GLANCE_HOST=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP general CONFIG_GLANCE_HOST $ANSWERS_FILE `
190
200
QPID_HOST=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP general CONFIG_QPID_HOST $ANSWERS_FILE `
191
- QUANTUM_ADMIN_PASSWORD=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP general CONFIG_QUANTUM_KS_PW $ANSWERS_FILE `
192
-
193
201
QPID_USERNAME=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT qpid_username $NOVA_CONF_FILE `
194
202
QPID_PASSWORD=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT qpid_password $NOVA_CONF_FILE `
195
203
196
- QUANTUM_URL=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT quantum_url $NOVA_CONF_FILE `
197
- QUANTUM_ADMIN_AUTH_URL=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT quantum_admin_auth_url $NOVA_CONF_FILE `
198
- QUANTUM_ADMIN_TENANT_NAME=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT quantum_admin_tenant_name $NOVA_CONF_FILE `
204
+ if [ " $OPENSTACK_RELEASE " == " grizzly" ]; then
205
+ NEUTRON_URL=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT quantum_url $NOVA_CONF_FILE `
206
+ NEUTRON_ADMIN_AUTH_URL=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT quantum_admin_auth_url $NOVA_CONF_FILE `
207
+ NEUTRON_ADMIN_TENANT_NAME=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT quantum_admin_tenant_name $NOVA_CONF_FILE `
208
+ NEUTRON_ADMIN_PASSWORD=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP general CONFIG_QUANTUM_KS_PW $ANSWERS_FILE `
209
+
210
+ NEUTRON_ADMIN_USERNAME=quantum
211
+ else
212
+ NEUTRON_URL=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT neutron_url $NOVA_CONF_FILE `
213
+ NEUTRON_ADMIN_AUTH_URL=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT neutron_admin_auth_url $NOVA_CONF_FILE `
214
+ NEUTRON_ADMIN_TENANT_NAME=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT neutron_admin_tenant_name $NOVA_CONF_FILE `
215
+ NEUTRON_ADMIN_PASSWORD=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP general CONFIG_NEUTRON_KS_PW $ANSWERS_FILE `
216
+
217
+ CEILOMETER_ADMIN_AUTH_URL=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT os_auth_url $CEILOMETER_CONF_FILE `
218
+ CEILOMETER_ADMIN_TENANT_NAME=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT os_tenant_name $CEILOMETER_CONF_FILE `
219
+ CEILOMETER_ADMIN_USERNAME=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT os_username $CEILOMETER_CONF_FILE `
220
+ CEILOMETER_ADMIN_PASSWORD=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT os_password $CEILOMETER_CONF_FILE `
221
+ CEILOMETER_METERING_SECRET=` get_openstack_option_value $RDO_ADMIN @$CONTROLLER_VM_IP DEFAULT metering_secret $CEILOMETER_CONF_FILE `
222
+
223
+ NEUTRON_ADMIN_USERNAME=neutron
224
+ fi
199
225
200
- QUANTUM_ADMIN_USERNAME=quantum
201
226
GLANCE_PORT=9292
202
227
QPID_PORT=5672
203
228
@@ -212,8 +237,12 @@ wait_for_listening_port $HYPERV_COMPUTE_VM_IP 5986 $MAX_WAIT_SECONDS
212
237
213
238
HYPERV_VSWITCH_NAME=external
214
239
RPC_BACKEND=ApacheQpid
215
-
216
- $BASEDIR /deploy-hyperv-compute.sh $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD $OPENSTACK_RELEASE $HYPERV_VSWITCH_NAME $GLANCE_HOST $RPC_BACKEND $QPID_HOST $QPID_USERNAME $QPID_PASSWORD $QUANTUM_URL $QUANTUM_ADMIN_AUTH_URL $QUANTUM_ADMIN_TENANT_NAME $QUANTUM_ADMIN_USERNAME $QUANTUM_ADMIN_PASSWORD
240
+
241
+ $BASEDIR /deploy-hyperv-compute.sh $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD $OPENSTACK_RELEASE \
242
+ $HYPERV_VSWITCH_NAME $GLANCE_HOST $RPC_BACKEND $QPID_HOST $QPID_USERNAME $QPID_PASSWORD $NEUTRON_URL \
243
+ $NEUTRON_ADMIN_AUTH_URL $NEUTRON_ADMIN_TENANT_NAME $NEUTRON_ADMIN_USERNAME $NEUTRON_ADMIN_PASSWORD \
244
+ $CEILOMETER_ADMIN_AUTH_URL $CEILOMETER_ADMIN_TENANT_NAME $CEILOMETER_ADMIN_USERNAME $CEILOMETER_ADMIN_PASSWORD \
245
+ $CEILOMETER_METERING_SECRET
217
246
218
247
echo " Wait for reboot"
219
248
sleep 120
@@ -229,11 +258,18 @@ wait_for_listening_port $CONTROLLER_VM_IP 22 $MAX_WAIT_SECONDS
229
258
230
259
# sleep 5
231
260
261
+ # run_ssh_cmd_with_retry $RDO_ADMIN@$CONTROLLER_VM_IP "echo 120 > /proc/sys/kernel/softlockup_thresh"
262
+
232
263
echo " Validating Nova configuration"
233
264
run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " source ./keystonerc_admin && nova service-list | sed -e '$d ' | awk '(NR > 3) {print $1 0}' | sed -rn '/down/q1'" 10
234
265
235
- echo " Validating Quantum configuration"
236
- run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " source ./keystonerc_admin && quantum agent-list -f csv | sed -e '1d' | sed -rn 's/\" .*\" ,\" .*\" ,\" .*\" ,\" (.*)\" ,.*/\1/p' | sed -rn '/xxx/q1'" 10
266
+ if [ " $OPENSTACK_RELEASE " == " grizzly" ]; then
267
+ echo " Validating Quantum configuration"
268
+ run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " source ./keystonerc_admin && quantum agent-list -f csv | sed -e '1d' | sed -rn 's/\" .*\" ,\" .*\" ,\" .*\" ,\" (.*)\" ,.*/\1/p' | sed -rn '/xxx/q1'" 10
269
+ else
270
+ echo " Validating Neutron configuration"
271
+ run_ssh_cmd_with_retry $RDO_ADMIN @$CONTROLLER_VM_IP " source ./keystonerc_admin && neutron agent-list -f csv | sed -e '1d' | sed -rn 's/\" .*\" ,\" .*\" ,\" .*\" ,\" (.*)\" ,.*/\1/p' | sed -rn '/xxx/q1'" 10
272
+ fi
237
273
238
274
echo " RDO installed!"
239
275
echo " Controller IP: $CONTROLLER_VM_IP "
0 commit comments