| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | cdist-quickstart(7)
 | 
					
						
							|  |  |  | ===================
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | Jump in and enjoy cdist
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | Nico Schottelius <nico-cdist--@--schottelius.org>
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 replace **localhost** with your target
 | 
					
						
							|  |  |  | host for real life usage.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QUICK START - GET YOUR HANDS DIRTY NOW
 | 
					
						
							|  |  |  | --------------------------------------
 | 
					
						
							|  |  |  | 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
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | lines::
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Allow login only via public key
 | 
					
						
							|  |  |  |     PermitRootLogin without-password
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Allow login via password and public key
 | 
					
						
							|  |  |  |     PermitRootLogin yes
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | As cdist uses ssh intensively, it is recommended to setup authentication
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | with public keys::
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Generate pubkey pair as a normal user
 | 
					
						
							|  |  |  |     ssh-keygen
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Copy pubkey over to target host
 | 
					
						
							|  |  |  |     ssh-copy-id root@localhost
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | Have a look at ssh-agent(1) and ssh-add(1) on how to cache the password for
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | your public key.  Usually it looks like this::
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Start agent and export variables
 | 
					
						
							|  |  |  |     eval `ssh-agent`
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Add keys (requires password for every identity file)
 | 
					
						
							|  |  |  |     ssh-add
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | At this point you should be able to **ssh root@localhost** without
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | re-entering the password. If something failed until here, ensure that
 | 
					
						
							|  |  |  | all steps went successfully and you have read and understood the
 | 
					
						
							|  |  |  | documentation.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | As soon as you are able to login without password to localhost,
 | 
					
						
							|  |  |  | we can use cdist to configure it. You can copy and paste the following
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | code into your shell to get started and configure localhost::
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Get cdist 
 | 
					
						
							|  |  |  |     # Mirrors can be found on
 | 
					
						
							|  |  |  |     # http://www.nico.schottelius.org/software/cdist/install/#index2h4
 | 
					
						
							|  |  |  |     git clone git://git.schottelius.org/cdist
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Create manifest (maps configuration to host(s)
 | 
					
						
							|  |  |  |     cd cdist
 | 
					
						
							|  |  |  |     echo '__file /etc/cdist-configured' > cdist/conf/manifest/init
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Configure localhost in verbose mode
 | 
					
						
							|  |  |  |     ./bin/cdist config -v localhost
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  |     # Find out that cdist created /etc/cdist-configured
 | 
					
						
							|  |  |  |     ls -l /etc/cdist-configured
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | That's it, you've successfully used cdist to configure your first host!
 | 
					
						
							|  |  |  | Continue reading the next sections, to understand what you did and how
 | 
					
						
							|  |  |  | to create a more sophisticated configuration.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SEE ALSO
 | 
					
						
							|  |  |  | --------
 | 
					
						
							| 
									
										
										
										
											2016-05-20 08:50:56 +02:00
										 |  |  | - `cdist(1) <../man1/cdist.html>`_
 | 
					
						
							|  |  |  | - `cdist-tutorial(7) <cdist-tutorial.html>`_
 | 
					
						
							| 
									
										
										
										
											2012-01-11 17:11:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | COPYING
 | 
					
						
							|  |  |  | -------
 | 
					
						
							|  |  |  | Copyright \(C) 2011-2012 Nico Schottelius. Free use of this software is
 | 
					
						
							|  |  |  | granted under the terms of the GNU General Public License version 3 (GPLv3).
 |