>From 84220dbeb416c062e17d6143a2f3ab2b8ad65d38 Mon Sep 17 00:00:00 2001 From: Mo Morsi Date: Fri, 9 Sep 2011 12:49:25 -0400 Subject: [PATCH configure] replace deltacloud init script w/ systemd service specification --- recipes/aeolus/files/deltacloud-core.service | 10 +++ recipes/aeolus/files/deltacloud-core.sysconf | 24 ++++++ recipes/aeolus/manifests/deltacloud.pp | 11 ++- recipes/aeolus/templates/deltacloud-core | 103 -------------------------- 4 files changed, 40 insertions(+), 108 deletions(-) create mode 100644 recipes/aeolus/files/deltacloud-core.service create mode 100644 recipes/aeolus/files/deltacloud-core.sysconf delete mode 100644 recipes/aeolus/templates/deltacloud-core diff --git a/recipes/aeolus/files/deltacloud-core.service b/recipes/aeolus/files/deltacloud-core.service new file mode 100644 index 0000000..3b9a5d7 --- /dev/null +++ b/recipes/aeolus/files/deltacloud-core.service @@ -0,0 +1,10 @@ +[Unit] +Description=An abstract cloud computing api +After=syslog.target network.target + +[Service] +Type=forking +PIDFile=/var/run/deltacloud-core.pid +EnvironmentFile=/etc/sysconfig/deltacloud-core +ExecStart=/usr/bin/deltacloudd -i $DRIVER -e $ENV -p $PORT -d --pid /var/run/deltacloud-core.pid +ExecStop=/bin/kill -TERM $MAINPID diff --git a/recipes/aeolus/files/deltacloud-core.sysconf b/recipes/aeolus/files/deltacloud-core.sysconf new file mode 100644 index 0000000..9184c19 --- /dev/null +++ b/recipes/aeolus/files/deltacloud-core.sysconf @@ -0,0 +1,24 @@ +# Deltacloud API configuration +# http://deltacloud.org + +# Default port where Deltacloud API will listen on (3002) +# You should be able to access Deltacloud API on http://localhost:PORT/api + +PORT=3002 + +# Bind to HOST address (default: localhost) +# You can use both IP address or hostname + +HOST=localhost + +# Default driver to be used (EC2). +# NOTE: Some drivers require some additional gems to be installed. +# Please reffer to http://deltacloud.org to see what gems are needed for specific +# drivers + +DRIVER="ec2" + +# Default log file for Deltacloud API +# LOGFILE="/var/log/deltacloud-core/ec2.log" + +ENV='production' diff --git a/recipes/aeolus/manifests/deltacloud.pp b/recipes/aeolus/manifests/deltacloud.pp index ce9ad05..38e75c5 100644 --- a/recipes/aeolus/manifests/deltacloud.pp +++ b/recipes/aeolus/manifests/deltacloud.pp @@ -12,16 +12,17 @@ class aeolus::deltacloud::core { include ntp::client ### Start the aeolus services - file { "/var/log/deltacloud-core": ensure => 'directory' } - file {"/etc/init.d/deltacloud-core": - content => template("aeolus/deltacloud-core"), - mode => 755 } + file { "/var/log/deltacloud-core.log":} + file {"/lib/systemd/system/deltacloud-core.service": + source => "puppet:///modules/aeolus/deltacloud-core.service"} + file {"/etc/sysconfig/deltacloud-core": + source => "puppet:///modules/aeolus/deltacloud-core.sysconf"} service { 'deltacloud-core': ensure => 'running', enable => true, hasstatus => true, - require => [Package['deltacloud-core'], File["/etc/init.d/deltacloud-core", "/var/log/deltacloud-core"]]} + require => [Package['deltacloud-core'], File["/lib/systemd/system/deltacloud-core.service", "/var/log/deltacloud-core.log", "/etc/sysconfig/deltacloud-core"]]} } class aeolus::deltacloud::ec2 { diff --git a/recipes/aeolus/templates/deltacloud-core b/recipes/aeolus/templates/deltacloud-core deleted file mode 100644 index 5f1f888..0000000 --- a/recipes/aeolus/templates/deltacloud-core +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/bash -# -# -# deltacloud-core startup script for deltacloud-core server -# -# chkconfig: - 97 03 -# description: deltacloud-core is primary server process for the \ -# Deltacloud Core component. -# - -[ -r /etc/sysconfig/deltacloud-core ] && . /etc/sysconfig/deltacloud-core - -ENV="${ENV:-production}" -DRIVER="${DRIVER:-ec2}" -PORT="${PORT:-3002}" -LOCKFILE="${LOCKFILE:-/var/lock/subsys/deltacloud-core}" -LOGFILE="${LOGFILE:-/var/log/deltacloud-core/$DRIVER.log}" -PIDFILE="${THIN_PID:-/var/run/deltacloud-core.pid}" -export DELTACLOUD_MOCK_STORAGE=/usr/lib/ruby/gems/1.8/gems/deltacloud-core-0.3.0/lib/deltacloud/drivers/mock/data/ - -PROG=/usr/bin/deltacloudd - -STARTTIMEOUT=20 - -. /etc/init.d/functions - -start() { - echo -n "Starting deltacloud-core: " - - if [ -f $LOCKFILE ] || [ -f $PIDFILE ] && checkpid `cat $PIDFILE` ; then - echo_success - echo - echo "deltacloud-$DRIVER has already been started" - exit 0 - fi - - $PROG -i $DRIVER -e $ENV -p $PORT >> $LOGFILE 2>&1 & - RETVAL=$? - echo $! > $PIDFILE - if [ $RETVAL -eq 0 ] ; then - TIMEOUT="$STARTTIMEOUT" - while [ $TIMEOUT -gt 0 ]; do - /usr/bin/curl --silent http://localhost:$PORT/api >& /dev/null - RETVAL=$? - if [ $RETVAL -eq 0 ] ; then - touch $LOCKFILE - echo_success - echo - exit 0 - fi - sleep 1 - let TIMEOUT=${TIMEOUT}-1 - done - fi - - echo_failure - echo - exit 1 -} - -stop() { - echo -n "Shutting down deltacloud-core: " - - # FIXME! we need to do a killproc -p here to ensure other deltacloud - # daemons are not killed as well - killproc -p $PIDFILE deltacloudd - RETVAL=$? - if [ $RETVAL -eq 0 ] && rm -f $LOCKFILE ; then - echo_success - echo - else - echo_failure - echo - fi -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - stop - start - ;; - reload) - ;; - force-reload) - restart - ;; - status) - status -p $PIDFILE $PROG - RETVAL=$? - ;; - *) - echo "Usage: deltacloud-core {start|stop|restart|status}" - exit 1 - ;; -esac - -exit $RETVAL -- 1.7.6