summaryrefslogtreecommitdiffstats
path: root/doc/appendix
diff options
context:
space:
mode:
Diffstat (limited to 'doc/appendix')
-rw-r--r--doc/appendix/files/mysql.txt10
-rw-r--r--doc/appendix/files/ntp.txt20
-rw-r--r--doc/appendix/guides/centos.txt213
-rw-r--r--doc/appendix/guides/converging_rhel5.txt13
-rw-r--r--doc/appendix/guides/fedora.txt492
-rw-r--r--doc/appendix/guides/import-existing-ssh-keys.txt11
-rw-r--r--doc/appendix/guides/ubuntu.txt2
-rw-r--r--doc/appendix/guides/vcs.txt10
-rw-r--r--doc/appendix/guides/web-reports-install.txt4
9 files changed, 95 insertions, 680 deletions
diff --git a/doc/appendix/files/mysql.txt b/doc/appendix/files/mysql.txt
index 5adf2e27f..0dbbe9b05 100644
--- a/doc/appendix/files/mysql.txt
+++ b/doc/appendix/files/mysql.txt
@@ -8,14 +8,14 @@
MySQL example
=============
-I had some time ago to continue with putting my configuration into
+I had some time ago to continue with putting my configuration into
Bcfg2 and maybe this helps someone else.
I added a new bundle:
.. code-block:: xml
- <Bundle name="mysql-server" version="3.0">
+ <Bundle>
<Path name="/root/bcfg2-install/mysql/users.sh"/>
<Path name="/root/bcfg2-install/mysql/users.sql"/>
<Action name="users.sh"/>
@@ -32,9 +32,9 @@ The ``users.sh`` script looks like this:
mysql --defaults-extra-file=/etc/mysql/debian.cnf mysql \
< /root/bcfg2-install/mysql/users.sql
-On debian there is a user account in ``/etc/mysql/debian.cnf``
-automatically created, but you could also (manually) create a
-user in the database that has enough permissions and add the
+On debian there is a user account in ``/etc/mysql/debian.cnf``
+automatically created, but you could also (manually) create a
+user in the database that has enough permissions and add the
login information in a file yourself. This file looks like this::
[client]
diff --git a/doc/appendix/files/ntp.txt b/doc/appendix/files/ntp.txt
index e14816f6e..c999841da 100644
--- a/doc/appendix/files/ntp.txt
+++ b/doc/appendix/files/ntp.txt
@@ -13,7 +13,7 @@ another layer of functionality.
* After each change, run ``bcfg-repo-validate -v``
* Run the server with ``bcfg2-server -v``
* Update the client with ``bcfg2 -v -d -n`` (will not actually make
- client changes)
+ client changes)
Package only
------------
@@ -43,7 +43,7 @@ a client, a profile group, a list of packages, and an NTP bundle.
.. code-block:: xml
- <Bundle name="ntp">
+ <Bundle>
<Package name='ntp'/>
</Bundle>
@@ -75,7 +75,7 @@ Configure the service, and add it to Rules.
.. code-block:: xml
- <Bundle name="ntp">
+ <Bundle>
<Package name='ntp'/>
<Service name='ntpd'/>
</Bundle>
@@ -85,16 +85,14 @@ Add config file
Setup an ``etc/`` directory structure, and add it to the base::
- # cat Cfg/etc/ntp.conf/ntp.conf
+ # cat Cfg/etc/ntp.conf/ntp.conf
server ntp1.utexas.edu
-``Base/base.xml``:
-
``Bundler/ntp.xml``:
.. code-block:: xml
- <Bundle name="ntp">
+ <Bundle>
<Package name='ntp'/>
<Service name='ntpd'/>
<Path name='/etc/ntp.conf'/>
@@ -114,18 +112,18 @@ used to provide a single service. This is done for several reasons:
packages are upgraded, so that they can be repaired if the
package install clobbered them.
* Services associated with a bundle get restarted whenever any entity
- in that bundle is modified. This ensures that new configuration
- files and software are used after installation.
+ in that bundle is modified. This ensures that new configuration
+ files and software are used after installation.
The config file, package, and service are really all related
-components describing the idea of an ntp client, so they should be
+components describing the idea of an ntp client, so they should be
logically grouped together. We use a bundle to accomplish this.
``Bundler/ntp.xml``:
.. code-block:: xml
- <Bundle name='ntp'>
+ <Bundle>
<Package name='ntp'/>
<Service name='ntpd'/>
<Path name='/etc/ntp.conf'/>
diff --git a/doc/appendix/guides/centos.txt b/doc/appendix/guides/centos.txt
index febdf5769..3a35627a8 100644
--- a/doc/appendix/guides/centos.txt
+++ b/doc/appendix/guides/centos.txt
@@ -102,7 +102,7 @@ Run bcfg2 to be sure you are able to communicate with the server::
Excluding Packages in global exclude list
Finished
Loaded tool drivers:
- Action Chkconfig POSIX YUMng
+ Action Chkconfig POSIX YUM
Phase: initial
Correct entries: 0
@@ -147,7 +147,7 @@ Now if you run the client, no more warning::
Excluding Packages in global exclude list
Finished
Loaded tool drivers:
- Action Chkconfig POSIX YUMng
+ Action Chkconfig POSIX YUM
Phase: initial
Correct entries: 0
@@ -176,7 +176,7 @@ First, replace **Pkgmgr** with **Packages** in the plugins
line of ``bcfg2.conf``. Then create Packages layout (as per
:ref:`packages-exampleusage`) in ``/var/lib/bcfg2``
-.. note:: I am using the RawURL syntax here since we are using `mrepo`_
+.. note:: I am using the rawurl syntax here since we are using `mrepo`_
to manage our yum mirrors.
.. _mrepo: http://dag.wieers.com/home-made/mrepo/
@@ -184,37 +184,36 @@ line of ``bcfg2.conf``. Then create Packages layout (as per
.. code-block:: xml
<Sources>
- <!-- CentOS (5.4) sources -->
- <Source type="yum" rawurl="http://mrepo/centos5-x86_64/RPMS.os">
- <Arch>x86_64</Arch>
+ <Group name="centos5">
+ <!-- CentOS 5 sources -->
+ <Source type="yum"
+ rawurl="http://mrepo/centos5-x86_64/RPMS.os">
+ <Arch>x86_64</Arch>
</Source>
- <Source type="yum" rawurl="http://mrepo/centos5-x86_64/RPMS.updates">
- <Arch>x86_64</Arch>
+ <Source type="yum"
+ rawurl="http://mrepo/centos5-x86_64/RPMS.updates">
+ <Arch>x86_64</Arch>
</Source>
- <Source type="yum" rawurl="http://mrepo/centos5-x86_64/RPMS.extras">
- <Arch>x86_64</Arch>
+ <Source type="yum"
+ rawurl="http://mrepo/centos5-x86_64/RPMS.extras">
+ <Arch>x86_64</Arch>
</Source>
+ </Group>
</Sources>
-Due to the :ref:`server-plugins-generators-packages-magic-groups`,
-we need to modify our Metadata. Let's add a **centos5.4** group which
-inherits a **centos** group (this should replace the existing **redhat**
-group) present in ``/var/lib/bcfg2/Metadata/groups.xml``. The resulting
-file should look something like this
-
-.. note::
-
- The reason we are creating a release-specific group in this case is
- that the YUMSource above is specific to the 5.4 release of centos.
- That is, it should not apply to other releases (5.1, 5.3, etc).
+To make these sources apply to our centos 5 clients, we need to modify
+our Metadata. Let's add a **centos5** group which inherits a
+**centos** group (this should replace the existing **redhat** group)
+present in ``/var/lib/bcfg2/Metadata/groups.xml``. The resulting file
+should look something like this
.. code-block:: xml
<Groups version='3.0'>
<Group profile='true' public='true' default='true' name='basic'>
- <Group name='centos-5.4'/>
+ <Group name='centos-5'/>
</Group>
- <Group name='centos-5.4'>
+ <Group name='centos-5'>
<Group name='centos'/>
</Group>
<Group name='ubuntu'/>
@@ -237,7 +236,7 @@ arch group membership. For this, we will make use of the
Probes to your plugins line in ``bcfg2.conf`` and create the Probe.::
[root@centos ~]# grep plugins /etc/bcfg2.conf
- plugins = Base,Bundler,Cfg,...,Probes
+ plugins = Bundler,Cfg,...,Probes
[root@centos ~]# mkdir /var/lib/bcfg2/Probes
[root@centos ~]# cat /var/lib/bcfg2/Probes/groups
#!/bin/sh
@@ -259,9 +258,8 @@ it with the *yum* package.
.. code-block:: xml
- [root@centos ~]# cat /var/lib/bcfg2/Bundler/base-packages.xml
- <Bundle name='base-packages'>
- <Package name='yum'/>
+ <Bundle>
+ <Package name='yum'/>
</Bundle>
You need to reference the bundle from your Metadata. The resulting
@@ -271,7 +269,7 @@ profile group might look something like this
<Group profile='true' public='true' default='true' name='basic'>
<Bundle name='base-packages'/>
- <Group name='centos5.4'/>
+ <Group name='centos5'/>
</Group>
Now if we run the client, we can see what this has done for us.::
@@ -285,7 +283,7 @@ Now if we run the client, we can see what this has done for us.::
Excluding Packages in global exclude list
Finished
Loaded tool drivers:
- Action Chkconfig POSIX YUMng
+ Action Chkconfig POSIX YUM
Package pam failed verification.
Phase: initial
@@ -330,7 +328,7 @@ entries?::
Excluding Packages in global exclude list
Finished
Loaded tool drivers:
- Action Chkconfig POSIX YUMng
+ Action Chkconfig POSIX YUM
Extra Package openssh-clients 4.3p2-36.el5_4.4.x86_64.
Extra Package libuser 0.54.7-2.1el5_4.1.x86_64.
...
@@ -358,22 +356,22 @@ looks like this
.. code-block:: xml
- <Bundle name='base-packages'>
- <Package name='bcfg2-server'/>
- <Package name='exim'/>
- <Package name='grub'/>
- <Package name='kernel'/>
- <Package name='krb5-workstation'/>
- <Package name='m2crypto'/>
- <Package name='openssh-clients'/>
- <Package name='openssh-server'/>
- <Package name='prelink'/>
- <Package name='redhat-lsb'/>
- <Package name='rpm-build'/>
- <Package name='rsync'/>
- <Package name='sysklogd'/>
- <Package name='vim-enhanced'/>
- <Package name='yum'/>
+ <Bundle>
+ <Package name='bcfg2-server'/>
+ <Package name='exim'/>
+ <Package name='grub'/>
+ <Package name='kernel'/>
+ <Package name='krb5-workstation'/>
+ <Package name='m2crypto'/>
+ <Package name='openssh-clients'/>
+ <Package name='openssh-server'/>
+ <Package name='prelink'/>
+ <Package name='redhat-lsb'/>
+ <Package name='rpm-build'/>
+ <Package name='rsync'/>
+ <Package name='sysklogd'/>
+ <Package name='vim-enhanced'/>
+ <Package name='yum'/>
</Bundle>
Now when I run the client, you can see I have only one unmanaged
@@ -388,9 +386,7 @@ package::
Excluding Packages in global exclude list
Finished
Loaded tool drivers:
- Action Chkconfig POSIX YUMng
- Extra Package gpg-pubkey e8562897-459f07a4.None.
- Extra Package gpg-pubkey 217521f6-45e8a532.None.
+ Action Chkconfig POSIX YUM
Phase: initial
Correct entries: 187
@@ -404,96 +400,11 @@ package::
Incorrect entries: 0
Total managed entries: 187
Unmanaged entries: 16
- Package:gpg-pubkey
Service:atd
Service:avahi-daemon
Service:bcfg2-server
...
-The gpg-pubkey packages are special in that they are not really
-packages. Currently, the way to manage them is using :ref:`BoundEntries
-<boundentries>`. So, after adding them, our Bundle now looks like this
-
-.. note:: This does not actually control the contents of the files,
- you will need to do this part separately (see below).
-
-.. code-block:: xml
-
- <Bundle name='base-packages'>
- <BoundPackage name="gpg-pubkey" type="rpm" version="foo">
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5" version="e8562897" release="459f07a4"/>
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL" version="217521f6" release="45e8a532"/>
- </BoundPackage>
- <Package name='bcfg2-server'/>
- <Package name='exim'/>
- <Package name='grub'/>
- <Package name='kernel'/>
- <Package name='krb5-workstation'/>
- <Package name='m2crypto'/>
- <Package name='openssh-clients'/>
- <Package name='openssh-server'/>
- <Package name='prelink'/>
- <Package name='redhat-lsb'/>
- <Package name='rpm-build'/>
- <Package name='rsync'/>
- <Package name='sysklogd'/>
- <Package name='vim-enhanced'/>
- <Package name='yum'/>
- </Bundle>
-
-.. note::
-
- version="foo" is just a dummy attribute for the gpg-pubkey Package
-
-To actually push the gpg keys out via Bcfg2, you will need to manage the
-files as well. This can be done by adding Path entries for each of the
-gpg keys you want to manage
-
-.. code-block:: xml
-
- <Bundle name='base-packages'>
- <Path name='/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5'/>
- <Path name='/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL'/>
- <BoundPackage name="gpg-pubkey" type="rpm" version="foo">
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5" version="e8562897" release="459f07a4"/>
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL" version="217521f6" release="45e8a532"/>
- </BoundPackage>
- <Package name='bcfg2-server'/>
- <Package name='exim'/>
- <Package name='grub'/>
- <Package name='kernel'/>
- <Package name='krb5-workstation'/>
- <Package name='m2crypto'/>
- <Package name='openssh-clients'/>
- <Package name='openssh-server'/>
- <Package name='prelink'/>
- <Package name='redhat-lsb'/>
- <Package name='rpm-build'/>
- <Package name='rsync'/>
- <Package name='sysklogd'/>
- <Package name='vim-enhanced'/>
- <Package name='yum'/>
- </Bundle>
-
-Then add the files to Cfg::
-
- mkdir -p Cfg/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
- cp /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 !$/RPM-GPG-KEY-CentOS-5
- mkdir -p Cfg/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
- cp /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL !$/RPM-GPG-KEY-EPEL
-
-You will also want to add an *important* attribute to these files so
-that they are installed on the client prior to any attempts to install
-the **gpg-pubkey** rpm packages. This is especially important during the
-bootstrapping phase and can be accomplished using an :ref:`server-info`
-file that looks like the following:
-
-.. code-block:: xml
-
- <FileInfo>
- <Info owner='root' group='root' mode='0644' important='true'/>
- </FileInfo>
-
Now, running the client shows only unmanaged Service entries. Woohoo!
Manage services
@@ -527,22 +438,22 @@ entries to our bundle.
[root@centos ~]# cat /var/lib/bcfg2/Rules/services.xml
<Rules priority='1'>
- <!-- basic services -->
- <Service type='chkconfig' status='on' name='atd'/>
- <Service type='chkconfig' status='on' name='avahi-daemon'/>
- <Service type='chkconfig' status='on' name='bcfg2-server'/>
- <Service type='chkconfig' status='on' name='crond'/>
- <Service type='chkconfig' status='on' name='cups'/>
- <Service type='chkconfig' status='on' name='gpm'/>
- <Service type='chkconfig' status='on' name='lvm2-monitor'/>
- <Service type='chkconfig' status='on' name='mcstrans'/>
- <Service type='chkconfig' status='on' name='messagebus'/>
- <Service type='chkconfig' status='on' name='netfs'/>
- <Service type='chkconfig' status='on' name='network'/>
- <Service type='chkconfig' status='on' name='postfix'/>
- <Service type='chkconfig' status='on' name='rawdevices'/>
- <Service type='chkconfig' status='on' name='sshd'/>
- <Service type='chkconfig' status='on' name='syslog'/>
+ <!-- basic services -->
+ <Service type='chkconfig' status='on' name='atd'/>
+ <Service type='chkconfig' status='on' name='avahi-daemon'/>
+ <Service type='chkconfig' status='on' name='bcfg2-server'/>
+ <Service type='chkconfig' status='on' name='crond'/>
+ <Service type='chkconfig' status='on' name='cups'/>
+ <Service type='chkconfig' status='on' name='gpm'/>
+ <Service type='chkconfig' status='on' name='lvm2-monitor'/>
+ <Service type='chkconfig' status='on' name='mcstrans'/>
+ <Service type='chkconfig' status='on' name='messagebus'/>
+ <Service type='chkconfig' status='on' name='netfs'/>
+ <Service type='chkconfig' status='on' name='network'/>
+ <Service type='chkconfig' status='on' name='postfix'/>
+ <Service type='chkconfig' status='on' name='rawdevices'/>
+ <Service type='chkconfig' status='on' name='sshd'/>
+ <Service type='chkconfig' status='on' name='syslog'/>
</Rules>
Now we run the client and see there are no more unmanaged entries!::
@@ -556,7 +467,7 @@ Now we run the client and see there are no more unmanaged entries!::
Excluding Packages in global exclude list
Finished
Loaded tool drivers:
- Action Chkconfig POSIX YUMng
+ Action Chkconfig POSIX YUM
Phase: initial
Correct entries: 205
diff --git a/doc/appendix/guides/converging_rhel5.txt b/doc/appendix/guides/converging_rhel5.txt
index d6883c778..4ad5756b9 100644
--- a/doc/appendix/guides/converging_rhel5.txt
+++ b/doc/appendix/guides/converging_rhel5.txt
@@ -24,7 +24,8 @@ Unmanaged entries
sudo yum remove PACKAGE
- #. Otherwise, add ``<Package name="PACKAGE" />`` to the Base or Bundler configuration.
+ #. Otherwise, add ``<Package name="PACKAGE" />`` to the Bundler
+ configuration.
* Package (dependency)
@@ -38,7 +39,7 @@ Unmanaged entries
* Service
- #. Add ``<Service name="SERVICE" />`` to the Base or Bundler configuration.
+ #. Add ``<Service name="SERVICE" />`` to the Bundler configuration.
#. Add ``<Service name="SERVICE" status="on" type="chkconfig" />`` to
``/var/lib/bcfg2/Rules/services.xml``.
@@ -57,8 +58,8 @@ For a "Package"
* For example, ``/etc/motd`` to ``/var/lib/bcfg2/Cfg/etc/motd/motd``.
Yes, there is an extra directory level named after the file.
- #. Specify configuration files as ``<Path name='PATH' />`` in the Base
- or Bundler configuration.
+ #. Specify configuration files as ``<Path name='PATH' />`` in the
+ Bundler configuration.
#. Add directories to ``/var/lib/bcfg2/Rules/directories.xml``. For
example:
@@ -73,13 +74,13 @@ For a "Package"
* Option A: Explicitly list the instances
- #. Drop the ``<Package />`` from the Base or Bundler configuration.
+ #. Drop the ``<Package />`` from the Bundler configuration.
#. Add an explicit ``<BoundPackage>`` and ``<Instance />`` configuration
to a new Bundle, like the following:
.. code-block:: xml
- <Bundle name='keys'>
+ <Bundle>
<!-- GPG keys -->
<BoundPackage name="gpg-pubkey" type="rpm" version="foo">
<Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL" version="217521f6" release="45e8a532"/>
diff --git a/doc/appendix/guides/fedora.txt b/doc/appendix/guides/fedora.txt
deleted file mode 100644
index 1e49084ef..000000000
--- a/doc/appendix/guides/fedora.txt
+++ /dev/null
@@ -1,492 +0,0 @@
-.. -*- mode: rst -*-
-
-.. This guide is based on the Centos guide.
-
-.. _guide-fedora:
-
-======
-Fedora
-======
-
-This guide is work in progess.
-
-
-This is a complete getting started guide for Fedora. With this
-document you should be able to install a Bcfg2 server, a Bcfg2 client,
-and change the ``/etc/motd`` file on the client.
-
-Prerequisites
-=============
-
-To setup a configuration management system based on Bcfg2 only a few
-prerequisites need to be fullfilled.
-
-* A server machine that can host the Bcfg2
-* Internet access for the installation process
-* A working network with DNS
-
-
-Install Bcfg2 From RPM
-======================
-
-The fastest way to get Bcfg2 onto your system is to use ``yum``
-or PackageKit. ``yum`` will pull all dependencies of Bcfg2
-automatically in. ::
-
- $ su -c 'yum install bcfg2-server bcfg2'
-
-Your system should now have the necessary software to use Bcfg2.
-The next step is to set up your Bcfg2 :term:`repository`.
-
-
-Initialize your repository
-==========================
-
-Now that you're done with the install, you need to initialize your
-repository and setup your ``/etc/bcfg2.conf``. ``bcfg2-admin init``
-is a tool which allows you to automate this:
-
-.. code-block:: sh
-
- # bcfg2-admin init
- Store bcfg2 configuration in [/etc/bcfg2.conf]:
- Location of bcfg2 repository [/var/lib/bcfg2]:
- Directory /var/lib/bcfg2 exists. Overwrite? [y/N]:y
- Input password used for communication verification (without echoing; leave blank for a random):
- What is the server's hostname: [config01.local.net]
- Input the server location [https://config01.local.net:6789]:
- Input base Operating System for clients:
- 1: Red Hat/Fedora/RHEL/RHAS/Centos
- 2: SUSE/SLES
- 3: Mandrake
- 4: Debian
- 5: Ubuntu
- 6: Gentoo
- 7: FreeBSD
- : 1
- Generating a 1024 bit RSA private key
- .......................................................++++++
- .....++++++
- writing new private key to '/etc/bcfg2.key'
- -----
- Signature ok
- subject=/C=US/ST=Illinois/L=Argonne/CN=config01.local.net
- Getting Private key
- Repository created successfuly in /var/lib/bcfg2
-
-Change responses as necessary.
-
-Start the server
-================
-
-You are now ready to start your Bcfg2 server for the first time::
-
- $ su -c '/etc/init.d/bcfg2-server start'
- Starting Configuration Management Server: bcfg2-server [ OK ]
-
-To verify that everything started ok, look for the running daemon and
-check the logs:
-
-.. code-block:: sh
-
- $ su -c 'tail /var/log/messages'
- May 16 14:14:57 config01 bcfg2-server[2746]: service available at https://config01.local.net:6789
- May 16 14:14:57 config01 bcfg2-server[2746]: serving bcfg2-server at https://config01.local.net:6789
- May 16 14:14:57 config01 bcfg2-server[2746]: serve_forever() [start]
- May 16 14:14:57 config01 bcfg2-server[2746]: Handled 16 events in 0.009s
-
-
-Run ``bcfg2`` to be sure you are able to communicate with the server:
-
-.. code-block:: sh
-
- $ su -c 'bcfg2 -vqne'
-
- /usr/lib/python2.6/site-packages/Bcfg2/Client/Tools/rpmtools.py:23: DeprecationWarning: the md5 module is deprecated; use hashlib instead
- import md5
- Loaded plugins: presto, refresh-packagekit
- Loaded tool drivers:
- Action Chkconfig POSIX YUMng
- Extra Package imsettings-libs 0.108.0-2.fc13.i686.
- Extra Package PackageKit-device-rebind 0.6.4-1.fc13.i686.
- ...
- Extra Package newt-python 0.52.11-2.fc13.i686.
- Extra Package pulseaudio-gdm-hooks 0.9.21-6.fc13.i686.
-
- Phase: initial
- Correct entries: 0
- Incorrect entries: 0
- Total managed entries: 0
- Unmanaged entries: 1314
-
-
- Phase: final
- Correct entries: 0
- Incorrect entries: 0
- Total managed entries: 0
- Unmanaged entries: 1314
- Package:ConsoleKit Package:jasper-libs Package:pcsc-lite-libs
- Package:ConsoleKit-libs Package:java-1.5.0-gcj Package:perf
- ...
- Package:iw Package:pcre Service:sshd
- Package:jack-audio-connection-kit Package:pcsc-lite Service:udev-post
-
-The ``bcfg2.conf`` file contains only standard plugins so far.
-
-.. code-block:: sh
-
- $ su -c 'cat /etc/bcfg2.conf'
-
- [server]
- repository = /var/lib/bcfg2
- plugins = SSHbase,Cfg,Pkgmgr,Rules,Metadata,Base,Bundler
-
- [statistics]
- sendmailpath = /usr/lib/sendmail
-
- [database]
- engine = sqlite3
- # 'postgresql', 'mysql', 'mysql_old', 'sqlite3' or 'ado_mssql'.
- name =
- # Or path to database file if using sqlite3.
- #<repository>/etc/brpt.sqlite is default path if left empty
- user =
- # Not used with sqlite3.
- password =
- # Not used with sqlite3.
- host =
- # Not used with sqlite3.
- port =
-
- [communication]
- protocol = xmlrpc/ssl
- password = test1234
- certificate = /etc/bcfg2.crt
- key = /etc/bcfg2.key
- ca = /etc/bcfg2.crt
-
- [components]
- bcfg2 = https://config01.local.net:6789
-
-
-Add the machines to Bcfg2
--------------------------
-
-``bcfg2-admin`` can be used to add a machine to Bcfg2 easily. You
-need to know the Fully Qualified Domain Name (FQDN) of ever system
-you want to control through Bcfg2. ::
-
- bcfg2-admin client add <FQDN machine>
-
-Bring your first machine under Bcfg2 control
---------------------------------------------
-
-Now it is time to get the first machine's configuration into the
-Bcfg2 repository. The server will be the first machine. It's
-already in the ``Metadata/client.xml``.
-
-
-Setup the :ref:`server-plugins-generators-packages` plugin
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-First, replace **Pkgmgr** with **Packages** in the plugins
-line of ``bcfg2.conf``. Then create a `Packages/` directory in
-``/var/lib/bcfg2`` ::
-
- $ su -c 'mkdir /var/lib/bcfg2/Packages'
-
-Create a ``packages.conf`` in the ``/var/lib/bcfg2/Packages`` directory
-with the following contents::
-
- [global]
-
-Create a ``sources.xml`` file for the packages in
-``/var/lib/bcfg2/Packages`` with the following content. Choose a mirror
-near your location according the `Mirror list`_ .
-
-.. _Mirror list: http://mirrors.fedoraproject.org/publiclist/
-
-.. code-block:: xml
-
- <Sources>
- <Group name="fedora-13">
- <Source type="yum" url="ftp://fedora.tu-chemnitz.de/pub/linux/fedora/linux/releases/" version="13">
- <Component>Fedora</Component>
- <Arch>i386</Arch>
- <Arch>x86_64</Arch>
- <Source>
- </Group>
- </Sources>
-
-
-Due to the :ref:`server-plugins-generators-packages-magic-groups`,
-we need to modify our Metadata. Let's add a **fedora13** group which
-inherits a **fedora** group (this should replace the existing **redhat**
-group) present in ``/var/lib/bcfg2/Metadata/groups.xml``. The resulting
-file should look something like this
-
-.. note::
-
- The reason we are creating a release-specific group in this case is
- that the YUMSource above is specific to the 13th release of fedora.
- That is, it should not apply to other releases (14, 15, etc).
-
-.. code-block:: xml
-
- <Groups version='3.0'>
- <Group profile='true' public='true' default='true' name='basic'>
- <Group name='fedora13'/>
- </Group>
- <Group name='fedora13'/>
- <Group name='fedora'/>
- <Group name='ubuntu'/>
- <Group name='debian'/>
- <Group name='freebsd'/>
- <Group name='gentoo'/>
- <Group name='fedora'/>
- <Group name='suse'/>
- <Group name='mandrake'/>
- <Group name='solaris'/>
- </Groups>
-
-.. note::
- When editing your xml files by hand, it is useful to occasionally
- run ``bcfg2-lint`` to ensure that your xml validates properly.
-
-Add a probe
-+++++++++++
-
-The next step for the client will be to have the proper
-arch group membership. For this, we will make use of the
-:ref:`unsorted-dynamic_groups` capabilities of the Probes plugin. Add
-**Probes** to your plugins line in ``bcfg2.conf`` and create the Probe:
-
-.. code-block:: sh
-
- $ su -c 'mkdir /var/lib/bcfg2/Probes'
- $ su -c 'cat /var/lib/bcfg2/Probes/groups'
- #!/bin/sh
-
- echo "group:`uname -m`"
-
-Now a restart of ``bcfg2-server`` is needed::
-
- $ su -c '/etc/init.d/bcfg2-server restart'
-
-To test the Probe just run ``bcfg2 -vqn``.
-
-.. code-block:: xml
-
- $ su -c 'bcfg2 -vqn'
- Running probe group
- Probe group has result:
- group:i686
- ...
-
-Start managing packages
-+++++++++++++++++++++++
-
-Add a base-packages bundle. Let's see what happens when we just populate
-it with the *yum* package. Create the ``base-packages.xml`` in your
-``Bundler/`` directory with a entry for ``yum``.
-
-.. code-block:: xml
-
- $ cat /var/lib/bcfg2/Bundler/base-packages.xml
- <Bundle name='base-packages'>
- <Package name='yum'/>
- </Bundle>
-
-You need to reference the bundle from your ``group.xml``. The resulting
-profile group might look something like this
-
-.. code-block:: xml
-
- <Group profile='true' public='true' default='true' name='basic'>
- <Bundle name='base-packages'/>
- <Group name='fedora13'/>
- </Group>
-
-Now if we run the client, we can see what this has done for us.::
-
- output
-
-As you can see, the Packages plugin has generated the dependencies
-required for the yum package automatically. The ultimate goal should
-be to move all the packages from the **Unmanaged** entries section
-to the **Managed** entries section. So, what exactly *are* those
-Unmanaged entries?::
-
- output
-
-Now you can go through these and continue adding the packages you
-want to your Bundle. After a while, I ended up with a minimal bundle
-that looks like this
-
-.. code-block:: xml
-
- <Bundle name='base-packages'>
-
- </Bundle>
-
-Now when I run the client, you can see I have only one unmanaged
-package::
-
- outout
-
-The gpg-pubkey packages are special in that they are not really
-packages. Currently, the way to manage them is using
-:ref:`BoundEntries <boundentries>`. So, after adding them, our
-Bundle now looks like this
-
-.. note:: This does not actually control the contents of the files,
- you will need to do this part separately (see below).
-
-.. code-block:: xml
-
- <Bundle name='base-packages'>
- <BoundPackage name="gpg-pubkey" type="rpm" version="foo">
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5" version="e8562897" release="459f07a4"/>
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL" version="217521f6" release="45e8a532"/>
- </BoundPackage>
- <Package name='bcfg2-server'/>
- <Package name='exim'/>
- <Package name='grub'/>
- <Package name='kernel'/>
- <Package name='krb5-workstation'/>
- <Package name='m2crypto'/>
- <Package name='openssh-clients'/>
- <Package name='openssh-server'/>
- <Package name='prelink'/>
- <Package name='redhat-lsb'/>
- <Package name='rpm-build'/>
- <Package name='rsync'/>
- <Package name='sysklogd'/>
- <Package name='vim-enhanced'/>
- <Package name='yum'/>
- </Bundle>
-
-.. note::
-
- version="foo" is just a dummy attribute for the gpg-pubkey Package
-
-To actually push the gpg keys out via Bcfg2, you will need to manage
-the files as well. This can be done by adding Path entries for each
-of the gpg keys you want to manage
-
-.. code-block:: xml
-
- <Bundle name='base-packages'>
- <Path name='/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5'/>
- <Path name='/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL'/>
- <BoundPackage name="gpg-pubkey" type="rpm" version="foo">
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5" version="e8562897" release="459f07a4"/>
- <Instance simplefile="/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL" version="217521f6" release="45e8a532"/>
- </BoundPackage>
- <Package name='bcfg2-server'/>
- <Package name='exim'/>
- <Package name='grub'/>
- <Package name='kernel'/>
- <Package name='krb5-workstation'/>
- <Package name='m2crypto'/>
- <Package name='openssh-clients'/>
- <Package name='openssh-server'/>
- <Package name='prelink'/>
- <Package name='redhat-lsb'/>
- <Package name='rpm-build'/>
- <Package name='rsync'/>
- <Package name='sysklogd'/>
- <Package name='vim-enhanced'/>
- <Package name='yum'/>
- </Bundle>
-
-Then add the files to Cfg::
-
- mkdir -p Cfg/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
- cp /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 !$/RPM-GPG-KEY-CentOS-5
- mkdir -p Cfg/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
- cp /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL !$/RPM-GPG-KEY-EPEL
-
-Now, running the client shows only unmanaged Service entries. Woohoo!
-
-Manage services
-+++++++++++++++
-
-Now let's clear up the unmanaged service entries by adding the
-following entries to our bundle...
-
-.. code-block:: xml
-
- <!-- basic services -->
- <Service name='atd'/>
- <Service name='avahi-daemon'/>
- <Service name='bcfg2-server'/>
- <Service name='crond'/>
- <Service name='cups'/>
- <Service name='gpm'/>
- <Service name='lvm2-monitor'/>
- <Service name='mcstrans'/>
- <Service name='messagebus'/>
- <Service name='netfs'/>
- <Service name='network'/>
- <Service name='postfix'/>
- <Service name='rawdevices'/>
- <Service name='sshd'/>
- <Service name='syslog'/>
-
-...and bind them in Rules
-
-.. code-block:: xml
-
- [root@centos ~]# cat /var/lib/bcfg2/Rules/services.xml
- <Rules priority='1'>
- <!-- basic services -->
- <Service type='chkconfig' status='on' name='atd'/>
- <Service type='chkconfig' status='on' name='avahi-daemon'/>
- <Service type='chkconfig' status='on' name='bcfg2-server'/>
- <Service type='chkconfig' status='on' name='crond'/>
- <Service type='chkconfig' status='on' name='cups'/>
- <Service type='chkconfig' status='on' name='gpm'/>
- <Service type='chkconfig' status='on' name='lvm2-monitor'/>
- <Service type='chkconfig' status='on' name='mcstrans'/>
- <Service type='chkconfig' status='on' name='messagebus'/>
- <Service type='chkconfig' status='on' name='netfs'/>
- <Service type='chkconfig' status='on' name='network'/>
- <Service type='chkconfig' status='on' name='postfix'/>
- <Service type='chkconfig' status='on' name='rawdevices'/>
- <Service type='chkconfig' status='on' name='sshd'/>
- <Service type='chkconfig' status='on' name='syslog'/>
- </Rules>
-
-Now we run the client and see there are no more unmanaged entries! ::
-
- $ su -c 'bcfg2 -veqn'
-
-
-Adding Plugins
-++++++++++++++
-
-Git
----
-
-.. _Git tutorial: http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
-
-Adding the :ref:`server-plugins-version-git` plugins can preserve
-versioning information. The first step is to add *Git* to your
-plugin line::
-
- plugins = Base,Bundler,Cfg,...,Git
-
-For tracking the configuration files in the ``/var/lib/bcfg2``
-directory a git repository need to be established::
-
- git init
-
-For more detail about the setup of git please refer to a `git tutorial`_.
-The first commit can be the empty or the allready populated directory::
-
- git add . && git commit -a
-
-While running ``bcfg2-info`` the following line will show up::
-
- Initialized git plugin with git directory = /var/lib/bcfg2/.git
diff --git a/doc/appendix/guides/import-existing-ssh-keys.txt b/doc/appendix/guides/import-existing-ssh-keys.txt
index 64a1b62cd..6ce41ba60 100644
--- a/doc/appendix/guides/import-existing-ssh-keys.txt
+++ b/doc/appendix/guides/import-existing-ssh-keys.txt
@@ -21,10 +21,11 @@ Add a bundle for ssh
After verifying that SSHbase is listed on the plugins line in
``/etc/bcfg2.conf``, you need to create a bundle containing the
-appropriate entries.::
+appropriate entries.
- cat > /tmp/ssh.xml << EOF
- <Bundle name='ssh'>
+.. code-block:: xml
+
+ <Bundle>
<Path name='/etc/ssh/ssh_host_dsa_key'/>
<Path name='/etc/ssh/ssh_host_rsa_key'/>
<Path name='/etc/ssh/ssh_host_dsa_key.pub'/>
@@ -34,10 +35,6 @@ appropriate entries.::
<Path name='/etc/ssh/ssh_known_hosts'/>
</Bundle>
-::
-
- mv /tmp/ssh.xml /var/lib/bcfg2/Bundle
-
Next, you need to add the ssh bundle to the client's metadata in
groups.xml.
diff --git a/doc/appendix/guides/ubuntu.txt b/doc/appendix/guides/ubuntu.txt
index f68c8b9ad..60f8e3a41 100644
--- a/doc/appendix/guides/ubuntu.txt
+++ b/doc/appendix/guides/ubuntu.txt
@@ -495,7 +495,7 @@ like this:
.. code-block:: xml
- <Bundle name='base-saucy'>
+ <Bundle>
<!-- packages -->
<Package name='bcfg2-server'/>
<!-- or dependencies -->
diff --git a/doc/appendix/guides/vcs.txt b/doc/appendix/guides/vcs.txt
index 6c2879a65..fba61e722 100644
--- a/doc/appendix/guides/vcs.txt
+++ b/doc/appendix/guides/vcs.txt
@@ -30,7 +30,7 @@ While running ``bcfg2-info`` the following line will show up::
Initialized git plugin with git directory = /var/lib/bcfg2/.git
-Mercurial
+Mercurial
=========
The :ref:`server-plugins-version-hg` plugin also allows you to store
@@ -59,7 +59,7 @@ While running ``bcfg2-info`` the following line will show up::
Initialized hg plugin with hg directory = /var/lib/bcfg2/.hg
-Darcs
+Darcs
=====
The :ref:`server-plugins-version-darcs` plugin also allows you to store
@@ -70,8 +70,8 @@ be initialized::
darcs initialize
-To commit to the darcs repository an author must be added to the
-``_darcs/prefs/author`` file. If the ``author`` file is missing,
+To commit to the darcs repository an author must be added to the
+``_darcs/prefs/author`` file. If the ``author`` file is missing,
darcs will ask you to enter your e-mail address.
.. code-block:: sh
@@ -99,7 +99,7 @@ Cvs
The :ref:`server-plugins-version-cvs` plugin also allows you to store
version information in the statistics database.
- plugins = Base,Bundler,Cfg,...,Cvs
+ plugins = Bundler,Cfg,...,Cvs
The CVS repository must be initialized::
diff --git a/doc/appendix/guides/web-reports-install.txt b/doc/appendix/guides/web-reports-install.txt
index f03bad289..06932efc9 100644
--- a/doc/appendix/guides/web-reports-install.txt
+++ b/doc/appendix/guides/web-reports-install.txt
@@ -28,7 +28,7 @@ Add Reporting to the plugins line of ``bcfg2.conf``. The resulting
[server]
repository = /var/lib/bcfg2
- plugins = Base,Bundler,Cfg,...,Reporting
+ plugins = Bundler,Cfg,...,Reporting
[reporting]
transport = LocalFilesystem
@@ -53,7 +53,7 @@ then have something like this::
[server]
repository = /var/lib/bcfg2
- plugins = Base,Bundler,Cfg,...,Reporting
+ plugins = Bundler,Cfg,...,Reporting
[database]
engine = sqlite3