forked from ungleich-public/cdist
		
	
		
			
				
	
	
		
			200 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| cdist-tutorial(7)
 | |
| =================
 | |
| Nico Schottelius <nico-cdist--@--schottelius.org>
 | |
| 
 | |
| 
 | |
| NAME
 | |
| ----
 | |
| cdist-tutorial - a guided introduction into cdist
 | |
| 
 | |
| 
 | |
| 
 | |
| PREPARING YOUR MACHINE / SETUP
 | |
| ------------------------------
 | |
| 
 | |
| - ensure sshd is running on the target host:
 | |
| 
 | |
| ssh target_host
 | |
| 
 | |
| - ensure you can login as root
 | |
| 
 | |
| ssh root@target host
 | |
| 
 | |
| - ensure login as root works without keys
 | |
| (see ssh... manpage)
 | |
| 
 | |
| cdist will do a lot of requests to the target
 | |
| host, thus you'll have to enter your password
 | |
| many times, if you don't do this :-)
 | |
| 
 | |
| - speedup processing with ControlMaster option of
 | |
| ssh
 | |
| 
 | |
| 
 | |
| YOUR FIRST CONFIGURATION
 | |
| ------------------------
 | |
| 
 | |
| 
 | |
| DEFINE STATE IN THE INITAL MANIFEST
 | |
| -----------------------------------
 | |
| 
 | |
| The initial manifest is used to map
 | |
| configurations to a host.
 | |
| 
 | |
| USING SOME BASIC TYPES
 | |
| ----------------------
 | |
| what is a type, how to use it,
 | |
| 
 | |
| 
 | |
| CREATING YOUR FIRST OWN TYPE
 | |
| ----------------------------
 | |
| <with object id? or signleton here already>
 | |
| 
 | |
| 
 | |
| USE A TYPE TO BUNDLE FUNCTIONALITY
 | |
| ----------------------------------
 | |
| 
 | |
| 
 | |
| USING EXPLORERS
 | |
| ---------------
 | |
| global, type explorer
 | |
| 
 | |
| 
 | |
| DEBUGGING YOUR TYPES
 | |
| --------------------
 | |
| __debug::
 | |
|    If this variable is setup, cdist runs in debug mode.
 | |
|    You can use this information, to only output stuff in debug
 | |
|    mode as well.
 | |
|    Available for: initial manifest, type manifest, gencode, code
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| INTRODUCTION
 | |
| ------------
 | |
| This tutorial is aimed at people learning cdist and shows
 | |
| typical approaches as well as gives an easy start into
 | |
| the world of configuration management.
 | |
| 
 | |
| This tutorial assumes you are configuring **localhost**, because
 | |
| it is always available. Just repace **localhost** with your target
 | |
| host for real life usage.
 | |
| 
 | |
| 
 | |
| 
 | |
| QUICK START
 | |
| -----------
 | |
| For those who just want to configure a system with the
 | |
| cdist configuration management and do not need (or want)
 | |
| to understand everything.
 | |
| 
 | |
| Cdist uses **ssh** for communication and transportation
 | |
| and usually logs into the **target host** as the
 | |
| **root** user. So you need to configure the **ssh server**
 | |
| of the target host to allow root logins: Edit
 | |
| the file **/etc/ssh/sshd_config** and add one of the following
 | |
| lines:
 | |
| 
 | |
| --------------------------------------------------------------------------------
 | |
| # Allow login only via public key
 | |
| PermitRootLogin without-password
 | |
| 
 | |
| # Allow login via password and public key
 | |
| PermitRootLogin yes
 | |
| --------------------------------------------------------------------------------
 | |
| 
 | |
| As cdist uses ssh intensively, it is recommended to setup authentication
 | |
| with public keys:
 | |
| 
 | |
| --------------------------------------------------------------------------------
 | |
| # Generate pubkey pair as a normal user
 | |
| ssh-keygen
 | |
| 
 | |
| # Copy pubkey over to target host
 | |
| ssh-copy-id root@localhost
 | |
| --------------------------------------------------------------------------------
 | |
| 
 | |
| As soon as you are able to login without passwort to the target host,
 | |
| we can use cdist, to configure it. You can copy and paste the following
 | |
| code into your shell to get started and configure localhost:
 | |
| 
 | |
| --------------------------------------------------------------------------------
 | |
| # Get cdist
 | |
| git clone git://git.schottelius.org/cdist
 | |
| 
 | |
| # Create manifest (maps configuration to host(s)
 | |
| cd cdist
 | |
| echo '__file /etc/cdist-configured' > conf/manifest/init
 | |
| chmod 0700 conf/manifest/init
 | |
| 
 | |
| # Configure localhost
 | |
| ./bin/cdist config localhost
 | |
| 
 | |
| # Find out that cdist created /etc/cdist-configured
 | |
| ls -l /etc/cdist-configured
 | |
| --------------------------------------------------------------------------------
 | |
| 
 | |
| The file 'conf/manifest/init' is usually the entry point for cdist,
 | |
| to find out what to configure on which host. All manifests are
 | |
| essentially shell scripts. Every manifest can use the types known to
 | |
| cdist, which are usually underline prefixed (__).
 | |
| 
 | |
| 
 | |
| SEE ALSO
 | |
| --------
 | |
| cdist(1), cdist-type(7), cdist-stages(7)
 |