summaryrefslogtreecommitdiffstats
path: root/doc/index.txt
blob: 3ed4ea0934a3efa59198da670ecaeed40b039b01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
.. -*- mode: rst -*-

.. _index:

=====================
Bcfg2 Manual (v1.1.0)
=====================

What is Bcfg2?
==============

Bcfg2 helps system administrators produce a consistent, reproducible,
and verifiable description of their environment, and offers
visualization and reporting tools to aid in day-to-day administrative
tasks. It is the fifth generation of configuration management tools
developed in the `Mathematics and Computer Science Division`_ of
`Argonne National Laboratory`_.

.. _Mathematics and Computer Science Division: http://www.mcs.anl.gov/
.. _Argonne National Laboratory: http://www.anl.gov/

It is based on an operational model in which the specification can be
used to validate and optionally change the state of clients, but in a
feature unique to Bcfg2 the client's response to the specification can
also be used to assess the completeness of the specification. Using
this feature, Bcfg2 provides an objective measure of how good a job an
administrator has done in specifying the configuration of client
systems. Bcfg2 is therefore built to help administrators construct an
accurate, comprehensive specification.

Bcfg2 has been designed from the ground up to support gentle
reconciliation between the specification and current client states. It
is designed to gracefully cope with manual system modifications.

Finally, due to the rapid pace of updates on modern networks, client
systems are constantly changing; if required in your environment,
Bcfg2 can enable the construction of complex change management and
deployment strategies.

Architecture
------------

Bcfg2 provides a declarative interface to system configuration. It was
designed and implemented in-house at Argonne National Laboratory, but has matured to the
point that external sites have begun using it. Its configuration
specifications describe a literal configuration goal state for
clients. In this architecture, the Bcfg2 client tool is responsible
for determining what, if any, configuration operations must occur and
then performing those operations. The client also uploads statistics and client
configuration state information. The design and implementation of the reporting system is described in a separate [wiki:Reports page].

Server
^^^^^^

The role of the bcfg2 server is rendering a client-specific target configuration description from a global specification. The specification consists of a directory structure containing data for a variety of server plugins. The bcfg2 server has a plugin interface that can be used to interpret parts configuration specification.

Client
^^^^^^

Read on for more information about :ref:`client-index`.

What Operating Systems Does Bcfg2 Support?
==========================================

Bcfg2 is fairly portable. It has been successfully run on:

* `AIX`_, `FreeBSD`_, `OpenBSD`_, `Mac OS X`_, `OpenSolaris`_,
  `Solaris`_.

.. _AIX: http://www.ibm.com/aix
.. _FreeBSD: http://www.freebsd.org/
.. _OpenBSD: http://www.openbsd.org/
.. _Mac OS X: http://www.apple.com/macosx/
.. _OpenSolaris: http://opensolaris.org/
.. _Solaris: http://www.sun.com/software/solaris/

* Many `GNU/Linux`_ distributions, including `Blag`_, `CentOS`_,
  `Debian`_, `Fedora`_, `Gentoo`_, `gNewSense`_, `Mandriva`_,
  `OpenSUSE`_, `Redhat/RHEL`_, `SuSE/SLES`_, `Trisquel`_ and
  `Ubuntu`_.

.. _GNU/Linux: http://www.gnu.org/gnu/Linux-and-gnu.html
.. _Blag: http://www.blagblagblag.org/
.. _CentOS: http://www.centos.org/
.. _Debian: http://www.debian.org/
.. _Fedora: http://www.fedoraproject.org/
.. _Gentoo: http://www.gentoo.org/
.. _gNewSense: http://www.gnewsense.org/
.. _Mandriva: http://www.mandriva.com/
.. _OpenSUSE: http://opensuse.org/
.. _Redhat/RHEL: http://www.redhat.com/rhel/
.. _SuSE/SLES: http://www.novell.com/linux/
.. _Trisquel: http://trisquel.info/
.. _Ubuntu: http://www.ubuntu.com/

Bcfg2 should run on any POSIX compatible operating system, however
direct support for an operating system's package and service formats
are limited by the currently available :ref:`client-tools-index`
(new client tools are pretty easy to add). Check the :ref:`FAQ
<faq-general>` for a  more exact list of platforms on which Bcfg2
works`.