merge cdist/master

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
Steven Armstrong 2011-09-19 15:05:12 +02:00
commit cd5b0cc50c
116 changed files with 3513 additions and 2405 deletions

View file

@ -164,25 +164,25 @@ __manifest::
Available for: initial manifest
__global::
Directory that contains generic output like explorer.
Available for: initial manifest, type manifest, type explorer, type codegen
Available for: initial manifest, type manifest, type gencode
__object::
Directory that contains the current object.
Available for: type manifest, type explorer, type codegen
Available for: type manifest, type explorer, type gencode
__object_id::
The type unique object id.
Available for: type manifest, type explorer, type codegen
__self::
Available for: type manifest, type explorer, type gencode
__object_fq::
The full qualified name of the current object.
Available for: type manifest, type explorer, type codegen
Available for: type manifest, type explorer, type gencode
__target_host::
The host we are deploying to.
Available for: initial manifest, type manifest, type codegen
Available for: initial manifest, type manifest, type gencode
__target_user::
User to use for authentication on remote host.
Currently static in core.
__type::
Path to the current type.
Available for: type manifest
Available for: type manifest, type gencode
__type_explorer::
Directory that contains the type explorers.
Available for: type explorer

View file

@ -1,31 +0,0 @@
cdist-cache(1)
==============
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-cache - Cache output of last run
SYNOPSIS
--------
cdist-cache TARGET_HOST
DESCRIPTION
-----------
cdist-cache moves away the objects created during last run so the
next run can use the previous information and compare them with
the current status.
SEE ALSO
--------
cdist(7)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,34 +0,0 @@
cdist-code-run(1)
=================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-code-run - Run explorer remotely
SYNOPSIS
--------
cdist-code-run OBJECT_DIR OBJECT TYPE
DESCRIPTION
-----------
cdist-code-run executes generated code from a given OBJECT.
The OBJECT must be located below OBJECT_DIR.
TYPE must be either local or remote and determines which
code part is to be executed.
SEE ALSO
--------
- cdist(7)
- cdist-object-gencode(1)
- cdist-object-gencode-all(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,43 +0,0 @@
cdist-deploy-to(1)
==================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-deploy-to - Deploy configuration to host
SYNOPSIS
--------
cdist-deploy-to HOSTNAME
DESCRIPTION
-----------
Deploy configurations to the specified host, as configured in the initial
manifest. This script triggers the execution of several other scripts, in so
called stages. It is intented to run either from the command line or from cron.
ENVIRONMENT
-----------
If the environment variable **__cdist_conf_dir** is not set, the
configuration is read from <git-checkout>/conf. The local output directory can
be changed by the variable **__cdist_local_base_dir**. All environment
variables are handled by cdist-config.
SEE ALSO
--------
- cdist(7)
- cdist-config(1)
- cdist-mass-deploy(1)
- cdist-reference(7)
- cdist-stages(7)
COPYING
-------
Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,38 +0,0 @@
cdist-dir(1)
============
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-dir - Poor man's directory synchronisation
SYNOPSIS
--------
cdist-dir <push|pull> TARGET_HOST SRC_DIR DST_DIR
DESCRIPTION
-----------
cdist-dir either pushes a local directory to the target host
or pulls a remote directory from a target host to the local host.
In the push case SRC_DIR is local, in the pull case remote.
In the push case DST_DIR is remote, in the pull case local.
cdist-dir does not cleanup DST_DIR and thus it may contain old
stuff if used multiple times.
cdist-dir does not rely on rsync or other high level tools, because
it cannot expect its existence on the local or target host.
SEE ALSO
--------
cdist(7)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,31 +0,0 @@
cdist-explorer-run-global(1)
============================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-explorer-run-global - Run the global explorers
SYNOPSIS
--------
cdist-explorer-run-global HOSTNAME
DESCRIPTION
-----------
Transfer the global explorers to HOSTNAME, execute them and transfer
back the results.
SEE ALSO
--------
- cdist(7)
- cdist-deploy-to(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,32 +0,0 @@
cdist-manifest-run-init(1)
==========================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-manifest-run-init - Run the initial manifest
SYNOPSIS
--------
cdist-manifest-run-init HOSTNAME
DESCRIPTION
-----------
cdist-manifest-run-init executes the initial manifest, which creates
the first objects.
SEE ALSO
--------
- cdist(7)
- cdist-deploy-to(1)
- cdist-manifest-run-all(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,31 +0,0 @@
cdist-manifest-run(1)
=====================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-manifest-run - Run a given manifest
SYNOPSIS
--------
cdist-manifest-run HOSTNAME MANIFEST
DESCRIPTION
-----------
cdist-manifest-run executes the given MANIFEST.
SEE ALSO
--------
- cdist(7)
- cdist-deploy-to(1)
- cdist-manifest-run-init(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,41 +0,0 @@
cdist-mass-deploy(1)
====================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-mass-deploy - Deploy configuration to many hosts
SYNOPSIS
--------
cdist-mass-deploy [-p] HOSTNAME [HOSTNAME ...]
DESCRIPTION
-----------
cdist-mass-deploy is essentially a wrapper around cdist-deploy-to to
be able to deploy to many hosts on one command line.
EXAMPLES
--------
Deploy in parallel to all hosts specfied in the dsh group configuration ikr,
which is prefixed by "root@":
--------------------------------------------------------------------------------
cdist-mass-deploy -p $(cat ~/.dsh/group/ikr | sed 's/^root@//')
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist(7)
- cdist-deploy-to(1)
COPYING
-------
Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,31 +0,0 @@
cdist-object-all(1)
===================
Steven Armstrong <steven-cdist--@--armstrong.cc>
NAME
----
cdist-object-all - Run the given command on all objects
SYNOPSIS
--------
cdist-object-all HOSTNAME COMMAND
DESCRIPTION
-----------
Iterates over all defined objects and executes the given command on each
of them.
SEE ALSO
--------
- cdist(7)
- cdist-type(1)
COPYING
-------
Copyright \(C) 2011 Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,32 +0,0 @@
cdist-object-code-run(1)
========================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-object-code-run - Execute the generated code for a object
SYNOPSIS
--------
cdist-object-code-run HOSTNAME OBJECT
DESCRIPTION
-----------
Execute the local and remote code for the given object.
SEE ALSO
--------
- cdist(7)
- cdist-object-run(1)
- cdist-code-run(1)
- cdist-run-remote(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,31 +0,0 @@
cdist-object-explorer-run(1)
============================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-object-explorer-run - Run type explorers for a object
SYNOPSIS
--------
cdist-object-explorer-run HOSTNAME OBJECT
DESCRIPTION
-----------
Runs the explorers for the given object on the target host.
SEE ALSO
--------
- cdist(7)
- cdist-deploy-to(1)
- cdist-remote-explorer-run(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,32 +0,0 @@
cdist-object-gencode-run(1)
===========================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-object-gencode-run - Generate code for a object
SYNOPSIS
--------
cdist-object-gencode-run HOSTNAME OBJECT
DESCRIPTION
-----------
For the given object, generate the code for local and remote execution.
SEE ALSO
--------
- cdist(7)
- cdist-code-run(1)
- cdist-object-run(1)
- cdist-object-gencode(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,33 +0,0 @@
cdist-object-gencode(1)
=======================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-object-gencode - Generate code for a given object
SYNOPSIS
--------
cdist-object-gencode HOSTNAME OBJECT
DESCRIPTION
-----------
For the given object, run the gencode executable. The output of this
executable on stdout will be used by cdist-object-gencode-all(1).
SEE ALSO
--------
- cdist(7)
- cdist-code-run(1)
- cdist-deploy-to(1)
- cdist-object-gencode-all(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,31 +0,0 @@
cdist-object-manifest-run(1)
============================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-object-manifest-run - Run an objects manifest
SYNOPSIS
--------
cdist-object-manifest-run HOSTNAME OBJECT
DESCRIPTION
-----------
Run the manifest for the given object.
SEE ALSO
--------
- cdist(7)
- cdist-deploy-to(1)
- cdist-manifest-run(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,35 +0,0 @@
cdist-object-prepare(1)
=======================
Steven Armstrong <steven-cdist--@--armstrong.cc>
NAME
----
cdist-object-prepare - Prepare an object
SYNOPSIS
--------
cdist-object-prepare HOSTNAME OBJECT
DESCRIPTION
-----------
Prepare the given object by running it through stage 3 (object information
retrieval) and stage 4 (run the object manifest).
See related man pages for details.
SEE ALSO
--------
- cdist(7)
- cdist-stages(7)
- cdist-object-explorer-run(1)
- cdist-object-manifest-run(1)
- cdist-type(1)
COPYING
-------
Copyright \(C) 2011 Steven Armstrong. Free use of this software is granted
under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,31 +0,0 @@
cdist-object-push(1)
====================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-object-push - Transfer a object to the target host
SYNOPSIS
--------
cdist-object-push HOSTNAME OBJECT
DESCRIPTION
-----------
Transfers the given object to the target host.
SEE ALSO
--------
- cdist(7)
- cdist-object-run(1)
- cdist-type(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,36 +0,0 @@
cdist-object-run(1)
===================
Steven Armstrong <steven-cdist--@--armstrong.cc>
NAME
----
cdist-object-run - Run an object
SYNOPSIS
--------
cdist-object-run HOSTNAME OBJECT
DESCRIPTION
-----------
Applies the given object on the target host by running it through stage 5
(code generation) and stage 6 (code execution).
See related man pages for details.
SEE ALSO
--------
- cdist(7)
- cdist-stages(7)
- cdist-object-gencode-run(1)
- cdist-object-push(1)
- cdist-object-code-run(1)
- cdist-type(1)
COPYING
-------
Copyright \(C) 2011 Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,33 +0,0 @@
cdist-remote-explorer-run(1)
============================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-remote-explorer-run - Run explorer remotely
SYNOPSIS
--------
cdist-remote-explorer-run VARIABLE_NAME EXPLORER_DIR OUT_DIR
DESCRIPTION
-----------
cdist-remote-explorer-run is executed on the target.
It sets up the variable VARIABLE_NAME to point to the given
EXPLORER_DIR and runs all explorer found in EXPLORER_DIR.
The output of every run explorer is saved into OUT_DIR.
SEE ALSO
--------
- cdist(7)
- cdist-explorer-run-global(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,33 +0,0 @@
cdist-run-remote(1)
===================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-run-remote - Execute something on the target
SYNOPSIS
--------
cdist-run-remote HOSTNAME EXECUTABLE [ARGUMENTS FOR EXECUTABLE]
DESCRIPTION
-----------
cdist-run-remote runs the given executable on the remote host.
It ensures PATH is setup correctly on the target side.
SEE ALSO
--------
- cdist(7)
- cdist-object-code-run(1)
- cdist-deploy-to(1)
- cdist-remote-code-run-all(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,33 +0,0 @@
cdist-type-build-emulation(1)
=============================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-type-build-emulation - Build executables for types
SYNOPSIS
--------
cdist-type-build-emulation OUT_DIR
DESCRIPTION
-----------
cdist-type-build-emulation creates a link to cdist-type-emulator
for every TYPE. These links are placed in a OUT_DIR, which
is prepended into $PATH. This way the user can use TYPE in the
manifests like any other executable.
SEE ALSO
--------
- cdist(7)
- cdist-type-emulator(1)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -1,30 +0,0 @@
cdist-type-template(1)
======================
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist-type-template - Create a new type
SYNOPSIS
--------
cdist-type-template NAME
DESCRIPTION
-----------
cdist-type-template creates a new type and adds the usual files to it.
It is thought to be helpful when writing new types.
SEE ALSO
--------
cdist(7)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

103
doc/man/man1/cdist.text Normal file
View file

@ -0,0 +1,103 @@
cdist(1)
========
Nico Schottelius <nico-cdist--@--schottelius.org>
NAME
----
cdist - Configuration management
SYNOPSIS
--------
cdist [-h] [-V]
cdist banner
cdist config [-h] [-d] [-V] [-c CDIST_HOME] [-i MANIFEST] [-p] [-s] host [host ...]
DESCRIPTION
-----------
cdist is the frontend executable to the cdist configuration management.
cdist supports different as explained below. The options to the main
program are:
-h, --help::
Show the help screen
-V, --version::
Show version and exit
BANNER
-------
Displays the cdist banner.
CONFIG
------
Configure a system
-h, --help::
Show the help screen
-c CDIST_HOME, --cdist-home CDIST_HOME::
Instead of using the parent of the bin directory as cdist home,
use the specified directory
-d, --debug::
Enable debug output
-i MANIFEST, --initial-manifest MANIFEST::
Path to a cdist manifest or - to read from stdin
-p, --parallel::
Operate on multiple hosts in parallel
-s, --sequential::
Operate on multiple hosts sequentially
EXAMPLES
--------
--------------------------------------------------------------------------------
# Configure ikq05.ethz.ch with debug enabled
cdist config -d ikq05.ethz.ch
# Configure hosts in parallel and use a different home directory
cdist config -c ~/p/cdist-nutzung \
-p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch
# Display banner
cdist banner
# Show help
cdist --help
# Show Version
cdist --version
--------------------------------------------------------------------------------
ENVIRONMENT
-----------
TMPDIR, TEMP, TMP::
Setup the base directory for the temporary directory.
See http://docs.python.org/py3k/library/tempfile.html for
more information. This is rather useful, if the standard
directory used does not allow executables.
SEE ALSO
--------
- cdist(7)
- cdist-type-emulator(1)
- cdist-reference(7)
COPYING
-------
Copyright \(C) 2011 Nico Schottelius. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file

@ -0,0 +1,310 @@
#!/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/>.
#
#
# Give the user an introduction into cdist
#
. cdist-config
set -eu
banner="cdist-quickstart>"
continue="Press enter to continue or ctrl-c to abort."
create_continue="Press enter to create the described files/directories"
__prompt()
{
echo -n "$banner" "$@"
read answer
}
################################################################################
# Intro of quickstart
#
cat << eof
$banner cdist version $__cdist_version
Welcome to the interactive guide to cdist!
This is the interactive tutorial and beginners help for cdist and here's
our schedule:
- Stages: How cdist operates
- Explorer: Explore facts of the target host
- Manifest: Map configurations to hosts
- Types: Bundled functionality
- Deploy a configuration to the local host!
eof
__prompt "$continue"
################################################################################
# Stages
#
cat << eof
To deploy configurations to a host, you call
cdist-deploy-to <hostname>
which makes calls to other scripts, which realise the so called "stages".
Usually you'll not notice this, but in case you want to debug or hack cdist,
you can run each stage on its own. Besides that, you just need to remember
that the command cdist-deploy-to is the main cdist command.
See also:
Source of cdist-deploy-to(1), cdist-stages(7)
eof
__prompt "$continue"
################################################################################
# Explorer
#
cat << eof
The first thing cdist always does is running different explorers on the
target host. The explorers can be found in the directory
${__cdist_explorer_dir}
An explorer is executed on the target host and its output is saved to a file.
You can use these files later to decide what or how to configure the host.
For a demonstration, we'll call the OS explorer locally now, but remember:
This is only for demonstration, normally it is run on the target host.
The os explorer will which either displays the detected operating system or
nothing if it does not know your OS.
See also:
cdist-explorer(7)
eof
explorer="${__cdist_explorer_dir}/os"
__prompt "Press enter to execute $explorer"
set -x
"$explorer"
set +x
################################################################################
# Manifest
#
cat << eof
The initial manifest is the entry point for cdist to find out, what you would
like to have configured. It is located at
${__cdist_manifest_init}
And can be as simple as
--------------------------------------------------------------------------------
__file /etc/cdist-configured --type file
--------------------------------------------------------------------------------
See also:
cdist-manifest(7)
eof
__prompt "$continue"
cat << eof
Let's take a deeper look at the initial manifest to understand what it means:
__file /etc/cdist-configured --type file
| | | \\
| | The parameter type \\ With the value file
| |
| |
| | This is the object id
|
__file is a so called "type"
This essentially looks like a standard command executed in the shell.
eof
__prompt "$continue"
cat << eof
And that's exactly true. Manifests are shell snippets that can use
types as commands with arguments. cdist prepends a special path
that contain links to the cdist-type-emulator, to \$PATH, so you
can use your types as a command.
This is also the reason why types should always be prefixed with
"__", to prevent collisions with existing binaries.
The object id is unique per type and used to prevent you from creating
the same object twice.
Parameters are type specific and are always specified as --parameter <value>.
See also:
cdist-type-build-emulation(1), cdist-type-emulator(1)
eof
__prompt "$continue"
################################################################################
# Types
#
cat << eof
Types are bundled functionality and are the main component of cdist.
If you want to have a feature x, you write the type __x. Types are stored in
${__cdist_type_dir}
And cdist ships with some types already!
See also:
cdist-type(7)
eof
__prompt "Press enter to see available types"
set -x
ls ${__cdist_type_dir}
set +x
cat << eof
Types consist of the following parts:
- ${__cdist_name_parameter} (${__cdist_name_parameter_required}/${__cdist_name_parameter_optional}
- ${__cdist_name_manifest}
- ${__cdist_name_explorer}
- ${__cdist_name_gencode}
eof
__prompt "$continue"
cat << eof
Every type must have a directory named ${__cdist_name_parameter}, which
contains required or optional parameters (in newline seperated files).
If an object of a specific type was created in the initial manifest,
the manifest of the type is run and may create other objects.
A type may have ${__cdist_name_explorer}, which are very similar to the
${__cdist_name_explorer} seen above, but with a different purpose:
They are specific to the type and are not relevant for other types.
You may use them for instance to find out details on the target host,
so you can decide what to do on the target host eventually.
After the ${__cdist_name_manifest} and the ${__cdist_name_explorer} of
a type have been run, ${__cdist_name_gencode} is executed, which creates
code to be executed on the target on stdout.
eof
__prompt "$continue"
################################################################################
# Deployment
#
cat << eof
Now you've got some basic knowledge about cdist, let's configure your a host!
Ensure that you have a ssh server running on the host and that you can login as root.
eof
__prompt "Enter hostname or press enter for localhost: "
if [ "$answer" ]; then
host="$answer"
else
host="localhost"
fi
manifestinit="conf/manifest/init"
cat << eof
I'll now setup $manifestinit, containing the following code:
--------------------------------------------------------------------------------
# Every machine becomes a marker, so sysadmins know that automatic
# configurations are happening
__file /etc/cdist-configured
case "\$__target_host" in
$host)
__link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic
__addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist"
;;
esac
--------------------------------------------------------------------------------
WARNING: This will overwrite ${manifestinit}.
eof
cat > "$__cdist_abs_mydir/../$manifestinit" << eof
# Every machine becomes a marker, so sysadmins know that automatic
# configurations are happening
__file /etc/cdist-configured
case "\$__target_host" in
$host)
__link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic
__addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist"
;;
esac
eof
chmod u+x "$__cdist_abs_mydir/../$manifestinit"
cmd="cdist-deploy-to $host"
__prompt "Press enter to run \"$cmd\""
# No quotes, we need field splitting
$cmd
################################################################################
# End
#
cat << eof
--------------------------------------------------------------------------------
That's it, this is the end of the cdist-quickstart.
I hope you've got some impression on how cdist works, here are again some
pointers on where to continue to read:
cdist(7), cdist-deploy-to(1), cdist-type(7), cdist-stages(7)
eof