| 
									
										
										
										
											2011-02-20 02:07:56 +01:00
										 |  |  | #!/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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | banner="cdist-quickstart>" | 
					
						
							|  |  |  | continue="Press enter to continue or ctrl-c to abort." | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | create_continue="Press enter to create the described files/directories" | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-20 02:07:56 +01:00
										 |  |  | __prompt() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  |    echo -n "$banner" "$@" | 
					
						
							| 
									
										
										
										
											2011-02-20 02:07:56 +01:00
										 |  |  |    read answer | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | ################################################################################ | 
					
						
							|  |  |  | # Intro | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | cat << eof | 
					
						
							|  |  |  | $banner cdist version $__cdist_version | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Welcome to the interactive guide to cdist! | 
					
						
							|  |  |  | This is the interactive tutorial and beginners help for cdist. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | 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). | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | __prompt "$continue" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | ################################################################################ | 
					
						
							|  |  |  | # /etc/cdist via root | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2011-02-20 02:07:56 +01:00
										 |  |  | cat << eof | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | To make any use of cdist, we need to create the configuration base, which | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | 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: | 
					
						
							| 
									
										
										
										
											2011-02-20 02:07:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  |    - Become root: su - | 
					
						
							|  |  |  |    - Create ${__cdist_conf_dir}: mkdir ${__cdist_conf_dir} | 
					
						
							|  |  |  |    - Change owner to $USER: chown $USER ${__cdist_conf_dir} | 
					
						
							| 
									
										
										
										
											2011-02-20 02:07:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | eof | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | __prompt "$continue" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | ################################################################################ | 
					
						
							|  |  |  | # 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" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | set -x | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2011-02-26 20:57:04 +01:00
										 |  |  | set +x | 
					
						
							| 
									
										
										
										
											2011-02-27 14:27:23 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ################################################################################ | 
					
						
							|  |  |  | # 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 | 
					
						
							|  |  |  | # |