TODO
====
-- auto install dependencies (hiera-eyaml, keyringer, etc).
- docs.
- deploy:
- lockfile.
if [ "$?" == "1" ]; then
echo "Installing package $1..."
- DEBIAN_FRONTEND=noninteractive apt-get install $1 -y
+ DEBIAN_FRONTEND=noninteractive $SUDO apt-get install $1 -y || exit 1
fi
}
shift
# Check for eyaml
-if ! which eyaml &> /dev/null; then
- echo "Please install ruby-eyaml"
- exit 1
-fi
+hydra_install_package hiera-eyaml
# Check for node
if [ -z "$NODE" ]; then
# Issue commands with pssh
function mass_pssh {
- hydra_check_command parallel-ssh
+ hydra_install_package pssh
parallel-ssh -P -p 4 -t 0 -h $TMPWORK sudo $COMMAND
}
# Issue commands with dish
function mass_dish {
- hydra_check_command dish
+ hydra_install_package dish
dish -f -p /dev/null -e "sudo $COMMAND" -g $TMPWORK
}
# Issue commands with mussh
function mass_mussh {
- hydra_check_command mussh
+ hydra_install_package mussh
mussh -H $TMPWORK -c "sudo $COMMAND"
}
# Check for keyringer.
if ! which keyringer &> /dev/null; then
- echo "Error: please install keyringer."
- exit 1
+ hydra_install_package keyringer
fi
hydra_newkeys $*
# Update keyring.
if [ "$UPDATE_KEYRINGER" != "no" ]; then
if ! which keyringer &> /dev/null; then
- echo "Please install keyringer for a full hydra experience."
+ hydra_install_package keyringer
elif [ ! -e "$HOME/.keyringer/$HYDRA" ]; then
echo "Initializing keyring for $HYDRA..."
keyringer $HYDRA init $HYDRA_FOLDER/$repository