|
|
|
@ -13,49 +13,31 @@ INTRODUCTION |
|
|
|
|
This document gives you a pointer on what to read in |
|
|
|
|
which order and is thus more a "guide to the right locations". |
|
|
|
|
|
|
|
|
|
cdist-quickstart:: |
|
|
|
|
Read this, if you are brand new in the cdist world and just want |
|
|
|
|
to get your hands dirty. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEFINE STATE IN THE INITIAL MANIFEST |
|
|
|
|
------------------------------------ |
|
|
|
|
The **initial manifest** is the entry point for cdist to find out, which |
|
|
|
|
**objects** to configure on the selected host. Objects are instances of |
|
|
|
|
**types**, like in object orientated programming languages. |
|
|
|
|
An object is represented by the |
|
|
|
|
type + slash + object name: ***__file/etc/cdist-configured*** is an |
|
|
|
|
object of the type ***__file*** with the name ***etc/cdist-configured***. |
|
|
|
|
|
|
|
|
|
Cdist searches for the initial manifest at **conf/manifest/init** and |
|
|
|
|
executes it as a shell script using **/bin/sh -e**. |
|
|
|
|
|
|
|
|
|
Within this initial manifest, you define, which objects should be |
|
|
|
|
created on which host. To distinguish between hosts, you can use the |
|
|
|
|
environment variable **__target_host**. Let's have a look at a simple |
|
|
|
|
example: |
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------- |
|
|
|
|
__cdistmarker |
|
|
|
|
|
|
|
|
|
case "$__target_host" in |
|
|
|
|
localhost) |
|
|
|
|
__directory /home/services/kvm-vm --parents yes |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
-------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
This manifest says: Independent of the host, always use the type |
|
|
|
|
***__cdistmarker***, which creates the file **/etc/cdist-configured**, |
|
|
|
|
with the timestamp as content. |
|
|
|
|
The directory ***/home/services/kvm-vm***, including all parent directories, |
|
|
|
|
is only created on the host ***localhost***. |
|
|
|
|
|
|
|
|
|
As you can see, there is no magic involved, the manifest is simple shell code that |
|
|
|
|
utilises cdist types. Every available type can be executed like a normal |
|
|
|
|
command. Use **ls conf/type** to get a list of available types. If you have |
|
|
|
|
setup the MANPATH correctly as, you can use **man cdist-reference** to access |
|
|
|
|
the reference with pointers to the manpages. |
|
|
|
|
cdist-reference:: |
|
|
|
|
Know everything about cdist: the types, explorers or environment |
|
|
|
|
variables usable. |
|
|
|
|
|
|
|
|
|
PARTS BELOW HERE ARE TO-BE-DONE |
|
|
|
|
|
|
|
|
|
cdist-installation:: |
|
|
|
|
The comprehensive guide to your first cdist installation. |
|
|
|
|
|
|
|
|
|
cdist-manifest:: |
|
|
|
|
initial in here |
|
|
|
|
|
|
|
|
|
cdist-best-practice:: |
|
|
|
|
cdist-explorer:: |
|
|
|
|
cdist-hacker:: |
|
|
|
|
|
|
|
|
|
cdist-stages:: |
|
|
|
|
cdist-type:: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-> ssh stuff double: cdist-best-practice and here |
|
|
|
|
|
|
|
|
|
|
|
|
|
|