#!/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 . # # # Apply configuration to a host # . cdist-config [ $# -eq 1 ] || __cdist_usage "" set -eu __cdist_target_host="$1" # Make target host available for non-core export $__cdist_name_var_target_host="$__cdist_target_host" # Export variables for core, which others do not reset export __cdist_local_base_dir ################################################################################ # See cdist-stages(7) # echo "cdist $__cdist_version: Configuring $__cdist_target_host" # Init base mkdir -p "$__cdist_local_base_dir" # Link configuration source directory - consistent with remote ln -sf "$__cdist_conf_dir" "$__cdist_local_base_dir/$__cdist_name_conf_dir" # Transfer cdist "binaries" cdist-bin-transfer "$__cdist_target_host" "$__cdist_remote_bin_dir" # Execute general explorers cdist-explorer-run-init "$__cdist_target_host" "$__cdist_out_explorer_dir" # Create initial object base cdist-manifest-run-init "$__cdist_target_host" "$__cdist_out_object_dir" # Create dependent objects cdist-manifest-run-all "$__cdist_target_host" "$__cdist_out_object_dir" # Run explorer of each type for every object of types with explorer cdist-object-explorer-all "$__cdist_target_host" "$__cdist_out_object_dir" # Generate code for all objects cdist-object-codegen-all "$__cdist_target_host" "$__cdist_out_object_dir" # Transfer all objects including code cdist-dir push "$__cdist_target_host" "$__cdist_out_object_dir" \ "${__cdist_remote_out_object_base_dir}" # And finally - execute the code cdist-code-run-all "$__cdist_target_host" echo "Configuration successfully finished."