diff options
| -rw-r--r-- | doc/todo.rst | 5 | ||||
| -rw-r--r-- | lib/hydra/deploy | 14 | ||||
| -rwxr-xr-x | share/hydra/deploy | 6 | 
3 files changed, 22 insertions, 3 deletions
diff --git a/doc/todo.rst b/doc/todo.rst index 7c23e48..c74f924 100644 --- a/doc/todo.rst +++ b/doc/todo.rst @@ -3,10 +3,9 @@ TODO  - init: version control in the superproject?  - metrics and alarms subsystem. -- compile: known_hosts. +- compile: sshkey.  - deploy: -    - fqdn match via local config lookup. -    - fact collection.      - lockfile. +    - fqdn match via local config lookup.      - check hostname and required node configuration.      - log applied version and date (in the node and in the repo). diff --git a/lib/hydra/deploy b/lib/hydra/deploy index 748263c..7a8f2e3 100644 --- a/lib/hydra/deploy +++ b/lib/hydra/deploy @@ -15,6 +15,9 @@ function hydra_deploy_setup {    # Fix puppet folder permissions    chmod 700 $HYDRA_FOLDER/puppet +  # Ensure facts folder +  mkdir -p $HYDRA_FOLDER/puppet/config/facts +    if [ "$1" == "remote" ]; then      # Deploy in a remote host      if [ ! -z "$2" ]; then @@ -196,3 +199,14 @@ function hydra_deploy_copy {      $DEPLOY_RSYNC "$RSYNC_PATH" $orig $dest    fi  } + +# Collects facts from a system +function hydra_deploy_facts_collect { +  echo "Collecting facts from remote system..." + +  if [ "$1" == "local" ]; then +    facter --yaml > $HYDRA_FOLDER/puppet/config/facts/$FQDN.yaml +  elif [ "$1" == "remote" ]; then +    $HYDRA_CONNECT $FQDN facter --yaml > $HYDRA_FOLDER/puppet/config/facts/$FQDN.yaml +  fi +} diff --git a/share/hydra/deploy b/share/hydra/deploy index f8dbb08..f491e70 100755 --- a/share/hydra/deploy +++ b/share/hydra/deploy @@ -89,6 +89,9 @@ for node in $NODES; do        $SUDO apt-get install $DEPLOY_DEPENDENCIES -y      fi +    # Collect facts +    hydra_deploy_facts_collect local +      # Run puppet      echo "Applying configuration..."      $DEPLOY_APPLY @@ -112,6 +115,9 @@ EOF      # Create folders      hydra_deploy_mkdirs +    # Collect facts +    hydra_deploy_facts_collect remote +      # Sync repository to server      echo "Syncing configuration..."      $DEPLOY_RSYNC "$RSYNC_PATH" $DEPLOY_OPTS  | 
