#!/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 remote $node hydra_deploy_mkdirs # Sync repository to server $DEPLOY_RSYNC # Copy hiera configuration hydra_hiera_copy # Check if puppet is installed if [ ! -e "$FOLDER/usr/bin/puppet" ]; then $DEPLOY_COMMAND apt-get install puppet -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 hydra_install_package puppet # Run puppet $DEPLOY_APPLY fi