#!/bin/bash # # Deploy a node using automated recipes. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with this program. If not, see # . # Load. source $APP_BASE/lib/hydra/functions || exit 1 hydra_config_load # Parameters FOLDER="$1" # Dispatch if [ ! -z "$FOLDER" ]; then echo "Deploying to $FOLDER..." # Setup deploy environment hydra_deploy_setup folder $FOLDER hydra_deploy_mkdirs # Sync repository to server $DEPLOY_RSYNC "$RSYNC_PATH" $DEPLOY_OPTS # Copy hiera configuration hydra_deploy_copy_secrets folder # Check if puppet is installed if [ ! -e "$FOLDER/usr/bin/puppet" ]; then $DEPLOY_COMMAND apt-get install $DEPLOY_DEPENDENCIES -y fi # Run puppet, overriding FQDN FACTER_domain=$DOMAIN FACTER_hostname=$HOSTNAME FACTER_fqdn=$HOSTNAME.$DOMAIN $DEPLOY_APPLY elif [ -e "$HYDRA_FOLDER/puppet/manifests/nodes/$FQDN.pp" ]; then echo "Deploying to localhost..." # Setup deploy environment hydra_deploy_setup # Check if puppet is installed for dep in $DEPLOY_DEPENDENCIES; do hydra_install_package $dep done # Run puppet $DEPLOY_APPLY fi