From 2d59bb01a5a3a70a161313de54fd36e0870e2f5d Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 15 Nov 2012 11:24:04 +0100 Subject: [PATCH] split install/update into its own file Signed-off-by: Nico Schottelius --- docs/web/cdist.mdwn | 226 +---------------------------- docs/web/cdist/features.mdwn | 2 + docs/web/cdist/install-update.mdwn | 218 ++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+), 224 deletions(-) create mode 100644 docs/web/cdist/install-update.mdwn diff --git a/docs/web/cdist.mdwn b/docs/web/cdist.mdwn index a69ea034..4d8fe82b 100644 --- a/docs/web/cdist.mdwn +++ b/docs/web/cdist.mdwn @@ -10,13 +10,8 @@ cdist is an alternative to other configuration management systems like [chef](http://wiki.opscode.com/display/chef/) and [puppet](http://www.puppetlabs.com/). -### Documentation - -The cdist documentation is included as manpages in the distribution. -You can browse the documentation online as well: - - * [latest version](man/latest) - * [all versions (>= 2.0.4)](man) + * Browse the **documentation** for the [latest version](man/latest) or [all versions (>= 2.0.4)](man) + * Read how to [[install or update cdist|install-update]] ### OS support @@ -34,223 +29,6 @@ cdist was tested or is know to run on at least * [XenServer](http://www.citrix.com/xenserver/) -## Requirements - -### Server - - * A posix like shell - * Python (>= 3.2 required) - * SSH client - * Asciidoc (for building the manpages) - -### Client ("target host") - - * A posix like shell - * SSH server - - -## Installation - -### Preparation - -Ensure you have Python 3.2 installed on the machine you use to **deploy to the targets** -(the ***source host***). - -#### Archlinux - -Archlinux already has python >= 3.2, so you only need to do: - - pacman -S python - -#### CentOS - -See the "From source" section - -#### Debian - -For Debian >= wheezy: - - aptitude install python3 - -On squeeze you can add following line in **/etc/apt/sources.list** - - deb http://ftp.debian.org/debian wheezy main - -And add pinning entry in **/etc/apt/preferences.d/wheezy**: - - Package: * - Pin: release n=wheezy - Pin-Priority: 1 - -Please be aware that both **openssh-server** and **openssh-client** might be -removed on **python3.2** installation. You surely want to reinstall them: - - apt-get install -t wheezy openssh-server openssh-client - -For older Debian versions, installing python 3.2 manually is required. - - -#### Fedora - -For Fedora >= 15: - - yum install python3 - -#### FreeBSD - -For the port: - - cd /usr/ports/lang/python32/ && make install clean - -For the package: - - pkg_add -r python32 - -#### Gentoo - -Gentoo only provides python 3.2 in testing packages (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&chap=3). -If you want to ensure nothing breaks you must set back the python version to what was default before. - - emerge -av =python-3.2.2 --autounmask-write - emerge -av =python-3.2.2 - eselect python list - eselect python list set python3.2 - -#### Max OS X - -You can choose between Homebrew and Macports, either way works: - -[Homebrew](http://mxcl.github.com/homebrew/) variant: - - brew install python3 - -[Macports](http://www.macports.org/install.php) variant: - - port install python32 - ln -s /opt/local/bin/python3.2 /opt/local/bin/python3 - -#### From Source - -For those operating systems not yet support Python 3.2: - - pyversion=3.2.3 - wget http://www.python.org/ftp/python/$pyversion/Python-${pyversion}.tar.bz2 - tar xvfj Python-${pyversion}.tar.bz2 - cd Python-${pyversion} - ./configure - make - sudo make install - -This installs python 3.2 to /usr/local/bin. Ensure this directory is in -your PATH environment variable. - - -### Get cdist - -You can clone cdist from git, which gives you the advantage of having -a version control in place for development of your own stuff as well. -To install cdist, execute the following commands: - - git clone git://git.schottelius.org/cdist - cd cdist - export PATH=$PATH:$(pwd -P)/bin - - # If you want the manpages - ./build man - export MANPATH=$MANPATH:$(pwd -P)/doc/man - - -### Available versions - -There are at least the following branches available: - - * Development: master - * 2.0: Python rewrite of cdist core [stable branch] - -Old versions: - - * 1.7: Bugfixes, cleanups, new type and explorer rename - * 1.6: New types, cleaned up \_\_package* types, internal cleanup - * 1.5: Focus on object orientation instead of global stage orientation - * 1.4: Support for redefiniton of objects (if equal) - * 1.3: Support for local and remote code execution (current stable) - * 1.2: Dependencies supported - * 1.1: \_\_file to \_\_file, \_\_directory, \_\_link migration - * 1.0: First official release - -Other branches may be available for features or bugfixes, but they -may vanish at any point. To select a specific branch use - - # Generic code - git checkout -b origin/ - - # Stay on a specific version - version=2.0 - git checkout -b $version origin/$version - -### Mirrors - - * git://github.com/telmich/cdist.git ([github](https://github.com/telmich/cdist)) - * git://git.code.sf.net/p/cdist/code ([sourceforge](https://sourceforge.net/p/cdist/code)) - -## Update - -To upgrade cdist in the current branch use - - git pull - - # Also update the manpages - ./build man - export MANPATH=$MANPATH:$(pwd -P)/doc/man - -If you stay on a version branche (i.e. 1.0, 1.1., ...), nothing should break. -The master branch on the other hand is the development branch and may not be -working, break your setup or eat the tree in your garden. - -### Upgrading from 1.7 to 2.0 - -* Ensure python (>= 3.2) is installed on the server -* Use "cdist config host" instead of "cdist-deploy-to host" -* Use "cdist config -p host1 host2" instead of "cdist-mass-deploy" -* Use "cdist banner" for fun -* Use **\_\_object_fq** instead of **\_\_self** in manifests - -### Upgrading from 1.6 to 1.7 - -* If you used the global explorer **hardware_type**, you need to change - your code to use **machine** instead. - -### Upgrading from 1.5 to 1.6 - -* If you used **\_\_package_apt --preseed**, you need to use the new - type **\_\_debconf_set_selections** instead. -* The **\_\_package** types accepted either --state deinstalled or - --state uninstaaled. Starting with 1.6, it was made consistently - to --state removed. - -### Upgrading from 1.3 to 1.5 - -No incompatiblities. - -### Upgrading from 1.2 to 1.3 - -Rename **gencode** of every type to **gencode-remote**. - -### Upgrading from 1.1 to 1.2 - -No incompatiblities. - -### Upgrading from 1.0 to 1.1 - -In 1.1 the type **\_\_file** was split into **\_\_directory**, **\_\_file** and -**\_\_link**. The parameter **--type** was removed from **\_\_file**. Thus you -need to replace **\_\_file** calls in your manifests: - - * Remove --type from all \_\_file calls - * If type was symlink, use \_\_link and --type symbolic - * If type was directory, use \_\_directory - - ## Support ### IRC diff --git a/docs/web/cdist/features.mdwn b/docs/web/cdist/features.mdwn index 1b3525ac..c1fecb53 100644 --- a/docs/web/cdist/features.mdwn +++ b/docs/web/cdist/features.mdwn @@ -1,3 +1,5 @@ +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*** diff --git a/docs/web/cdist/install-update.mdwn b/docs/web/cdist/install-update.mdwn new file mode 100644 index 00000000..67d9df8c --- /dev/null +++ b/docs/web/cdist/install-update.mdwn @@ -0,0 +1,218 @@ +## Requirements + +### Server + + * A posix like shell + * Python (>= 3.2 required) + * SSH client + * Asciidoc (for building the manpages) + +### Client ("target host") + + * A posix like shell + * SSH server + + +## Installation + +### Preparation + +Ensure you have Python 3.2 installed on the machine you use to **deploy to the targets** +(the ***source host***). + +#### Archlinux + +Archlinux already has python >= 3.2, so you only need to do: + + pacman -S python + +#### CentOS + +See the "From source" section + +#### Debian + +For Debian >= wheezy: + + aptitude install python3 + +On squeeze you can add following line in **/etc/apt/sources.list** + + deb http://ftp.debian.org/debian wheezy main + +And add pinning entry in **/etc/apt/preferences.d/wheezy**: + + Package: * + Pin: release n=wheezy + Pin-Priority: 1 + +Please be aware that both **openssh-server** and **openssh-client** might be +removed on **python3.2** installation. You surely want to reinstall them: + + apt-get install -t wheezy openssh-server openssh-client + +For older Debian versions, installing python 3.2 manually is required. + + +#### Fedora + +For Fedora >= 15: + + yum install python3 + +#### FreeBSD + +For the port: + + cd /usr/ports/lang/python32/ && make install clean + +For the package: + + pkg_add -r python32 + +#### Gentoo + +Gentoo only provides python 3.2 in testing packages (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&chap=3). +If you want to ensure nothing breaks you must set back the python version to what was default before. + + emerge -av =python-3.2.2 --autounmask-write + emerge -av =python-3.2.2 + eselect python list + eselect python list set python3.2 + +#### Max OS X + +You can choose between Homebrew and Macports, either way works: + +[Homebrew](http://mxcl.github.com/homebrew/) variant: + + brew install python3 + +[Macports](http://www.macports.org/install.php) variant: + + port install python32 + ln -s /opt/local/bin/python3.2 /opt/local/bin/python3 + +#### From Source + +For those operating systems not yet support Python 3.2: + + pyversion=3.2.3 + wget http://www.python.org/ftp/python/$pyversion/Python-${pyversion}.tar.bz2 + tar xvfj Python-${pyversion}.tar.bz2 + cd Python-${pyversion} + ./configure + make + sudo make install + +This installs python 3.2 to /usr/local/bin. Ensure this directory is in +your PATH environment variable. + + +### Get cdist + +You can clone cdist from git, which gives you the advantage of having +a version control in place for development of your own stuff as well. +To install cdist, execute the following commands: + + git clone git://git.schottelius.org/cdist + cd cdist + export PATH=$PATH:$(pwd -P)/bin + + # If you want the manpages + ./build man + export MANPATH=$MANPATH:$(pwd -P)/doc/man + + +### Available versions + +There are at least the following branches available: + + * Development: master + * 2.0: Python rewrite of cdist core [stable branch] + +Old versions: + + * 1.7: Bugfixes, cleanups, new type and explorer rename + * 1.6: New types, cleaned up \_\_package* types, internal cleanup + * 1.5: Focus on object orientation instead of global stage orientation + * 1.4: Support for redefiniton of objects (if equal) + * 1.3: Support for local and remote code execution (current stable) + * 1.2: Dependencies supported + * 1.1: \_\_file to \_\_file, \_\_directory, \_\_link migration + * 1.0: First official release + +Other branches may be available for features or bugfixes, but they +may vanish at any point. To select a specific branch use + + # Generic code + git checkout -b origin/ + + # Stay on a specific version + version=2.0 + git checkout -b $version origin/$version + +### Mirrors + + * git://github.com/telmich/cdist.git ([github](https://github.com/telmich/cdist)) + * git://git.code.sf.net/p/cdist/code ([sourceforge](https://sourceforge.net/p/cdist/code)) + +## Update + +To upgrade cdist in the current branch use + + git pull + + # Also update the manpages + ./build man + export MANPATH=$MANPATH:$(pwd -P)/doc/man + +If you stay on a version branche (i.e. 1.0, 1.1., ...), nothing should break. +The master branch on the other hand is the development branch and may not be +working, break your setup or eat the tree in your garden. + +### Upgrading from 1.7 to 2.0 + +* Ensure python (>= 3.2) is installed on the server +* Use "cdist config host" instead of "cdist-deploy-to host" +* Use "cdist config -p host1 host2" instead of "cdist-mass-deploy" +* Use "cdist banner" for fun +* Use **\_\_object_fq** instead of **\_\_self** in manifests + +### Upgrading from 1.6 to 1.7 + +* If you used the global explorer **hardware_type**, you need to change + your code to use **machine** instead. + +### Upgrading from 1.5 to 1.6 + +* If you used **\_\_package_apt --preseed**, you need to use the new + type **\_\_debconf_set_selections** instead. +* The **\_\_package** types accepted either --state deinstalled or + --state uninstaaled. Starting with 1.6, it was made consistently + to --state removed. + +### Upgrading from 1.3 to 1.5 + +No incompatiblities. + +### Upgrading from 1.2 to 1.3 + +Rename **gencode** of every type to **gencode-remote**. + +### Upgrading from 1.1 to 1.2 + +No incompatiblities. + +### Upgrading from 1.0 to 1.1 + +In 1.1 the type **\_\_file** was split into **\_\_directory**, **\_\_file** and +**\_\_link**. The parameter **--type** was removed from **\_\_file**. Thus you +need to replace **\_\_file** calls in your manifests: + + * Remove --type from all \_\_file calls + * If type was symlink, use \_\_link and --type symbolic + * If type was directory, use \_\_directory + + +[[!tag cdist unix]]