forked from ungleich-public/cdist
also check that giving a paramter twice works
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
877d8fed30
commit
603f1c3ae0
2 changed files with 79 additions and 6 deletions
|
@ -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
20
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()
|
||||
|
|
Loading…
Reference in a new issue