add python link
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
5429022d61
commit
c5d88435f1
18 changed files with 1 additions and 874 deletions
|
@ -1,50 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# This binary is executed on the remote side to execute code
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<object> <type>"
|
|
||||||
set -ue
|
|
||||||
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
__cdist_code_type="$1"; shift
|
|
||||||
|
|
||||||
if [ ! -d "$(__cdist_object_dir "$__cdist_object_self")" ]; then
|
|
||||||
__cdist_exit_err "Object undefined"
|
|
||||||
fi
|
|
||||||
|
|
||||||
__cdist_code="$(__cdist_object_code "$__cdist_object_self" "${__cdist_code_type}")"
|
|
||||||
|
|
||||||
__cdist_echo info "Checking code-${__cdist_code_type}"
|
|
||||||
|
|
||||||
if [ -e "$__cdist_code" ]; then
|
|
||||||
if [ -f "$__cdist_code" ]; then
|
|
||||||
if [ -x "$__cdist_code" ]; then
|
|
||||||
__cdist_echo info "Executing code-${__cdist_code_type}"
|
|
||||||
__cdist_exec_fail_on_error "$__cdist_code"
|
|
||||||
else
|
|
||||||
__cdist_exit_err "$__cdist_code exists, but is not executable."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
__cdist_exit_err "$__cdist_code exists, but is not a file."
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,49 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Deploy configuration to a host
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 1 ] || __cdist_usage "<target host>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Kill children on interrupt - only in interactive scripts
|
|
||||||
trap __cdist_kill_on_interrupt INT TERM
|
|
||||||
|
|
||||||
__cdist_target_host="$1"
|
|
||||||
|
|
||||||
# Make target host available for non-core
|
|
||||||
export $__cdist_name_var_target_host="$__cdist_target_host"
|
|
||||||
export $__cdist_name_var_target_user="$__cdist_remote_user"
|
|
||||||
|
|
||||||
# Export variables for core, which others do not reset
|
|
||||||
export __cdist_local_base_dir
|
|
||||||
|
|
||||||
__cdist_echo info "cdist $__cdist_version: Configuring $__cdist_target_host "
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# See cdist-stages(7)
|
|
||||||
#
|
|
||||||
|
|
||||||
cdist-object-all "$__cdist_target_host" cdist-object-run
|
|
||||||
cdist-cache "$__cdist_target_host"
|
|
||||||
|
|
||||||
__cdist_echo info "cdist $__cdist_version: Successfully finished run"
|
|
|
@ -1,33 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Setup environment for use with cdist - must be standalone!
|
|
||||||
#
|
|
||||||
|
|
||||||
export PATH="$(cd "${0%/*}" && pwd -P):$PATH"
|
|
||||||
export MANPATH="$(cd "${0%/*}/../doc/man" && pwd -P):$MANPATH"
|
|
||||||
|
|
||||||
if [ "$(echo ${SHELL##*/} | grep 'csh$')" ]; then
|
|
||||||
echo setenv PATH $PATH \;
|
|
||||||
echo setenv MANPATH $MANPATH
|
|
||||||
else
|
|
||||||
echo export PATH=$PATH
|
|
||||||
echo export MANPATH=$MANPATH
|
|
||||||
fi
|
|
|
@ -1,43 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Copy & run the global explorers, i.e. not bound to types
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 1 ] || __cdist_usage "<target_host>"
|
|
||||||
set -ue
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
|
|
||||||
__cdist_echo info "Running global explorers "
|
|
||||||
|
|
||||||
# copy the explorers
|
|
||||||
cdist-dir push "$__cdist_target_host" \
|
|
||||||
"${__cdist_explorer_dir}" "${__cdist_remote_explorer_dir}"
|
|
||||||
|
|
||||||
# run the initial explorers remotely
|
|
||||||
cdist-run-remote "${__cdist_target_host}" cdist-remote-explorer-run \
|
|
||||||
"$__cdist_name_var_explorer" "$__cdist_remote_explorer_dir" \
|
|
||||||
"$__cdist_remote_out_explorer_dir"
|
|
||||||
|
|
||||||
# retrieve the results
|
|
||||||
cdist-dir pull "$__cdist_target_host" \
|
|
||||||
"${__cdist_remote_out_explorer_dir}" "${__cdist_out_explorer_dir}"
|
|
|
@ -1,56 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Let's build a cconfig tree from a configuration
|
|
||||||
# And save it into the cache tree
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <manifest>"
|
|
||||||
set -u
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_manifest="$1"; shift
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Export information for cdist-type-emulator or manifest
|
|
||||||
#
|
|
||||||
|
|
||||||
# Config dir should not get reset - FIXME: why did I do this?
|
|
||||||
export __cdist_conf_dir
|
|
||||||
|
|
||||||
# Used to record the source in the object
|
|
||||||
export __cdist_manifest
|
|
||||||
|
|
||||||
# Export information for manifests - __cdist_out_dir comes from cdist-config
|
|
||||||
export __global="$__cdist_out_dir"
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# The actual run
|
|
||||||
#
|
|
||||||
|
|
||||||
# Ensure binaries exist and are up-to-date
|
|
||||||
cdist-type-build-emulation "${__cdist_out_type_bin_dir}" \
|
|
||||||
|| __cdist_exit_err "Failed to build type emulation binaries"
|
|
||||||
|
|
||||||
# prepend our path, so all cdist tools come before other tools
|
|
||||||
export PATH="${__cdist_out_type_bin_dir}:$PATH"
|
|
||||||
|
|
||||||
__cdist_exec_fail_on_error "${__cdist_manifest}"
|
|
|
@ -1,34 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Let's build a cconfig tree from a configuration
|
|
||||||
# And save it into the cache tree
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 1 ] || __cdist_usage "<target host>"
|
|
||||||
set -e
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
|
|
||||||
eval export $__cdist_name_var_manifest=\"\$__cdist_manifest_dir\"
|
|
||||||
|
|
||||||
__cdist_echo info "Running initial manifest for $__cdist_target_host "
|
|
||||||
cdist-manifest-run "$__cdist_target_host" "$__cdist_manifest_init"
|
|
|
@ -1,75 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Deploy configuration to many hosts
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -ge 1 ] || __cdist_usage "[-p] <target host> [target host ]"
|
|
||||||
set -u
|
|
||||||
|
|
||||||
# Kill children on interrupt - only in interactive scripts
|
|
||||||
trap __cdist_kill_on_interrupt INT TERM
|
|
||||||
|
|
||||||
filter()
|
|
||||||
{
|
|
||||||
awk -v host=$1 '{ print "[" host "] " $0 }'
|
|
||||||
}
|
|
||||||
|
|
||||||
parallel=""
|
|
||||||
if [ "$1" = "-p" ]; then
|
|
||||||
parallel=yes
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
i=0
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
if [ "$parallel" ]; then
|
|
||||||
cdist-deploy-to "$1" 2>&1 | filter "$1" &
|
|
||||||
# Record pid and host for use later
|
|
||||||
i=$((i+1))
|
|
||||||
eval pid_$i=$!
|
|
||||||
eval host_$i=\$1
|
|
||||||
else
|
|
||||||
cdist-deploy-to "$1" 2>&1 | filter "$1"
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
e=0
|
|
||||||
if [ "$parallel" ]; then
|
|
||||||
__cdist_echo info "Waiting for cdist-deploy-to jobs to finish"
|
|
||||||
while [ "$i" -gt 0 ]; do
|
|
||||||
eval pid=\$pid_$i
|
|
||||||
wait "$pid"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
e=$((e+1))
|
|
||||||
eval e_host_$e=\$host_$i
|
|
||||||
fi
|
|
||||||
i=$((i-1))
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Display all failed hosts after all runs are done, so the sysadmin gets them
|
|
||||||
while [ "$e" -gt 0 ]; do
|
|
||||||
eval host=\$host_$e
|
|
||||||
__cdist_echo error "Configuration of host $host failed."
|
|
||||||
e=$((e-1))
|
|
||||||
done
|
|
|
@ -1,56 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Run the given command for each created object.
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <command>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_command="$1"; shift
|
|
||||||
|
|
||||||
__cdist_objects="$__cdist_tmp_dir/objects"
|
|
||||||
|
|
||||||
# Ensure object dir exists, so marker can be created
|
|
||||||
mkdir -p "${__cdist_out_object_dir}"
|
|
||||||
|
|
||||||
# Loop until we do not create new objects anymore
|
|
||||||
# which is equal to all objects have been run
|
|
||||||
touch "$__cdist_objects_created"
|
|
||||||
while [ -f "$__cdist_objects_created" ]; do
|
|
||||||
# Assume we're done after this run
|
|
||||||
rm "$__cdist_objects_created"
|
|
||||||
|
|
||||||
# Get listing of objects
|
|
||||||
__cdist_object_list "$__cdist_out_object_dir" > "$__cdist_objects"
|
|
||||||
|
|
||||||
# NEED TO CREATE ARRAY, SSH DESTROYS WHILE READ LOOP
|
|
||||||
while read __cdist_object; do
|
|
||||||
set -- "$@" "$__cdist_object"
|
|
||||||
done < "$__cdist_objects"
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
__cdist_object="$1"; shift
|
|
||||||
$__cdist_command "$__cdist_target_host" "$__cdist_object"
|
|
||||||
done
|
|
||||||
done
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Exec the code for the given object locally and remote
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <object>"
|
|
||||||
set -e
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object="$1"; shift
|
|
||||||
|
|
||||||
# Code local
|
|
||||||
export __cdist_out_object_dir="$__cdist_out_object_dir"
|
|
||||||
cdist-code-run "$__cdist_object" "${__cdist_name_gencode_local}"
|
|
||||||
|
|
||||||
# Code remote
|
|
||||||
cdist-run-remote "$__cdist_target_host" \
|
|
||||||
"cdist-code-run" "$__cdist_object" "${__cdist_name_gencode_remote}"
|
|
|
@ -1,67 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Run the explorers for the given object on the target host.
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <object>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
|
|
||||||
__cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
|
|
||||||
__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
|
|
||||||
|
|
||||||
# Check if type of object has >= 1 explorer
|
|
||||||
__cdist_has_explorer="$(__cdist_type_has_explorer "$__cdist_type")"
|
|
||||||
# Run the type explorers for the current object if any
|
|
||||||
if [ "$__cdist_has_explorer" ]; then
|
|
||||||
if ! __cdist_type_explorer_pushed "$__cdist_type"; then
|
|
||||||
src_dir="$(__cdist_type_explorer_dir "$__cdist_type")"
|
|
||||||
dst_dir="$(__cdist_remote_type_explorer_dir "$__cdist_type")"
|
|
||||||
__cdist_echo info "Transfering explorers for $__cdist_type "
|
|
||||||
cdist-dir push "$__cdist_target_host" "$src_dir" "$dst_dir"
|
|
||||||
__cdist_type_explorer_pushed_add "$__cdist_type"
|
|
||||||
fi
|
|
||||||
|
|
||||||
__cdist_echo info "Running explorers"
|
|
||||||
# Copy object parameters
|
|
||||||
cdist-dir push "$__cdist_target_host" \
|
|
||||||
"$(__cdist_object_parameter_dir "$__cdist_object_self")" \
|
|
||||||
"$(__cdist_remote_object_parameter_dir "$__cdist_object_self")"
|
|
||||||
|
|
||||||
# Execute explorers
|
|
||||||
cdist-run-remote "$__cdist_target_host" \
|
|
||||||
"$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\"" \
|
|
||||||
"$__cdist_name_var_object_id=\"$__cdist_object_id\"" \
|
|
||||||
"$__cdist_name_var_self=\"$__cdist_object_self\"" \
|
|
||||||
cdist-remote-explorer-run \
|
|
||||||
"$__cdist_name_var_type_explorer" \
|
|
||||||
"$(__cdist_remote_type_explorer_dir "$__cdist_type")" \
|
|
||||||
"$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")"
|
|
||||||
|
|
||||||
# Copy back results
|
|
||||||
cdist-dir pull "$__cdist_target_host" \
|
|
||||||
"$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")" \
|
|
||||||
"$(__cdist_object_type_explorer_dir "$__cdist_object_self")"
|
|
||||||
fi
|
|
|
@ -1,62 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Generate code from one object (object must be relative path!)
|
|
||||||
# WARNING: OUTPUT ON STDOUT, ERRORS NEED TO BE ON STDERR!
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 3 ] || __cdist_usage "<target host>" "<object>" "<type>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
__cdist_gencode_type="$1"; shift
|
|
||||||
|
|
||||||
__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
|
|
||||||
__cdist_type_gencode="$(__cdist_type_gencode "$__cdist_type" "$__cdist_gencode_type")"
|
|
||||||
__cdist_code_output="$(__cdist_object_code "$__cdist_object_self" "$__cdist_gencode_type")"
|
|
||||||
|
|
||||||
# export variables for the gencode script
|
|
||||||
export __object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
|
|
||||||
export __object="$(__cdist_object_dir "$__cdist_object_self")"
|
|
||||||
export __global="$__cdist_out_dir"
|
|
||||||
|
|
||||||
if [ -x "$__cdist_type_gencode" ]; then
|
|
||||||
__cdist_exec_fail_on_error "$__cdist_type_gencode" > "$__cdist_tmp_file"
|
|
||||||
else
|
|
||||||
if [ -e "$__cdist_type_gencode" ]; then
|
|
||||||
__cdist_exit_err "$__cdist_type_gencode exists, but is not executable"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ensure it's empty, if there is no gencode
|
|
||||||
: > "$__cdist_tmp_file"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Only create code, if gencode created output
|
|
||||||
if [ "$(wc -l < "$__cdist_tmp_file")" -gt 0 ]; then
|
|
||||||
cat - "$__cdist_tmp_file" << eof > "$__cdist_code_output"
|
|
||||||
#
|
|
||||||
# The following code was generated by $__cdist_type_gencode
|
|
||||||
#
|
|
||||||
|
|
||||||
eof
|
|
||||||
chmod u+x "${__cdist_code_output}"
|
|
||||||
fi
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# For the given object create the code to be executed on the target.
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <object>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
|
|
||||||
__cdist_echo info "Generating local code "
|
|
||||||
cdist-object-gencode "$__cdist_target_host" "$__cdist_object_self" \
|
|
||||||
"${__cdist_name_gencode_local}"
|
|
||||||
|
|
||||||
__cdist_echo info "Generating remote code "
|
|
||||||
cdist-object-gencode "$__cdist_target_host" "$__cdist_object_self" \
|
|
||||||
"${__cdist_name_gencode_remote}"
|
|
|
@ -1,58 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Run the manifest for the given object.
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <object>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
|
|
||||||
# FIXME: rename to __cdist_object_dir (everywhere!)
|
|
||||||
__cdist_cur_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
|
|
||||||
__cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
|
|
||||||
|
|
||||||
__cdist_echo info "Checking manifest "
|
|
||||||
|
|
||||||
__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
|
|
||||||
__cdist_manifest="$(__cdist_type_manifest "$__cdist_type")"
|
|
||||||
|
|
||||||
if [ -f "$__cdist_manifest" ]; then
|
|
||||||
if [ -x "$__cdist_manifest" ]; then
|
|
||||||
# Make __cdist_manifest available for cdist-type-emulator
|
|
||||||
export __cdist_manifest
|
|
||||||
|
|
||||||
__cdist_echo info "Executing manifest "
|
|
||||||
export $__cdist_name_var_object="$__cdist_cur_object_dir"
|
|
||||||
export $__cdist_name_var_object_id="$__cdist_object_id"
|
|
||||||
export $__cdist_name_var_type="$(__cdist_type_dir "$__cdist_type")"
|
|
||||||
|
|
||||||
cdist-manifest-run "$__cdist_target_host" "$__cdist_manifest"
|
|
||||||
|
|
||||||
# Tell cdist-object-run-all that there may be new objects
|
|
||||||
touch "$__cdist_objects_created"
|
|
||||||
else
|
|
||||||
__cdist_exit_err "${__cdist_manifest} needs to be executable."
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,47 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# For the given object:
|
|
||||||
# - run type explorers
|
|
||||||
# - run type manifest
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <object>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
|
|
||||||
[ -d "$__cdist_object_dir" ] || __cdist_exit_err "Object undefined"
|
|
||||||
|
|
||||||
# Export to non-core for use in manifest and gencode scripts
|
|
||||||
export $__cdist_name_var_self=$__cdist_object_self
|
|
||||||
|
|
||||||
__cdist_object_prepared="$(__cdist_object_prepared "$__cdist_object_self")"
|
|
||||||
if [ ! -f "$__cdist_object_prepared" ]; then
|
|
||||||
__cdist_echo info "Preparing object"
|
|
||||||
cdist-object-explorer-run "$__cdist_target_host" "$__cdist_object_self"
|
|
||||||
cdist-object-manifest-run "$__cdist_target_host" "$__cdist_object_self"
|
|
||||||
|
|
||||||
# Mark this object as prepared
|
|
||||||
touch "$__cdist_object_prepared"
|
|
||||||
fi
|
|
|
@ -1,35 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Transfer the given object to the target host.
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <object>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
|
|
||||||
__cdist_echo info "Transferring object"
|
|
||||||
cdist-dir push "$__cdist_target_host" \
|
|
||||||
"$(__cdist_object_dir "$__cdist_object_self")" \
|
|
||||||
"$(__cdist_remote_object_dir "$__cdist_object_self")"
|
|
|
@ -1,65 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# For the given object:
|
|
||||||
# - run type explorers
|
|
||||||
# - run type manifest
|
|
||||||
# - generate code
|
|
||||||
# - copy object to target
|
|
||||||
# - execute code on target
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 2 ] || __cdist_usage "<target host> <object>"
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
__cdist_target_host="$1"; shift
|
|
||||||
__cdist_object_self="$1"; shift
|
|
||||||
__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
|
|
||||||
[ -d "$__cdist_object_dir" ] || __cdist_exit_err "Object undefined"
|
|
||||||
|
|
||||||
# Export to non-core for use in manifest and gencode scripts
|
|
||||||
export $__cdist_name_var_self=$__cdist_object_self
|
|
||||||
|
|
||||||
__cdist_object_finished="$(__cdist_object_finished "$__cdist_object_self")"
|
|
||||||
if [ ! -f "$__cdist_object_finished" ]; then
|
|
||||||
# Resolve dependencies, if any
|
|
||||||
__cdist_object_require="$(__cdist_object_require "$__cdist_object_self")"
|
|
||||||
if [ -f "$__cdist_object_require" ]; then
|
|
||||||
# NEED TO CREATE ARRAY, SSH DESTROYS WHILE READ LOOP
|
|
||||||
while read __cdist_requirement; do
|
|
||||||
set -- "$@" "$__cdist_requirement"
|
|
||||||
done < "$__cdist_object_require"
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
__cdist_requirement="$1"; shift
|
|
||||||
__cdist_echo info "Resolving requirement $__cdist_requirement"
|
|
||||||
cdist-object-run "$__cdist_target_host" "$__cdist_requirement"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
cdist-object-gencode-run "$__cdist_target_host" "$__cdist_object_self"
|
|
||||||
cdist-object-push "$__cdist_target_host" "$__cdist_object_self"
|
|
||||||
cdist-object-code-run "$__cdist_target_host" "$__cdist_object_self"
|
|
||||||
|
|
||||||
# Mark this object as done
|
|
||||||
touch "$__cdist_object_finished"
|
|
||||||
fi
|
|
|
@ -1,68 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# 2011 Nico Schottelius (nico-cdist at schottelius.org)
|
|
||||||
#
|
|
||||||
# This file is part of cdist.
|
|
||||||
#
|
|
||||||
# cdist is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# cdist 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 General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# This binary is executed on the remote side to execute explorers
|
|
||||||
#
|
|
||||||
# It supports different variables names to be used, so __explorers
|
|
||||||
# and __type_explorers can be submitted :-)
|
|
||||||
#
|
|
||||||
|
|
||||||
. cdist-config
|
|
||||||
[ $# -eq 3 ] || __cdist_usage "<variable name> <explorer dir> <out dir>"
|
|
||||||
set -ue
|
|
||||||
|
|
||||||
# Variable that defines the home of the explorers
|
|
||||||
__cdist_variable_name="$1"; shift
|
|
||||||
|
|
||||||
# Find explorers here
|
|
||||||
__cdist_explorer_dir="$1"; shift
|
|
||||||
|
|
||||||
# Write output here
|
|
||||||
__cdist_my_out_dir="$1"; shift
|
|
||||||
|
|
||||||
# Setup environment
|
|
||||||
export $__cdist_variable_name="$__cdist_explorer_dir"
|
|
||||||
export __global="$__cdist_remote_out_dir"
|
|
||||||
|
|
||||||
mkdir -p "$__cdist_my_out_dir"
|
|
||||||
|
|
||||||
# Ensure there is at least one explorer
|
|
||||||
num="$(ls -1 "$__cdist_explorer_dir" | wc -l)"
|
|
||||||
if [ "$num" -lt 1 ]; then
|
|
||||||
__cdist_exit_err "${__cdist_explorer_dir}: Contains no explorers"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Execute all explorers
|
|
||||||
for explorer in "$__cdist_explorer_dir/"*; do
|
|
||||||
explorer_name="${explorer##*/}"
|
|
||||||
|
|
||||||
if [ -f "$explorer" ]; then
|
|
||||||
if [ ! -x "$explorer" ]; then
|
|
||||||
__cdist_exit_err "Explorer \"$explorer\" exists, but is not executable."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Execute explorers and save results in remote destination directory
|
|
||||||
"$explorer" > "${__cdist_my_out_dir}/$explorer_name"
|
|
||||||
else
|
|
||||||
if [ -e "$explorer" ]; then
|
|
||||||
__cdist_exit_err "Explorer \"$explorer\" exists, but is not a file."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
1
bin/cdist.py
Symbolic link
1
bin/cdist.py
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
cdist
|
Loading…
Reference in a new issue