- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with afs
- Usage - Configuration options and additional functionality
- Reference - Parameter reference
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
This module manages the OpenAFS client: it installs the required packages and
manages the configuration files (ThisCell, CellServDB, cacheinfo, the
openafs-client config and optional SuidCells, symlinks and cron jobs).
Package names and file locations vary by platform and are driven by the
module's Hiera data for RedHat/EL, Suse and Ubuntu.
Manages the packages and files regarding OpenAFS. Location of these files vary by platform and packages being used to install OpenAFS.
This module requires stdlib and cron_core (see metadata.json).
Include the main ::afs class. Default values for supported operating systems
are specified in the module's Hiera.
There are a few parameters that are required for the AFS module to configure OpenAFS correctly:
afs::afs_cellafs::afs_cellserverdb
afs::afs_cell: afs.domain.tld
afs::afs_cellserverdb: |
>afs.domain.tldOpenAFS will be configured with ThisCell afs.domain.tld with CellServDB
afs.domain.tld.
On Enterprise Linux (RedHat family) the CellServDB content is written to
/usr/vice/etc/CellServDB.local instead of the active /usr/vice/etc/CellServDB.
The openafs-client start script merges CellServDB.local and CellServDB.dist
into the active CellServDB, so the active file is only regenerated when the
cell content changes and is not overwritten on every client restart. On other
platforms the active CellServDB is managed directly.
Symlinks can be created if required.
afs::links:
'app':
path: '/app'
target: '/afs/some/path/app'
'env':
path: '/env'
target: '/afs/some/path/env'
'etc_home':
path: '/etc/home'
target: '/env/site/profiles/home'This would create the following symlinks:
/app -> /afs/some/path/app
/env -> /afs/some/path/env
/etc/home -> /env/site/profiles/home
This module is documented via puppet-strings. See REFERENCE.md for the full list of classes, defined types and all of their parameters.
This module supports Puppet 8 (see metadata.json for the exact requirement).
It is tested against the operating systems listed below. The supported OS
matrix is defined in metadata.json, and CI runs pdk validate and
pdk test unit on Puppet 8 via GitHub Actions (see .github/workflows/).
- RedHat (EL) 7, 8, 9, 10
- Rocky 8, 9, 10
- SLES 12, 15
- Ubuntu 20.04, 22.04, 24.04
Other operating systems might be supported by configuring the module with the correct parameters.
Contributions are welcome. This module is managed with PDK. Before submitting changes, run the validators and unit tests:
pdk validate
pdk test unitPlease keep REFERENCE.md in sync by regenerating it from the class
documentation when parameters change:
pdk bundle exec puppet strings generate --format markdown