Skip to content

Commit 5f35cbe

Browse files
committed
Devstack bug fixes and improvements
1 parent 5a9968e commit 5f35cbe

5 files changed

+63
-12
lines changed

configure-devstack.sh

+39-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ HYPERV_COMPUTE_VM_IP=$5
1616
ADMIN_USER=ubuntu
1717
ADMIN_PASSWORD=Passw0rd
1818

19+
HYPERV_ADMIN=Administrator
20+
HYPERV_PASSWORD=$ADMIN_PASSWORD
21+
22+
NOVA_CONF_FILE=/etc/nova/nova.conf
23+
1924
BASEDIR=$(dirname $0)
2025

2126
. $BASEDIR/utils.sh
@@ -31,9 +36,11 @@ configure_ssh_pubkey_auth $ADMIN_USER $CONTROLLER_VM_IP $SSH_KEY_FILE_PUB $ADMIN
3136
echo "Disabling sudo password prompt"
3237
disable_sudo_password_prompt $ADMIN_USER@$CONTROLLER_VM_IP $SSH_KEY_FILE $ADMIN_PASSWORD
3338

34-
echo "Setting host name"
39+
echo "Setting controller host name"
3540
set_hostname_ubuntu $ADMIN_USER@$CONTROLLER_VM_IP $CONTROLLER_VM_NAME
36-
# TODO: set Windows host name
41+
42+
echo "Renaming and rebooting Hyper-V host $HYPERV_COMPUTE_VM_IP"
43+
exec_with_retry "$BASEDIR/rename-windows-host.sh $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD $HYPERV_COMPUTE_VM_NAME"
3744

3845
echo "Configure networking"
3946
config_openstack_network_adapter_ubuntu $ADMIN_USER@$CONTROLLER_VM_IP eth1
@@ -68,6 +75,36 @@ run_ssh_cmd_with_retry $ADMIN_USER@$CONTROLLER_VM_IP "sudo ovs-vsctl show | grep
6875
echo "Adding OpenStack vars to .bashrc"
6976
add_openstack_vars_to_bashrc $ADMIN_USER@$CONTROLLER_VM_IP $CONTROLLER_VM_IP
7077

78+
echo "Install crudini on controller"
79+
80+
run_ssh_cmd_with_retry $ADMIN_USER@$CONTROLLER_VM_IP "git clone https://github.com/pixelb/crudini.git"
81+
run_ssh_cmd_with_retry $ADMIN_USER@$CONTROLLER_VM_IP "sudo apt-get install -y python-iniparse"
82+
run_ssh_cmd_with_retry $ADMIN_USER@$CONTROLLER_VM_IP "sudo cp crudini/crudini /usr/local/bin"
83+
84+
echo "Getting Nova config options for Hyper-V"
85+
86+
RPC_BACKEND_HOST=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT rabbit_host $NOVA_CONF_FILE`
87+
RPC_BACKEND_PASSWORD=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT rabbit_password $NOVA_CONF_FILE`
88+
89+
NEUTRON_URL=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT neutron_url $NOVA_CONF_FILE`
90+
NEUTRON_ADMIN_AUTH_URL=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT neutron_admin_auth_url $NOVA_CONF_FILE`
91+
NEUTRON_ADMIN_TENANT_NAME=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT neutron_admin_tenant_name $NOVA_CONF_FILE`
92+
NEUTRON_ADMIN_USERNAME=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT neutron_admin_username $NOVA_CONF_FILE`
93+
NEUTRON_ADMIN_PASSWORD=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT neutron_admin_password $NOVA_CONF_FILE`
94+
95+
# TODO: read Glance host/port from nova.conf
96+
GLANCE_HOST=$CONTROLLER_VM_IP
97+
GLANCE_PORT=9292
98+
RPC_BACKEND_USERNAME=guest
99+
RPC_BACKEND_PORT=5672
100+
HYPERV_VSWITCH_NAME=external
101+
RPC_BACKEND=RabbitMQ
102+
103+
echo "Waiting for WinRM HTTPS port to be available on $HYPERV_COMPUTE_VM_IP"
104+
wait_for_listening_port $HYPERV_COMPUTE_VM_IP 5986 $MAX_WAIT_SECONDS
105+
106+
$BASEDIR/deploy-hyperv-compute.sh $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD $OPENSTACK_RELEASE $HYPERV_VSWITCH_NAME $GLANCE_HOST $RPC_BACKEND $RPC_BACKEND_HOST $RPC_BACKEND_USERNAME $RPC_BACKEND_PASSWORD $NEUTRON_URL $NEUTRON_ADMIN_AUTH_URL $NEUTRON_ADMIN_TENANT_NAME $NEUTRON_ADMIN_USERNAME $NEUTRON_ADMIN_PASSWORD
107+
71108
echo "DevStack configured!"
72109
echo "Controller IP: $CONTROLLER_VM_IP"
73110
echo "SSH key file: $SSH_KEY_FILE"

configure-rdo.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ install_3x_kernel () {
188188

189189
GLANCE_HOST=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP general CONFIG_GLANCE_HOST $ANSWERS_FILE`
190190
QPID_HOST=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP general CONFIG_QPID_HOST $ANSWERS_FILE`
191-
QUANTUM_KS_PW=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP general CONFIG_QUANTUM_KS_PW $ANSWERS_FILE`
191+
QUANTUM_ADMIN_PASSWORD=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP general CONFIG_QUANTUM_KS_PW $ANSWERS_FILE`
192192

193193
QPID_USERNAME=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT qpid_username $NOVA_CONF_FILE`
194194
QPID_PASSWORD=`get_openstack_option_value $RDO_ADMIN@$CONTROLLER_VM_IP DEFAULT qpid_password $NOVA_CONF_FILE`
@@ -213,7 +213,7 @@ wait_for_listening_port $HYPERV_COMPUTE_VM_IP 5986 $MAX_WAIT_SECONDS
213213
HYPERV_VSWITCH_NAME=external
214214
RPC_BACKEND=ApacheQpid
215215

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_KS_PW
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
217217

218218
echo "Wait for reboot"
219219
sleep 120

deploy-devstack-example.sh

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
#!/bin/bash
22
set -e
33

4-
VMDK_OPTION=$1
4+
if [ $# -lt 2 ]; then
5+
echo "Usage: $0 <esxi_user> <esxi_host> [<use_linked_vmdks>]"
6+
exit 1
7+
fi
8+
9+
ESXI_USER=$1
10+
ESXI_HOST=$2
11+
VMDK_OPTION=$3
512

613
DEVSTACK_NAME=devstack-test-$RANDOM
714
ESXI_HOST=10.7.2.2

deploy-hyperv-compute.sh

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
22
set -e
33

4-
if [ $# -ne 14 ]; then
5-
echo "Usage: $0 <hyperv_host_ip> <hyperv_admin_username> <hyperv_password> <openstack_release> <vswitch_name> <glance_host> <rpc_backend> <rpc_backend_host> <rpc_backend_username> <rpc_backend_password> <quantum_url> <quantum_admin_auth_url> <quantum_admin_tenant_name> <quantum_admin_password>"
4+
if [ $# -ne 15 ]; then
5+
echo "Usage: $0 <hyperv_host_ip> <hyperv_admin_username> <hyperv_password> <openstack_release> <vswitch_name> <glance_host> <rpc_backend> <rpc_backend_host> <rpc_backend_username> <rpc_backend_password> <quantum_url> <quantum_admin_auth_url> <quantum_admin_tenant_name> <quantum_admin_username> <quantum_admin_password>"
66
exit 1
77
fi
88

@@ -19,9 +19,9 @@ RPC_BACKEND_PASSWORD=${10}
1919
QUANTUM_URL=${11}
2020
QUANTUM_ADMIN_AUTH_URL=${12}
2121
QUANTUM_ADMIN_TENANT_NAME=${13}
22-
QUANTUM_KS_PW=${14}
22+
QUANTUM_ADMIN_USERNAME=${14}
23+
QUANTUM_ADMIN_PASSWORD=${15}
2324

24-
QUANTUM_ADMIN_USERNAME=quantum
2525
GLANCE_PORT=9292
2626
RPC_BACKEND_PORT=5672
2727

@@ -69,11 +69,11 @@ if [ "$OPENSTACK_RELEASE" == "grizzly" ]; then
6969
run_wsmancmd_with_retry $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD "msiexec /i %TEMP%\\$MSI_FILE /qn /l*v %TEMP%\\HyperVNovaCompute_setup_log.txt \
7070
ADDLOCAL=HyperVNovaCompute,QuantumHyperVAgent,iSCSISWInitiator,FreeRDP GLANCEHOST=$GLANCE_HOST GLANCEPORT=$GLANCE_PORT RPCBACKEND=$RPC_BACKEND RPCBACKENDHOST=$RPC_BACKEND_HOST RPCBACKENDPORT=$RPC_BACKEND_PORT \
7171
RPCBACKENDUSER=$RPC_BACKEND_USERNAME RPCBACKENDPASSWORD=$RPC_BACKEND_PASSWORD INSTANCESPATH=C:\\OpenStack\\Instances ADDVSWITCH=0 VSWITCHNAME=$HYPERV_VSWITCH USECOWIMAGES=1 LOGDIR=C:\\OpenStack\\Log ENABLELOGGING=1 \
72-
VERBOSELOGGING=1 QUANTUMURL=$QUANTUM_URL QUANTUMADMINTENANTNAME=$QUANTUM_ADMIN_TENANT_NAME QUANTUMADMINUSERNAME=$QUANTUM_ADMIN_USERNAME QUANTUMADMINPASSWORD=$QUANTUM_KS_PW QUANTUMADMINAUTHURL=$QUANTUM_ADMIN_AUTH_URL"
72+
VERBOSELOGGING=1 QUANTUMURL=$QUANTUM_URL QUANTUMADMINTENANTNAME=$QUANTUM_ADMIN_TENANT_NAME QUANTUMADMINUSERNAME=$QUANTUM_ADMIN_USERNAME QUANTUMADMINPASSWORD=$QUANTUM_ADMIN_PASSWORD QUANTUMADMINAUTHURL=$QUANTUM_ADMIN_AUTH_URL"
7373
else
7474
run_wsmancmd_with_retry $HYPERV_COMPUTE_VM_IP $HYPERV_ADMIN $HYPERV_PASSWORD "msiexec /i %TEMP%\\$MSI_FILE /qn /l*v %TEMP%\\HyperVNovaCompute_setup_log.txt \
7575
ADDLOCAL=HyperVNovaCompute,NeutronHyperVAgent,iSCSISWInitiator,FreeRDP GLANCEHOST=$GLANCE_HOST GLANCEPORT=$GLANCE_PORT RPCBACKEND=$RPC_BACKEND RPCBACKENDHOST=$RPC_BACKEND_HOST RPCBACKENDPORT=$RPC_BACKEND_PORT \
7676
RPCBACKENDUSER=$RPC_BACKEND_USERNAME RPCBACKENDPASSWORD=$RPC_BACKEND_PASSWORD INSTANCESPATH=C:\\OpenStack\\Instances ADDVSWITCH=0 VSWITCHNAME=$HYPERV_VSWITCH USECOWIMAGES=1 LOGDIR=C:\\OpenStack\\Log ENABLELOGGING=1 \
77-
VERBOSELOGGING=1 NEUTRONURL=$QUANTUM_URL NEUTRONADMINTENANTNAME=$QUANTUM_ADMIN_TENANT_NAME NEUTRONADMINUSERNAME=$QUANTUM_ADMIN_USERNAME NEUTRONADMINPASSWORD=$QUANTUM_KS_PW NEUTRONADMINAUTHURL=$QUANTUM_ADMIN_AUTH_URL"
77+
VERBOSELOGGING=1 NEUTRONURL=$QUANTUM_URL NEUTRONADMINTENANTNAME=$QUANTUM_ADMIN_TENANT_NAME NEUTRONADMINUSERNAME=$QUANTUM_ADMIN_USERNAME NEUTRONADMINPASSWORD=$QUANTUM_ADMIN_PASSWORD NEUTRONADMINAUTHURL=$QUANTUM_ADMIN_AUTH_URL"
7878
fi
7979

rename-windows-host.sh

+8-1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,12 @@ NEW_HOST_NAME=$4
1212

1313
BASEDIR=$(dirname $0)
1414

15-
$BASEDIR/wsmancmd.py -U https://$HOST:5986/wsman -u $USERNAME -p $PASSWORD 'powershell -NonInteractive -Command "if ([System.Net.Dns]::GetHostName() -ne \"'$NEW_HOST_NAME'\") { Rename-Computer \"'$NEW_HOST_NAME'\" -Restart -Force }"'
15+
NOTFOUND=0
16+
pip freeze | grep pywinrm > /dev/null || NOTFOUND=1
17+
if [ "$NOTFOUND" -eq 1 ]; then
18+
echoerr "pywinrm not found. Install with: sudo pip install --pre pywinrm"
19+
exit 1
20+
fi
21+
22+
timeout 60 $BASEDIR/wsmancmd.py -U https://$HOST:5986/wsman -u $USERNAME -p $PASSWORD 'powershell -NonInteractive -Command "if ([System.Net.Dns]::GetHostName() -ne \"'$NEW_HOST_NAME'\") { Rename-Computer \"'$NEW_HOST_NAME'\" -Restart -Force }"'
1623

0 commit comments

Comments
 (0)