From 603f1c3ae075c7d5e47f1bfd472e89cec884cda4 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 27 Sep 2011 00:38:08 +0200 Subject: [PATCH] also check that giving a paramter twice works Signed-off-by: Nico Schottelius --- doc/man/man7/cdist-tutorial.text | 65 +++++++++++++++++++++++++++++++- test.py | 20 ++++++++-- 2 files changed, 79 insertions(+), 6 deletions(-) diff --git a/doc/man/man7/cdist-tutorial.text b/doc/man/man7/cdist-tutorial.text index dfda5325..8abcbad4 100755 --- a/doc/man/man7/cdist-tutorial.text +++ b/doc/man/man7/cdist-tutorial.text @@ -15,8 +15,69 @@ typical approaches as well as gives an easy start into the world of configuration management. -NOT MIGRATED ------------- + +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 +-------------------------------------------------------------------------------- + + +Before you can start using cdist, you need to ensure that +you can login +sshd config! + + + + + +You can copy and paste the following +code into your shell to get started and even configure your system. + +-------------------------------------------------------------------------------- +# 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 + +echo 'Ensure that you can login as root to localhost without password' +echo '(i.e. via public key) and then press return' +read tmp + +# 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 (\_\_). + + + +Everything you specify in manifests + # Intro of quickstart # diff --git a/test.py b/test.py index d1d62d25..2eb0b89f 100755 --- a/test.py +++ b/test.py @@ -117,10 +117,22 @@ class Config(unittest.TestCase): self.assertRaises(cdist.Error, self.config.run_initial_manifest()) -# Todo: -# fail if parameter in manifest given are different -# fail if parameter in manifest given are absent once/given once -# succeed if same parameter is specified twice + def test_initial_manifest_parameter_twice(self): + manifest_fd = open(self.init_manifest, "w") + manifest_fd.writelines(["#!/bin/sh", + "__file " + self.temp_dir + "--mode 0600", + "__file " + self.temp_dir + "--mode 0600", + ]) + manifest_fd.close() + + try: + self.config.run_initial_manifest() + except cdist.Error: + failed = True + else: + failed = False + + self.assertFalse(failed) if __name__ == '__main__': unittest.main()