also check that giving a paramter twice works

Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
Nico Schottelius 2011-09-27 00:38:08 +02:00
parent 877d8fed30
commit 603f1c3ae0
2 changed files with 79 additions and 6 deletions

View file

@ -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
#

20
test.py
View file

@ -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()