summaryrefslogtreecommitdiffstats
path: root/doc/client/tools.txt
blob: 09ea762307ffaab73134c1fbefac5be194cc5bc0 (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
.. -*- mode: rst -*-

.. _client-tools:

Client Tool Drivers
===================

Client tool drivers allow Bcfg2 to execute configuration operations by
interfacing with platform and distribution specific tools.

Tool drivers handle any reconfiguration or verification operation. So
far we have tools that primarily deal with packaging systems and service
management. The POSIX tool also handles file system and permissions/groups
operations.

To write your own tool driver, to handle a new packaging format, or new
service architecture see :ref:`development-client-driver`

When the Bcfg2 client is run, it attempts to instantiate each of these
drivers. The succeeding list of drivers are printed as a debug message
after this process has completed. Drivers can supercede one another,
for example, the Yum driver conflicts (and unloads) the RPM driver. This
behavior can be overridden by running the Bcfg2 client with the ``-D``
flag. This flag takes a colon delimited list of drivers to use on
the system.

Currently these are the tool drivers that are distributed with Bcfg2:

.. toctree::
   :maxdepth: 2
   :glob:

   tools/*

Action
------

Pre and post-install tests and actions. This driver executes commands
and supplies status information to the Bcfg2 server via the statistics
mechanism. It can also be used to prevent bundle installation when
pre-conditions are not met. See the UsingActions page for more details.

APK
---

This tool driver is used to handle packages on apk based systems like Alpine
Linux and employs the "apk" executable. Extra information can be
found at `apk-tools`_.

.. _apk-tools: http://apk-tools.sourceforge.net/

APT
---

Debian Packages. This tool driver is used to handle packages on dpkg
based systems and employs the "apt" executable. Extra information can be
found at :ref:`client-tools-apt`.

Blast
-----

Blastwave Packages. This tool driver is for blastwave packages on solaris

Chkconfig
---------

Tool to manage services (primarily on Redhat based distros).

.. note::

    Start and stop are standard arguments, but the one for reload
    isn't consistent across services. You can specify which argument
    to use with the ``target`` attribute in Service tags. Example:

    .. code-block:: xml

        <Service name="ftp" target="condrestart" status="on" type="chkconfig"/>

DebInit
-------

Debian Service Support; exec's update-rc.d to configure services.

Encap
-----

`Encap <http://www.encap.org>`_ Packages.

FreeBSDInit
-----------

FreeBSD Service Support. Only bundle updates will work.

FreeBSDPackage
--------------

FreeBSD Packages. Verifies packages and their version numbers but can't
install packages.

launchd
-------

Mac OS X Services. To use this tool, you must maintain a standard launch
daemon .plist file in ``/Library/LaunchDaemons/`` (example ssh.plist)
and setup an entry in your config to load or unload the service.

.. code-block:: xml

    <Service name="com.openssh.sshd" type="launchd" status="on"/>

Note the name is the *Label* specified inside of the .plist file

Portage
-------

Support for Gentoo Packages.

POSIX
-----

Files and Permissions are handled by the POSIX driver. Usage well
documented other places.

RcUpdate
--------

Uses the rc-update executable to manage services on distributions such
as Gentoo.

RPM
---

Executes RPM to manage packages on Redhat-based and similar systems.
Consider using the :ref:`YUM <client-tools-yum>` tool instead if possible.

SMF
---

Solaris Service Support.

Example legacy run service (lrc):

.. code-block:: xml

    <Service name='/etc/rc2_d/S47pppd' FMRI='lrc:/etc/rc2_d/S47pppd' status='off' type='smf'/>

Systemd
-------

Systemd service support.

SYSV
----

Handles System V Packaging format that is available on Solaris.

Upstart
-------

Upstart service support. Uses `Upstart`_ to configure services.

.. _Upstart: http://upstart.ubuntu.com/

YUM
---

Handles RPMs using the YUM package manager. See
:ref:`client-tools-yum` for more details.