forked from ungleich-public/cdist
Merge remote-tracking branch 'ungleich/master' into cdist-type__hosts
This commit is contained in:
commit
d3b3fef63b
227 changed files with 4524 additions and 427 deletions
|
|
@ -3,6 +3,47 @@ Changelog
|
|||
|
||||
next:
|
||||
* New type: __hosts: manage entries in /etc/hosts (Dmitry Bogatov)
|
||||
* Core: Fix suppression of manifests' outputs (Darko Poljak)
|
||||
* Type __user_groups: Support FreeBSD (Andres Erbsen)
|
||||
* Type __cron: Fix filter for new cron on sles12 sp2 (Daniel Heule)
|
||||
* Type __docker: Support absent state (Dominique Roux)
|
||||
* Type __docker_compose: Support absent state (Dominique Roux)
|
||||
|
||||
4.4.1: 2016-12-17
|
||||
* Documentation: Update docs for types that used man.rst as symbolic links (Darko Poljak)
|
||||
* Type __cron: Remove '# marker' for raw_command due to cron security (Daniel Heule)
|
||||
* New type: __docker_compose (Dominique Roux)
|
||||
* Type __apt_mark: Check supported apt version and if package is installed (Ander Punnar)
|
||||
* New type: __docker (Steven Armstrong)
|
||||
* New type: __package_dpkg (Tomas Pospisek)
|
||||
|
||||
4.4.0: 2016-12-03
|
||||
* Core: Deprecate -d option and make -v option log level counter (Darko Poljak)
|
||||
* New type: __postgres_extension (Tomas Pospisek)
|
||||
* Core, types: Support IPv6 (Darko Poljak)
|
||||
* Type __consul: Add source and cksum files for Consul 0.7.0 and 0.7.1 (Carlos Ortigoza)
|
||||
* Type __user: FreeBSD fix (Kamila Souckova)
|
||||
* New type: __apt_mark (Ander Punnar)
|
||||
* Type __package_upgrade_all: Do not dist-upgrade by default, add apt-clean and apt-dist-upgrade options (Ander Punnar)
|
||||
* Core: Correct target_host var in code.py (Darko Poljak)
|
||||
* All: Merge install feature from 4.0-pre-not-stable (Darko Poljak)
|
||||
|
||||
4.3.2: 2016-10-13
|
||||
* Documentation: Update no longer existing links (Simon Walter)
|
||||
* Core: Add warning message for faulty dependencies case (Darko Poljak)
|
||||
* Explorer os_version: Use /etc/os-release instead of /etc/SuSE-release (Daniel Heule)
|
||||
* Type __package: Call __package_pkg_openbsd on openbsd (Andres Erbsen)
|
||||
* Type __package_pkg_openbsd: Support --version (Andres Erbsen)
|
||||
* Type __hostname: Support openbsd (Andres Erbsen)
|
||||
* New type: __firewalld_start: start/stop firewalld and/or enable/disable start on boot (Darko Poljak)
|
||||
* Bugfix __consul_agent: Config option was misnamed 'syslog' instead of 'enable_syslog' (Steven Armstrong)
|
||||
|
||||
4.3.1: 2016-08-22
|
||||
* Documentation: Spelling fixes (Darko Poljak)
|
||||
* Type __filesystem: Spelling fixes (Dmitry Bogatov)
|
||||
* Core: Add target_host file to cache since cache dir name can be hash (Darko Poljak)
|
||||
* Core: Improve hostfile: support comments, skip empty lines (Darko Poljak)
|
||||
>>>>>>> ungleich/master
|
||||
|
||||
4.3.0: 2016-08-19
|
||||
* Documentation: Add Parallelization chapter (Darko Poljak)
|
||||
|
|
@ -79,7 +120,7 @@ next:
|
|||
* Type __consul_agent: Use systemd for Debian 8 (Nico Schottelius)
|
||||
* Type __firewalld_rule: Ensure firewalld package is present (David Hürlimann)
|
||||
* Type __locale: Support CentOS (David Hürlimann)
|
||||
* Type __staged_file: Fix comparision operator (Nico Schottelius)
|
||||
* Type __staged_file: Fix comparison operator (Nico Schottelius)
|
||||
* Type __user_groups: Support old Linux versions (Daniel Heule)
|
||||
|
||||
3.1.12: 2015-03-19
|
||||
|
|
@ -266,7 +307,7 @@ next:
|
|||
3.0.1: 2014-01-14
|
||||
* Core: Copy only files, not directories (Steven Armstrong)
|
||||
* Core: Allow hostnames to start with / (Nico Schottelius)
|
||||
* Type __line: Remove unecessary backslash escape (Nico Schottelius)
|
||||
* Type __line: Remove unnecessary backslash escape (Nico Schottelius)
|
||||
* Type __directory: Add messaging support (Daniel Heule)
|
||||
* Type __directory: Do not generate code if mode is 0xxx (Daniel Heule)
|
||||
* Type __package: Fix typo in optional parameter ptype (Daniel Heule)
|
||||
|
|
|
|||
2
docs/dev/logs/2013-11-28.preos
Normal file
2
docs/dev/logs/2013-11-28.preos
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
- debootstrap for the moment
|
||||
- add triggers: https://github.com/telmich/cdist/issues/214
|
||||
109
docs/dev/logs/2014-01-09.preos
Normal file
109
docs/dev/logs/2014-01-09.preos
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
- debootstrap
|
||||
x setup arch
|
||||
x allow cdist to configure debootstrapped directory using cdist
|
||||
x include sshd
|
||||
x configure network (eth0, dhcp)
|
||||
x various mkfs variants
|
||||
- various fdisk tools
|
||||
|
||||
x add option for different initial manifest
|
||||
x allow -, stdin usage
|
||||
x allow to replace current manifest (later)
|
||||
|
||||
x trigger
|
||||
- can be handled in the manifest of the user
|
||||
|
||||
- remove /var/cache/apt/archives/* ?
|
||||
- later, optimisation level
|
||||
|
||||
|
||||
- bug: cdist config als root!
|
||||
|
||||
- fix linux-image name (amd64)
|
||||
|
||||
- ln -s /sbin/init /init
|
||||
|
||||
- blog!
|
||||
- self configuring
|
||||
|
||||
x pxe
|
||||
/pxe/
|
||||
- pxelinux.0
|
||||
- linux
|
||||
- initramfs
|
||||
- pxelinux.cfg/
|
||||
- default
|
||||
|
||||
- iso
|
||||
- later
|
||||
- usb stick (+efi version)
|
||||
- later
|
||||
|
||||
- add unit tests
|
||||
|
||||
- testing with qemu
|
||||
[22:43] bento:vm-tests% qemu-system-x86_64 -m 2G -boot order=cn -drive file=testhd1,if=virtio -net nic -net user,tftp=$(pwd -P)/tftp,bootfile=/pxelinux.0,hostfwd=tcp::7777-:22 -enable-kvm
|
||||
|
||||
- create preos
|
||||
[22:43] bento:preos-tests% echo __panter_root_ssh_keys | sudo cdist preos -vp /home/users/nico/vm-tests/tftp -c /home/users/nico/preos-tests/preos03/ -i -
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
[1:16] bento:~% sudo cdist preos -vc ~nico/preos-tests/preos03
|
||||
INFO: cdist: version 3.0.0-38-gea286c6
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running global explorers
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running initial manifest /tmp/tmpxbquwe/manifest
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __file/etc/network/interfaces
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __file/etc/network/interfaces
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/xfsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/reiser4progs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/jfsutils
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/e2fsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/btrfs-tools
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/file
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/syslinux
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/openssh-server
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package/linux-image-amd64
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/linux-image-amd64
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/linux-image-amd64
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/openssh-server
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/openssh-server
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/syslinux
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/syslinux
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/file
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/file
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/btrfs-tools
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/btrfs-tools
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/e2fsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/e2fsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/jfsutils
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/jfsutils
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/reiser4progs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/reiser4progs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Running manifest and explorers for __package_apt/xfsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package_apt/xfsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/xfsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/reiser4progs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/jfsutils
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/e2fsprogs
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/btrfs-tools
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/file
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/syslinux
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/openssh-server
|
||||
INFO: /home/users/nico/preos-tests/preos03: Generating code for __package/linux-image-amd64
|
||||
INFO: /home/users/nico/preos-tests/preos03: Finished successful run in 2.546635866165161 seconds
|
||||
[1:16] bento:~%
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
[21:14] bento:vm-tests% qemu-system-x86_64 -m 2G -boot order=cn -drive file=testhd1,if=virtio -net nic -net user,tftp=$(pwd -P)/tftp,bootfile=/pxelinux.0
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
[21:16] bento:preos-tests% sudo cdist preos -vp /home/users/nico/vm-tests/tftp /home/users/nico/preos-tests/preos03/
|
||||
INFO: cdist: version 3.0.0-42-g0d78ab3
|
||||
INFO: cdist.preos: Creating kernel ...
|
||||
INFO: cdist.preos: Creating initramfs ...
|
||||
760780 blocks
|
||||
INFO: cdist.preos: Creating pxe configuration ...
|
||||
INFO: cdist.preos: Creating pxelinux.0 ...
|
||||
|
||||
49
docs/dev/logs/2015-02-10.installation_from_usb_stick
Normal file
49
docs/dev/logs/2015-02-10.installation_from_usb_stick
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
Objective:
|
||||
|
||||
Create a bootable media that contains everything to install and configure a system.
|
||||
|
||||
Ideas:
|
||||
|
||||
* usb stick
|
||||
** uefi vs. bios
|
||||
** contains cdist config
|
||||
** static ip (?) (if at all)
|
||||
** hostname setup to localhost
|
||||
** install and config support
|
||||
* preos from existing OS?
|
||||
** requires kernel
|
||||
** requires initramfs (self build)
|
||||
** missing tools: cdist preos --config hostname...
|
||||
* testing with qemu
|
||||
* syslinux/isolinux?
|
||||
|
||||
Program:
|
||||
|
||||
- get tools
|
||||
- get kernel
|
||||
- provide fallback on cdist page
|
||||
- archlinux: /boot/vmlinuz-linux
|
||||
- create initramfs?
|
||||
- create bootable media
|
||||
- iso
|
||||
- uefi-usb
|
||||
- bios-usb
|
||||
|
||||
Tasks:
|
||||
|
||||
- Setup test environment
|
||||
- qemu launcher
|
||||
/usr/bin/qemu-system-x86_64 -boot d -m 256 -cdrom '/home/users/nico/oeffentlich/rechner/projekte/cdist/cdist/cdist-preos.iso'
|
||||
- Create bootable image
|
||||
- Test image
|
||||
|
||||
Log:
|
||||
|
||||
mkdir iso
|
||||
cp /boot/vmlinuz-linux iso/
|
||||
cp /usr/lib/syslinux/bios/isolinux.bin iso/
|
||||
|
||||
[22:36] freiheit:cdist% genisoimage -v -V "cdist preos v0.1" -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -b isolinux.bin -c boot.cat -o cdist-preos.iso iso
|
||||
|
||||
[22:38] freiheit:cdist% genisoimage -r -V "cdist preos v0.2" -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -b isolinux.bin -c boot.cat -o cdist-preos.iso iso
|
||||
|
||||
32
docs/dev/logs/2015-03-28.preos-from-os
Normal file
32
docs/dev/logs/2015-03-28.preos-from-os
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
- basics of config
|
||||
- wrapping to config
|
||||
- testbed for CaaS!
|
||||
- allow to include .cdist
|
||||
- generate
|
||||
- pxe
|
||||
- iso
|
||||
- package...
|
||||
- mkfs
|
||||
- fdisk*
|
||||
- kernel
|
||||
|
||||
- types (?)
|
||||
- iso?
|
||||
-
|
||||
|
||||
- based on Arch Linux
|
||||
|
||||
- new types for iso?
|
||||
|
||||
- change __cdistmarker to accept prefix
|
||||
|
||||
- ISO / USB
|
||||
genisoimage -r -V "cdist preos v0.2" -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -b isolinux.bin -c boot.cat -o cdist-preos.iso iso
|
||||
|
||||
- have a look at archiso?
|
||||
|
||||
http://www.syslinux.org/wiki/index.php/Isohybrid
|
||||
-> uefi
|
||||
-> mbr
|
||||
|
||||
- PXE
|
||||
|
|
@ -11,7 +11,7 @@ _BUILDDIR = _build
|
|||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ you can clone it multiple times::
|
|||
machine-b % git clone git://your-git-server/cdist
|
||||
|
||||
|
||||
Seperating work by groups
|
||||
Separating work by groups
|
||||
-------------------------
|
||||
If you are working with different groups on one cdist-configuration,
|
||||
you can delegate to other manifests and have the groups edit only
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Simplicity
|
|||
There is only one type to extend cdist called **type**
|
||||
|
||||
Design
|
||||
+ Type and core cleanly seperated
|
||||
+ Type and core cleanly separated
|
||||
+ Sticks completly to the KISS (keep it simple and stupid) paradigma
|
||||
+ Meaningful error messages - do not lose time debugging error messages
|
||||
+ Consistency in behaviour, naming and documentation
|
||||
|
|
|
|||
|
|
@ -50,13 +50,13 @@ work nor kill the authors brain:
|
|||
the other needs to be improved.
|
||||
|
||||
As soon as your work meets these requirements, write a mail
|
||||
for inclusion to the mailinglist **cdist at cdist -- at -- l.schottelius.org**
|
||||
or open a pull request at http://github.com/telmich/cdist.
|
||||
for inclusion to the mailinglist **cdist-configuration-management at googlegroups.com**
|
||||
or open a pull request at http://github.com/ungleich/cdist.
|
||||
|
||||
|
||||
How to submit a new type
|
||||
------------------------
|
||||
For detailled information about types, see `cdist type <cdist-type.html>`_.
|
||||
For detailed information about types, see `cdist type <cdist-type.html>`_.
|
||||
|
||||
Submitting a type works as described above, with the additional requirement
|
||||
that a corresponding manpage named man.text in asciidoc format with
|
||||
|
|
@ -77,7 +77,7 @@ The following workflow works fine for most developers
|
|||
.. code-block:: sh
|
||||
|
||||
# get latest upstream master branch
|
||||
git clone https://github.com/telmich/cdist.git
|
||||
git clone https://github.com/ungleich/cdist.git
|
||||
|
||||
# update if already existing
|
||||
cd cdist; git fetch -v; git merge origin/master
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ On line 4 you can see that the instantion of a type "\__link" object needs
|
|||
the object "__file/etc/cdist-configured" to be present, before it can proceed.
|
||||
|
||||
This also means that the "\__link" command must make sure, that either
|
||||
"\__file/etc/cdist-configured" allready is present, or, if it's not, it needs
|
||||
"\__file/etc/cdist-configured" already is present, or, if it's not, it needs
|
||||
to be created. The task of cdist is to make sure, that the dependency will be
|
||||
resolved appropriately and thus "\__file/etc/cdist-configured" be created
|
||||
if necessary before "__link" proceeds (or to abort execution with an error).
|
||||
|
|
@ -216,7 +216,7 @@ How to override objects:
|
|||
|
||||
.. code-block:: sh
|
||||
|
||||
# for example in the inital manifest
|
||||
# for example in the initial manifest
|
||||
|
||||
# create user account foobar with some hash for password
|
||||
__user foobar --password 'some_fancy_hash' --home /home/foobarexample
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ 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
|
||||
git clone git://github.com/ungleich/cdist
|
||||
|
||||
# Create manifest (maps configuration to host(s)
|
||||
cd cdist
|
||||
|
|
|
|||
|
|
@ -273,4 +273,7 @@ CDIST_REMOTE_EXEC
|
|||
|
||||
CDIST_REMOTE_COPY
|
||||
Use this command for remote copy (should behave like scp).
|
||||
|
||||
CDIST_BETA
|
||||
Enable beta functionalities.
|
||||
eof
|
||||
|
|
|
|||
|
|
@ -17,6 +17,11 @@ passing them to cdist with the --remote-exec and/or --remote-copy arguments.
|
|||
|
||||
For __remote_exec, the custom implementation must behave as if it where ssh.
|
||||
For __remote_copy, it must behave like scp.
|
||||
Please notice, custom implementations should work like ssh/scp so __remote_copy
|
||||
must support IPv6 addresses enclosed in square brackets. For __remote_exec you
|
||||
must take into account that for some options (like -L) IPv6 addresses can be
|
||||
specified by enclosed in square brackets (see :strong:`ssh`\ (1) and
|
||||
:strong:`scp`\ (1)).
|
||||
|
||||
With this simple interface the user can take total control of how cdist
|
||||
interacts with the target when required, while the default implementation
|
||||
|
|
|
|||
|
|
@ -51,6 +51,19 @@ Example:
|
|||
__myfancysingleton --colour green
|
||||
|
||||
|
||||
Config types
|
||||
------------
|
||||
By default types are used with config command. These are types that are not
|
||||
flagged by any known command flag. If a type is marked then it will be skipped
|
||||
with config command.
|
||||
|
||||
|
||||
Install types
|
||||
-------------
|
||||
If a type is flagged with 'install' flag then it is used only with install command.
|
||||
With other commands, i.e. config, these types are skipped if used.
|
||||
|
||||
|
||||
How to write a new type
|
||||
-----------------------
|
||||
A type consists of
|
||||
|
|
@ -126,7 +139,7 @@ Example: (e.g. in cdist/conf/type/__nginx_vhost/manifest)
|
|||
# parameter with multiple values
|
||||
if [ -f "$__object/parameter/server_alias" ]; then
|
||||
for alias in $(cat "$__object/parameter/server_alias"); do
|
||||
echo $alias > /some/where/usefull
|
||||
echo $alias > /some/where/useful
|
||||
done
|
||||
fi
|
||||
|
||||
|
|
@ -209,6 +222,18 @@ As you can see, the object ID is omitted, because it does not make any sense,
|
|||
if your type can be used only once.
|
||||
|
||||
|
||||
Install - type with install command
|
||||
-----------------------------------
|
||||
If you want a type to be used with install command, you must mark it as
|
||||
install: create the (empty) file "install" in your type directory:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
touch cdist/conf/type/__install_NAME/install
|
||||
|
||||
With other commands, i.e. config, it will be skipped if used.
|
||||
|
||||
|
||||
The type explorers
|
||||
------------------
|
||||
If a type needs to explore specific details, it can provide type specific
|
||||
|
|
@ -251,6 +276,12 @@ script, you can write to stderr:
|
|||
# Output to be saved by cdist for execution on the target
|
||||
echo "touch /etc/cdist-configured"
|
||||
|
||||
Notice: if you use __remote_copy or __remote_exec directly in your scripts
|
||||
then for IPv6 address with __remote_copy execution you should enclose IPv6
|
||||
address in square brackets. The same applies to __remote_exec if it behaves
|
||||
the same as ssh for some options where colon is a delimiter, as for -L ssh
|
||||
option (see :strong:`ssh`\ (1) and :strong:`scp`\ (1)).
|
||||
|
||||
|
||||
Variable access from the generated scripts
|
||||
------------------------------------------
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ Use `messaging </software/cdist/man/3.0.0/man7/cdist-messaging.html>`_ instead.
|
|||
Updating from 2.2 to 2.3
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
No incompatiblities.
|
||||
No incompatibilities.
|
||||
|
||||
Updating from 2.1 to 2.2
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -164,7 +164,7 @@ Updating from 1.5 to 1.6
|
|||
Updating from 1.3 to 1.5
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
No incompatiblities.
|
||||
No incompatibilities.
|
||||
|
||||
Updating from 1.2 to 1.3
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
@ -174,7 +174,7 @@ Rename **gencode** of every type to **gencode-remote**.
|
|||
Updating from 1.1 to 1.2
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
No incompatiblities.
|
||||
No incompatibilities.
|
||||
|
||||
Updating from 1.0 to 1.1
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ SYNOPSIS
|
|||
|
||||
::
|
||||
|
||||
cdist [-h] [-d] [-v] [-V] {banner,config,shell} ...
|
||||
cdist [-h] [-d] [-v] [-V] {banner,config,shell,install} ...
|
||||
|
||||
cdist banner [-h] [-d] [-v]
|
||||
|
||||
|
|
@ -20,6 +20,11 @@ SYNOPSIS
|
|||
[--remote-copy REMOTE_COPY] [--remote-exec REMOTE_EXEC]
|
||||
[host [host ...]]
|
||||
|
||||
cdist install [-h] [-d] [-v] [-b] [-c CONF_DIR] [-f HOSTFILE]
|
||||
[-i MANIFEST] [-j [JOBS]] [-n] [-o OUT_PATH] [-p] [-s]
|
||||
[--remote-copy REMOTE_COPY] [--remote-exec REMOTE_EXEC]
|
||||
[host [host ...]]
|
||||
|
||||
cdist shell [-h] [-d] [-v] [-s SHELL]
|
||||
|
||||
|
||||
|
|
@ -41,11 +46,14 @@ All commands accept the following options:
|
|||
|
||||
.. option:: -d, --debug
|
||||
|
||||
Set log level to debug
|
||||
Set log level to debug (deprecated, use -vvv instead)
|
||||
|
||||
.. option:: -v, --verbose
|
||||
|
||||
Set log level to info, be more verbose
|
||||
Increase the verbosity level. Every instance of -v increments the verbosity
|
||||
level by one. Its default value is 0. There are 4 levels of verbosity. The
|
||||
order of levels from the lowest to the highest are: ERROR (0), WARNING (1),
|
||||
INFO (2) and DEBUG (3 or higher).
|
||||
|
||||
.. option:: -V, --version
|
||||
|
||||
|
|
@ -58,14 +66,15 @@ Displays the cdist banner. Useful for printing
|
|||
cdist posters - a must have for every office.
|
||||
|
||||
|
||||
CONFIG
|
||||
------
|
||||
Configure one or more hosts.
|
||||
CONFIG/INSTALL
|
||||
--------------
|
||||
Configure/install one or more hosts.
|
||||
|
||||
.. option:: -b, --enable-beta
|
||||
.. option:: -b, --beta
|
||||
|
||||
Enable beta functionalities. Beta functionalities include the
|
||||
following options: -j/--jobs.
|
||||
Enable beta functionalities.
|
||||
|
||||
Can also be enabled using CDIST_BETA env var.
|
||||
|
||||
.. option:: -c CONF_DIR, --conf-dir CONF_DIR
|
||||
|
||||
|
|
@ -82,7 +91,7 @@ Configure one or more hosts.
|
|||
Read additional hosts to operate on from specified file
|
||||
or from stdin if '-' (each host on separate line).
|
||||
If no host or host file is specified then, by default,
|
||||
read hosts from stdin.
|
||||
read hosts from stdin. For the file format see below.
|
||||
|
||||
.. option:: -i MANIFEST, --initial-manifest MANIFEST
|
||||
|
||||
|
|
@ -117,6 +126,20 @@ Configure one or more hosts.
|
|||
|
||||
Command to use for remote execution (should behave like ssh)
|
||||
|
||||
|
||||
HOSTFILE FORMAT
|
||||
~~~~~~~~~~~~~~~
|
||||
HOSTFILE contains hosts per line.
|
||||
All characters after and including '#' until the end of line is a comment.
|
||||
In a line, all leading and trailing whitespace characters are ignored.
|
||||
Empty lines are ignored/skipped.
|
||||
|
||||
Hostfile line is processed like the following. First, all comments are
|
||||
removed. Then all leading and trailing whitespace characters are stripped.
|
||||
If such a line results in empty line it is ignored/skipped. Otherwise,
|
||||
host string is used.
|
||||
|
||||
|
||||
SHELL
|
||||
-----
|
||||
This command allows you to spawn a shell that enables access
|
||||
|
|
@ -138,6 +161,12 @@ cdist/conf
|
|||
The distribution configuration directory. It contains official types and
|
||||
explorers. This path is relative to cdist installation directory.
|
||||
|
||||
NOTES
|
||||
-----
|
||||
cdist detects if host is specified by IPv6 address. If so then remote_copy
|
||||
command is executed with host address enclosed in square brackets
|
||||
(see :strong:`scp`\ (1)).
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
|
|
@ -177,6 +206,8 @@ EXAMPLES
|
|||
usage: __git --source SOURCE [--state STATE] [--branch BRANCH]
|
||||
[--group GROUP] [--owner OWNER] [--mode MODE] object_id
|
||||
|
||||
# Install ikq05.ethz.ch with debug enabled
|
||||
% cdist install -d ikq05.ethz.ch
|
||||
|
||||
ENVIRONMENT
|
||||
-----------
|
||||
|
|
@ -193,7 +224,7 @@ CDIST_LOCAL_SHELL
|
|||
Selects shell for local script execution, defaults to /bin/sh.
|
||||
|
||||
CDIST_REMOTE_SHELL
|
||||
Selects shell for remote scirpt execution, defaults to /bin/sh.
|
||||
Selects shell for remote script execution, defaults to /bin/sh.
|
||||
|
||||
CDIST_OVERRIDE
|
||||
Allow overwriting type parameters.
|
||||
|
|
@ -207,6 +238,9 @@ CDIST_REMOTE_EXEC
|
|||
CDIST_REMOTE_COPY
|
||||
Use this command for remote copy (should behave like scp).
|
||||
|
||||
CDIST_BETA
|
||||
Enable beta functionalities.
|
||||
|
||||
EXIT STATUS
|
||||
-----------
|
||||
The following exit values shall be returned:
|
||||
|
|
@ -218,7 +252,8 @@ The following exit values shall be returned:
|
|||
|
||||
AUTHORS
|
||||
-------
|
||||
Nico Schottelius <nico-cdist--@--schottelius.org>
|
||||
Originally written by Nico Schottelius <nico-cdist--@--schottelius.org>
|
||||
and Steven Armstrong <steven-cdist--@--armstrong.cc>.
|
||||
|
||||
CAVEATS
|
||||
-------
|
||||
|
|
@ -232,6 +267,35 @@ connection. In this case ssh will disable multiplexing.
|
|||
This limit is controlled with sshd :strong:`MaxSessions` configuration
|
||||
options. For more details refer to :strong:`sshd_config`\ (5).
|
||||
|
||||
When requirements for the same object are defined in different manifests (see
|
||||
example below) in init manifest and in some other type manifest and they differs
|
||||
then dependency resolver cannot detect dependencies right. This happens because
|
||||
cdist cannot prepare all objects first and then run objects because some
|
||||
object can depend on the result of type explorer(s) and explorers are executed
|
||||
during object run. cdist will detect such case and write warning message.
|
||||
Example for such a case:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
init manifest:
|
||||
__a a
|
||||
require="__e/e" __b b
|
||||
require="__f/f" __c c
|
||||
__e e
|
||||
__f f
|
||||
require="__c/c" __d d
|
||||
__g g
|
||||
__h h
|
||||
|
||||
type __g manifest:
|
||||
require="__c/c __d/d" __a a
|
||||
|
||||
Warning message:
|
||||
WARNING: cdisttesthost: Object __a/a already exists with requirements:
|
||||
/usr/home/darko/ungleich/cdist/cdist/test/config/fixtures/manifest/init-deps-resolver /tmp/tmp.cdist.test.ozagkg54/local/759547ff4356de6e3d9e08522b0d0807/data/conf/type/__g/manifest: set()
|
||||
/tmp/tmp.cdist.test.ozagkg54/local/759547ff4356de6e3d9e08522b0d0807/data/conf/type/__g/manifest: {'__c/c', '__d/d'}
|
||||
Dependency resolver could not handle dependencies as expected.
|
||||
|
||||
COPYING
|
||||
-------
|
||||
Copyright \(C) 2011-2013 Nico Schottelius. Free use of this software is
|
||||
|
|
|
|||
|
|
@ -6,4 +6,7 @@ have a look at [all versions](/software/cdist/man).
|
|||
|
||||
You can also view [speeches about cdist](/software/cdist/speeches).
|
||||
|
||||
Checking out beta? Find the docs here:
|
||||
[beta documentation](/software/cdist/man/beta).
|
||||
|
||||
[[!tag cdist unix]]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ But cdist ticks differently, here is the feature set that makes it unique:
|
|||
[[!table data="""
|
||||
Keywords | Description
|
||||
Simplicity | There is only one type to extend cdist called ***type***
|
||||
Design | Type and core cleanly seperated
|
||||
Design | Type and core cleanly separated
|
||||
Design | Sticks completly to the KISS (keep it simple and stupid) paradigma
|
||||
Design | Meaningful error messages - do not lose time debugging error messages
|
||||
Design | Consistency in behaviour, naming and documentation
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ immediately.
|
|||
|
||||
To install cdist, execute the following commands:
|
||||
|
||||
git clone https://github.com/telmich/cdist.git
|
||||
git clone https://github.com/ungleich/cdist.git
|
||||
cd cdist
|
||||
export PATH=$PATH:$(pwd -P)/bin
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ You can join the development ***IRC channel***
|
|||
### Mailing list
|
||||
|
||||
Bug reports, questions, patches, etc. should be send to the
|
||||
[cdist mailing list](http://l.schottelius.org/mailman/listinfo/cdist).
|
||||
[cdist mailing list](https://groups.google.com/forum/#!forum/cdist-configuration-management).
|
||||
|
||||
### Linkedin
|
||||
|
||||
|
|
@ -17,6 +17,9 @@ at [Linked in](http://www.linkedin.com/),
|
|||
you can join the
|
||||
[cdist group](http://www.linkedin.com/groups/cdist-configuration-management-3952797).
|
||||
|
||||
### Chat
|
||||
Chat with us: [ungleich chat](https://chat.ungleich.ch/channel/cdist).
|
||||
|
||||
### Commercial support
|
||||
|
||||
You can request commercial support for cdist from
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ Use [messaging](/software/cdist/man/3.0.0/man7/cdist-messaging.html) instead.
|
|||
|
||||
### Updating from 2.2 to 2.3
|
||||
|
||||
No incompatiblities.
|
||||
No incompatibilities.
|
||||
|
||||
### Updating from 2.1 to 2.2
|
||||
|
||||
|
|
@ -134,7 +134,7 @@ Have a look at the update guide for [[2.0 to 2.1|2.0-to-2.1]].
|
|||
|
||||
### Updating from 1.3 to 1.5
|
||||
|
||||
No incompatiblities.
|
||||
No incompatibilities.
|
||||
|
||||
### Updating from 1.2 to 1.3
|
||||
|
||||
|
|
@ -142,7 +142,7 @@ Rename **gencode** of every type to **gencode-remote**.
|
|||
|
||||
### Updating from 1.1 to 1.2
|
||||
|
||||
No incompatiblities.
|
||||
No incompatibilities.
|
||||
|
||||
### Updating from 1.0 to 1.1
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ explorers and manifest to custom directories.
|
|||
|
||||
This document will guide you to a successful update.
|
||||
|
||||
## Preperation
|
||||
## Preparation
|
||||
|
||||
As for every software and system you use in production, you should first of
|
||||
all make a backup of your data. To prevent any breakage, it is
|
||||
|
|
@ -35,7 +35,7 @@ Now try to merge upstream into the new branch.
|
|||
% git merge origin/2.1
|
||||
|
||||
Fix any conflicts that may have been occurred due to local changes
|
||||
and then **git add** and *git commit** those changes. This should seldomly
|
||||
and then **git add** and *git commit** those changes. This should seldom
|
||||
occur and if, it's mostly for people hacking on the cdist core.
|
||||
|
||||
## Move "conf" directory
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue