2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-30 13:37:55 +00:00

[#3881] copy edit sects: Install, Components

This commit is contained in:
Ben Scott
2025-05-08 17:06:18 -04:00
committed by Marcin Siodelski
parent 9980d67f6f
commit aeaaaabcf8

View File

@@ -163,67 +163,70 @@ backend and the corresponding option data in the server configuration files.
Components Components
---------- ----------
In The Kea Configuration Backend solution consists of the CB modules (hook libraries), the CB commands API (its own hook library), the external database software (MySQL or PostgreSQL), the database schema, and the Kea configuration information stored in the database.
this documentation, the term "Configuration Backend" may also refer to
the particular Kea module providing support to manage and fetch the In this documentation, the term "Configuration Backend" may also refer to the
configuration information from the particular database type. For particular Kea module providing support for that database type. For example,
example, the MySQL Configuration Backend is the logic implemented within the MySQL Configuration Backend, :ischooklib:`libdhcp_mysql.so`, provides a
:ischooklib:`libdhcp_mysql.so`, which provides a complete set of functions to complete set of functions to manage and fetch the configuration information
manage and fetch the configuration information from the MySQL database. from a MySQL database. The PostgreSQL Configuration Backend,
The PostgreSQL Configuration Backend is the logic implemented within :ischooklib:`libdhcp_pgsql.so`, is the corresponding module for PostgreSQL.
:ischooklib:`libdhcp_pgsql.so`, which provides a complete set of functions to Similarly, the term "database" is used to refer to either a MySQL or
manage and fetch the configuration information from the PostgreSQL database.
From here on, the term "database" is used to refer to either a MySQL or
PostgreSQL database. PostgreSQL database.
:ischooklib:`libdhcp_cb_cmds.so` provides a complete set of commands to manage The CB commands API provides a complete set of commands to manage Kea
the servers' configuration information within the database. This library can configuration information, as stored within the database. This API is
be attached to both DHCPv4 and DHCPv6 server instances. It simplifies many implemented in its own hook library, :ischooklib:`libdhcp_cb_cmds.so`. This
typical operations, such as listing, adding, retrieving, and deleting global library can be attached to both DHCPv4 and DHCPv6 server instances. It
parameters, shared networks, subnets, pools, options, option definitions, and simplifies many typical operations, such as listing, adding, retrieving, and
client classes. In addition, it provides essential business logic that ensures deleting global parameters, shared networks, subnets, pools, options, option
the logical integrity of the data. See commands starting with ``remote-`` in definitions, and client classes. In addition, it provides essential business
Appendix A of this manual for a complete list. logic that ensures the logical integrity of the data. All CB API commands
start with ``remote-``. See FIXME api.html#commands-cb-cmds for a complete
list.
The DHCPv4 and DHCPv6 server-specific configurations of the CB, as well as Installation and maintenance of external database software is beyond the scope of this manual.
the list of supported configuration parameters, can be found in
:ref:`dhcp4-cb` and :ref:`dhcp6-cb`, respectively.
The schema creation scripts can be found at The database schema is typically installed via the tool. See :ref:`cb-install` for more information. The raw schema creation scripts are
`dhcpdb_create.mysql <https://gitlab.isc.org/isc-projects/kea/blob/master/src/share/database/scripts/mysql/dhcpdb_create.mysql>`__ `dhcpdb_create.mysql <https://gitlab.isc.org/isc-projects/kea/blob/master/src/share/database/scripts/mysql/dhcpdb_create.mysql>`__
and and
`dhcpdb_create.pgsql <https://gitlab.isc.org/isc-projects/kea/blob/master/src/share/database/scripts/pgsql/dhcpdb_create.pgsql>`__. `dhcpdb_create.pgsql <https://gitlab.isc.org/isc-projects/kea/blob/master/src/share/database/scripts/pgsql/dhcpdb_create.pgsql>`__.
Other related design documents are stored in our GitLab:
`CB Design <https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design>`__ Use the CB commands API to populate the database with Kea configuration information.
and
`Client Classes in CB Design <https://gitlab.isc.org/isc-projects/kea/wikis/designs/client-classes-in-cb>`__. Related design documents are available in our GitLab:
- `CB Design <https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design>`__
- `Client Classes in CB Design <https://gitlab.isc.org/isc-projects/kea/wikis/designs/client-classes-in-cb>`__
.. _cb-install: .. _cb-install:
Installation Installation
------------ ------------
To use a MySQL configuration backend, :ischooklib:`libdhcp_mysql.so` must To use either Configuration Backend, the appropriate module library
be compiled and the DHCP servers must be configured to load it. It is compiled (:ischooklib:`libdhcp_mysql.so` or :ischooklib:`libdhcp_pgsql.so`) must be
when the ``-D mysql=enabled`` configuration switch is used during the Kea build. compiled during the Kea build. The ``-D`` switch specifies which database
The MySQL C client libraries must be installed, as explained in module to build, if any: ``-D mysql`` or ``-D pgsql``. The appropriate
:ref:`dhcp-install-configure`. database client libraries and header files must be installed prior to build.
See :ref:`dhcp-install-configure` for more information on building Kea with
database support. ISC's Kea packaging, as well as some distributions, provide
separate packages for each database type.
To use a PostgreSQL configuration backend, :ischooklib:`libdhcp_pgsql.so` must The database server hosting the CB tables must be prepared with the Kea
be compiled and the DHCP servers must be configured to load it. It is compiled schema. When upgrading an existing Kea installation, the database schema may
when the ``-D postgresql=enabled`` configuration switch is used during the Kea build. also need to be upgraded. The :iscman:`kea-admin` tool can be used to more
The PostgreSQL C client libraries must be installed, as explained in easily apply the schema, as described in :ref:`kea-admin`.
:ref:`dhcp-install-configure`.
At runtime, the DHCP servers must be configured to load the module, in the
``hooks-libraries`` section. A ``config-databases`` directive must then be
used to instruct Kea to load configuration using the database backend. The
DHCPv4 and DHCPv6 server-specific configurations of the CB, as well as the
list of supported configuration parameters, can be found in :ref:`dhcp4-cb`
and :ref:`dhcp6-cb`, respectively.
Once installation is completed, the CB commands API can be used to populate
.. note:: the database with Kea configuration information.
An existing database schema must be upgraded to the latest schema
required by the particular Kea version using the :iscman:`kea-admin` tool,
as described in :ref:`kea-admin`.
.. _cb-sharing:
Configuration Sharing and Server Tags Configuration Sharing and Server Tags
------------------------------------- -------------------------------------