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.
|
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
|
# 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())
|
self.assertRaises(cdist.Error, self.config.run_initial_manifest())
|
||||||
|
|
||||||
# Todo:
|
def test_initial_manifest_parameter_twice(self):
|
||||||
# fail if parameter in manifest given are different
|
manifest_fd = open(self.init_manifest, "w")
|
||||||
# fail if parameter in manifest given are absent once/given once
|
manifest_fd.writelines(["#!/bin/sh",
|
||||||
# succeed if same parameter is specified twice
|
"__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__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Reference in a new issue