summaryrefslogtreecommitdiffstats
path: root/doc/index.txt
blob: c9252a37953698de6e59493c4b8e128a32334496 (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
102
103
104
105
106
107
108
109
110
.. -*- mode: rst -*-

.. _index:

======================
Bcfg2 Manual |release|
======================

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
:ref:`page <server-reports-index>`.

A comprehensive description of the Bcfg2 Architecture (and the choices
behind the design) can be found at :ref:`architecture`

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`.