merge from upstream

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
Steven Armstrong 2011-04-04 13:18:04 +02:00
commit b9b90dad36
25 changed files with 420 additions and 176 deletions

View file

@ -1,3 +1,12 @@
1.6.0:
* New Type __package_yum
* New type __debconf_set_selections
* Fix Type __group in case of __group NAME syntax
* Type __package gained Fedora support
* Removed --preseed support from __package_apt
* explorer/os: gained Fedora support
* Simplified types __user and __group
1.5.0: 2011-04-01
* Add basic cache functionality
* New type __process

View file

@ -0,0 +1,9 @@
Fun with yum:
[root@brett ~]# yum --assumeyes --quiet install "vim"
Package 2:vim-enhanced-7.3.056-1.fc14.x86_64 already installed and latest version
[root@brett ~]# rpm -q vim
package vim is not installed
[root@brett ~]#
(Me || yum) == dumb?

1
doc/dev/todo/1.6 Normal file
View file

@ -0,0 +1 @@
- adjust documentation / stages

View file

@ -26,13 +26,14 @@ CORE
TYPES
------
Types to be written/extended:
- __ssh-keys (host/user)
- Think about __service - necessary?
- __file_edit
- regexp replace (can probably cover all?)
-> aka sed.
- __cron
- __ssh-keys (host/user)
- __file_edit
- regexp replace (can probably cover all?)
-> aka sed.
- __cron
- __user:
add option to include --create-home
fix __user NAME case (same issue as __group)
DOCUMENTATION
--------------
@ -45,7 +46,3 @@ Cache:
- export variable $__cache
-> for current host
-> add function to cdist-config, import from cdist-cache
remove --preseed from package_apt and add debconf_set_selection or similar
-> much cleaner!

View file

@ -1 +1,2 @@
Release 1.5.0 correctly :-)
remove --preseed from package_apt and add debconf_set_selection or similar
-> much cleaner!

View file

@ -135,19 +135,8 @@ tmp_dir::
TYPES
-----
The following types are available:
eof
for type in man7/cdist-type__*; do
name_1="${type#man7/cdist-type}"
name_2="${name_1%.7}"
name="$name_2"
echo "- $name"
done
cat << eof
The available types are listed in the SEE ALSO section
and are referenced as cdist-type__TYPENAME.
VARIABLES
---------
@ -187,7 +176,7 @@ SEE ALSO
--------
- cdist(7)
eof
for type in man7/cdist-type__*; do
for type in man7/cdist-type__*.7; do
name_1="${type#man7/}"
name_2="${name_1%.7}"

View file

@ -60,6 +60,84 @@ machine-a % git clone git://your-git-server/cdist
machine-b % git clone git://your-git-server/cdist
--------------------------------------------------------------------------------
SEPERATING 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
their manifests. You can use the following snippet in
**conf/manifests/init**:
--------------------------------------------------------------------------------
# Include other groups
sh -e "$__manifest/systems"
sh -e "$__manifest/cbrg"
--------------------------------------------------------------------------------
MAINTAINING MULTIPLE CONFIGURATIONS
-----------------------------------
When you need to manage multiple sites with cdist, like company_a, company_b
and private for instance, you can easily use git for this purpose.
Including a possible common base that is reused accross the different sites:
--------------------------------------------------------------------------------
# create branches
git branch company_a company_b common private
# make stuff for company a
git checkout company_a
# work, commit, etc.
# make stuff for company b
git checkout company_b
# work, commit, etc.
# make stuff relevant for all sites
git checkout common
# work, commit, etc.
# change to private and include latest common stuff
git checkout private
git merge common
--------------------------------------------------------------------------------
The following **.git/config** is taken from a a real world scenario:
--------------------------------------------------------------------------------
# Track upstream, merge from time to time
[remote "upstream"]
url = git://git.schottelius.org/cdist
fetch = +refs/heads/*:refs/remotes/upstream/*
# Same as upstream, but works when being offline
[remote "local"]
fetch = +refs/heads/*:refs/remotes/local/*
url = /home/users/nico/p/cdist
# Remote containing various ETH internal branches
[remote "eth"]
url = sans.ethz.ch:/home/services/sans/git/cdist-eth
fetch = +refs/heads/*:refs/remotes/eth/*
# Public remote that contains my private changes to cdist upstream
[remote "nico"]
url = git.schottelius.org:/home/services/git/cdist-nico
fetch = +refs/heads/*:refs/remotes/nico/*
# The "nico" branch will be synced with the remote nico, branch master
[branch "nico"]
remote = nico
merge = refs/heads/master
# ETH stable contains rock solid configurations used in various places
[branch "eth-stable"]
remote = eth
merge = refs/heads/stable
--------------------------------------------------------------------------------
Have a look at git-remote(1) to adjust the remote configuration, which allows
you to push certain branches to certain remotes.
SEE ALSO
--------