Skip to content

About

manage OpenAFS with new EIS packages

Resources

Security policy

Stars

2 stars

Watchers

3 watching

Forks

Repository files navigation

puppet-module-afs

Table of Contents

  1. Module Description - What the module does and why it is useful
  2. Setup - The basics of getting started with afs
  3. Usage - Configuration options and additional functionality
  4. Reference - Parameter reference
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

Module description

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.

Setup

What afs affects

Manages the packages and files regarding OpenAFS. Location of these files vary by platform and packages being used to install OpenAFS.

Setup requirements

This module requires stdlib and cron_core (see metadata.json).

Beginning with afs

Include the main ::afs class. Default values for supported operating systems are specified in the module's Hiera.

Basic usage

There are a few parameters that are required for the AFS module to configure OpenAFS correctly:

  • afs::afs_cell
  • afs::afs_cellserverdb
afs::afs_cell: afs.domain.tld
afs::afs_cellserverdb: |
  >afs.domain.tld

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

Manage symlinks for AFS

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

Reference

This module is documented via puppet-strings. See REFERENCE.md for the full list of classes, defined types and all of their parameters.

Limitations

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.

Development

Contributions are welcome. This module is managed with PDK. Before submitting changes, run the validators and unit tests:

pdk validate
pdk test unit

Please keep REFERENCE.md in sync by regenerating it from the class documentation when parameters change:

pdk bundle exec puppet strings generate --format markdown

About

manage OpenAFS with new EIS packages

Resources

Security policy

Stars

2 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages