fuel-library/deployment/puppet/vmware/files/nova-compute-init-centos
Igor Zinovik 47c5088be0 configure nova-compute use one vsphere cluster
- create separate directory '/etc/nova/nova-compute.d' where all
  configuration files that hold all configuration stanzas related to
  vmware compute driver
- in simple mode we upload init script in appropriate directory and
  create symbolic links on it that are named like
  nova-compute-vmware-%cluster_id% ; script internally splits its own
  file name and extracts cluster name.  This allow user to selectively
  start/stop nova-compute services.
- Ubuntu init system (Upstart) requires initd service to be restarted,
  on CentOS we run '/bin/true'
- create individual nova-compute configuration file per vSphere cluster;
  file is named `/etc/nova/nova-compute.d/vmware-%cluster_id%.conf',
  e.g.  /etc/nova/nova-compute.d/vmware-0.conf
- create appropriate corosync resource/primitive per nova-compute
  service in case of HA
- currently we use same login and password for all nova-computes
- set more strict access permissions (0600) on nova-compute.conf and
  generated files in `nova-compute.d' directory; these files hold
  sensitive information (credentials to vCenter server)
- set 'multi_host' configuration stanza to False for both deployment
  modes (nonHA/HA)
- add basic unit test coverage for provided functionality

DocImpact
Change-Id: I675dd2b7cdeacae1e703b82001dc2c855511e320
Impelements: blueprint 1-1-nova-compute-vsphere-cluster-mapping
2014-12-17 22:52:14 +03:00

126 lines
3.0 KiB
Bash

#!/bin/sh
# This file is managed by Puppet.
#
# openstack-nova-compute OpenStack Nova Compute Worker
#
# chkconfig: - 98 02
# description: Compute workers manage computing instances on host \
# machines. Through the API, commands are dispatched \
# to compute workers to: \
# * Run instances \
# * Terminate instances \
# * Reboot instances \
# * Attach volumes \
# * Detach volumes \
# * Get console output
### BEGIN INIT INFO
# Provides:
# Required-Start: $remote_fs $network $syslog
# Required-Stop: $remote_fs $syslog
# Default-Stop: 0 1 6
# Short-Description: OpenStack Nova Compute Worker
# Description: Compute workers manage computing instances on host
# machines. Through the API, commands are dispatched
# to compute workers to:
# * Run instances
# * Terminate instances
# * Reboot instances
# * Attach volumes
# * Detach volumes
# * Get console output
### END INIT INFO
. /etc/rc.d/init.d/functions
suffix=compute
cluster=${0##*-}
prog=openstack-nova-$suffix-vmware-$cluster
exec="/usr/bin/nova-$suffix"
config="/etc/nova/nova.conf"
pidfile="/var/run/nova/nova-$suffix.$cluster.pid"
logfile="/var/log/nova/$suffix-$cluster.log"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
start() {
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
daemon --user nova --pidfile $pidfile "$exec --logfile $logfile ${OPTIONS} &>/dev/null & echo \$! > $pidfile"
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc -p $pidfile ${prog%%.*}
if pgrep -f "nova-$suffix.*$cluster\.conf" &>/dev/null ; then
sleep 2
pgrep -f "nova-$suffix.*$cluster\.conf" &>/dev/null && \
pkill -f "$cluster.conf"
fi
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
reload() {
restart
}
force_reload() {
restart
}
rh_status() {
status -p $pidfile $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $?