aboutsummaryrefslogtreecommitdiff
path: root/share/hydra/deploy
diff options
context:
space:
mode:
Diffstat (limited to 'share/hydra/deploy')
-rwxr-xr-xshare/hydra/deploy38
1 files changed, 7 insertions, 31 deletions
diff --git a/share/hydra/deploy b/share/hydra/deploy
index 940c17b..0afd879 100755
--- a/share/hydra/deploy
+++ b/share/hydra/deploy
@@ -32,40 +32,16 @@ fi
for node in $NODES; do
echo "Deploying to $node..."
- # Saner defaults
- $HYDRA_CONNECT $node sudo mkdir -p /etc/puppet
- $HYDRA_CONNECT $node sudo chown -R root. /etc/puppet
- $HYDRA_CONNECT $node sudo chmod -R 640 /etc/puppet
+ # Setup deploy environment
+ hydra_deploy_setyp remote $node
+ hydra_deploy_mkdirs
# Sync repository to server
- # Exclude eventual keys and version control files
- rsync -CrltDv --no-perms --exclude=keys --exclude=hiera/secrets --delete --rsync-path "sudo rsync" $HYDRA_FOLDER/puppet/ $node:/etc/puppet/
+ $DEPLOY_RSYNC
- # Setup custom facts
- FQDN="`$HYDRA_CONNECT $node facter fqdn`"
- DOMAIN="`echo $FQDN | cut -d . -f 2-`"
- ROLE="`grep "^nodo::role: " domain/$DOMAIN/$FQDN.yaml | cut -d ' ' -f 2 | sed -e "s/'//g" -e 's/"//g'`"
- LOCATION="`grep "^nodo::location: " domain/$DOMAIN/$FQDN.yaml | cut -d ' ' -f 2 | sed -e "s/'//g" -e 's/"//g'`"
-
- # Check for manifest
- if [ ! -e "$HYDRA_FOLDER/puppet/manifests/nodes/$FQDN.pp" ]; then
- echo "Not found: $HYDRA_FOLDER/puppet/manifests/nodes/$FQDN.pp"
- exit 1
- fi
-
- # Copy needed hiera YAMLs
- $HYDRA_CONNECT $node sudo mkdir -p $FOLDER/etc/puppet/secrets/{domain,location,node,role}
- $HYDRA_CONNECT $node sudo cp $HYDRA_FOLDER/puppet/hiera/secrets/domain/$DOMAIN.yaml $FOLDER/etc/puppet/hiera/domain/
- $HYDRA_CONNECT $node sudo cp $HYDRA_FOLDER/puppet/hiera/secrets/location/$LOCATION.yaml $FOLDER/etc/puppet/hiera/location/
- $HYDRA_CONNECT $node sudo cp $HYDRA_FOLDER/puppet/hiera/secrets/location/$ROLE.yaml $FOLDER/etc/puppet/hiera/role/
+ # Copy hiera configuration
+ hydra_hiera_copy
# Run puppet
- $HYDRA_CONNECT $node <<EOF
- ##### BEGIN REMOTE SCRIPT #####
- sudo chown -R root. /etc/puppet
- sudo chmod -R 640 /etc/puppet
- LC_ALL=C FACTER_role=$ROLE FACTER_location=$LOCATION \
- sudo puppet apply /etc/puppet/manifests/nodes/$FQDN.pp
- ##### END REMOTE SCRIPT #######
-EOF
+ $DEPLOY_APPLY
done