| #!/bin/bash |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| # update database connection |
| # /usr/bin/cloudstack-setup-databases cloud:password@$MYSQL_PORT_3306_TCP_ADDR |
| # start cloudstack-management server |
| |
| # initial startup of the container to generage ssh_key |
| # performed as privileged |
| if [ ! -d /var/cloudstack/management/.ssh ]; then |
| mknod /dev/loop6 -m0660 b 7 6 |
| fi |
| |
| # if global setting are changed, it will restart the management server |
| RESTART_REQUIRED=false |
| |
| if [ ! $MYSQL_PORT_3306_TCP_ADDR ]; then |
| echo "variable MYSQL_PORT_3306_TCP_ADDR not define" |
| exit 12 |
| fi |
| |
| until nc -z $MYSQL_PORT_3306_TCP_ADDR 3306; do |
| echo "waiting for mysql-server..." |
| sleep 1 |
| done |
| |
| mysql -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -h "$MYSQL_PORT_3306_TCP_ADDR" \ |
| -e "show databases;"|grep -q cloud |
| |
| case $? in |
| 1) |
| echo "deploying new cloud databases" |
| INITIATED=false |
| cloudstack-setup-databases cloud:password@${MYSQL_PORT_3306_TCP_ADDR} \ |
| --deploy-as=root:${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -i localhost |
| ;; |
| 0) |
| echo "using existing databases" |
| INITIATED=true |
| cloudstack-setup-databases cloud:password@${MYSQL_PORT_3306_TCP_ADDR} |
| ;; |
| *) |
| echo "cannot access database" |
| exit 12 |
| ;; |
| esac |
| |
| service cloudstack-management start |
| sleep 10 |
| |
| if [ $HYPERVISOR_TEMPLATE ]; then |
| #download the systemvm template into /exports |
| /root/systemtpl.sh $HYPERVISOR_TEMPLATE |
| fi |
| |
| if [ $CLOUDSTACK_HOST ]; then |
| mysql -u root -p${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -h ${MYSQL_PORT_3306_TCP_ADDR} -e \ |
| "UPDATE cloud.configuration SET value='${CLOUDSTACK_HOST}' where name = 'host';" |
| RESTART_REQUIRED=true |
| fi |
| |
| if [ $DEV_API ] && [ $INITIATED == false ]; then |
| mysql -u root -p${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -h ${MYSQL_PORT_3306_TCP_ADDR} -e \ |
| "UPDATE cloud.configuration SET value='8096' where name = 'integration.api.port';" |
| mysql -u root -p${MYSQL_ENV_MYSQL_ROOT_PASSWORD} -h ${MYSQL_PORT_3306_TCP_ADDR} -e \ |
| "UPDATE cloud.configuration SET value='true' where name = 'system.vm.use.local.storage';" |
| RESTART_REQUIRED=true |
| fi |
| |
| [ $RESTART_REQUIRED == true ] && service cloudstack-management restart |
| |
| tail -f /var/log/cloudstack/management/management-server.log |