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. 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 on 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 the configuration specification.
Client
^^^^^^
The Bcfg2 client is responsible for determining what operations are
necessary in order to reach the desired configuration state. 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`.
|