#!/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 . # # # 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 # cat << eof $banner cdist version $__cdist_version Welcome to the interactive guide to cdist! This is the interactive tutorial and beginners help for cdist. If you would like to run this tutorial completly without root priveliges, setup the variables __cdist_conf_dir to point to a writable locaction (i.e. $HOME/cdist-config). eof __prompt "$continue" ################################################################################ # /etc/cdist via root # cat << eof To make any use of cdist, we need to create the configuration base, which can normally be found below ${__cdist_conf_dir}. As cdist does not need any root priveliges normally, it is recommended that you create this directory as root and change the owner to a dedicated user (for instance cdist). MANUAL STEP: - Become root: su - - Create ${__cdist_conf_dir}: mkdir ${__cdist_conf_dir} - Change owner to $USER: chown $USER ${__cdist_conf_dir} eof __prompt "$continue" ################################################################################ # Basic directories # cat << eof Now we need to create some basic directories: - ${__cdist_explorer_dir}: Contains explorer, which explore the target - ${__cdist_manifest_dir}: Contains manifests which define types being used - ${__cdist_type_dir}: Contains types eof __prompt "$create_continue" set -x mkdir -p ${__cdist_explorer_dir} mkdir -p ${__cdist_manifest_dir} mkdir -p ${__cdist_type_dir} set +x ################################################################################ # create manifest/init # cat << eof At the beginning of a configuration deployment the first file cdist reads is ${__cdist_manifest_init}, which defines the types to be created on a specific host. We'll create the initial manifest and add some example types to it. eof __prompt "$create_continue" set -x cat << eof > "${__cdist_manifest_init}" # Always create a marker __file /etc/cdist-configured --type file case "\$__target_host" in $(hostname)*) __file /tmp/cdist-quickstart --type file ;; esac eof set +x ################################################################################ # show generated manifest/niit # cat << eof Let's have a look how the initial manifest looks like currently: -------------------------------------------------------------------------------- eof cat "${__cdist_manifest_init}" cat << eof -------------------------------------------------------------------------------- eof __prompt "$continue" ################################################################################ # add type file #