Skip to main content

Utilities to setup OpenAFS clients and servers

Project description

afsutil is a command-line tool to build, install, and setup OpenAFS for developers and testers.

Command line interface

usage: afsutil <command> [options]

commands:
  version      Print version
  help         Print usage
  getdeps      Install build dependencies
  check        Check hostname
  build        Build binaries
  reload       Reload the kernel module from the build tree
  package      Build packages
  install      Install binaries
  remove       Remove binaries
  start        Start AFS services
  stop         Stop AFS services
  ktcreate     Create a fake keytab
  ktdestroy    Destroy a keytab
  ktsetkey     Add a service key from a keytab file
  ktlogin      Obtain a token with a keytab
  newcell      Setup a new cell
  mtroot       Mount root volumes in a new cell
  addfs        Add a new fileserver to a cell

Examples

To build OpenAFS from sources:

$ git clone git://git.openafs.org/openafs.git
$ cd openafs
$ afsutil build

To install legacy “Transarc-style” binaries:

$ sudo afsutil install \
  --force \
  --components server client \
  --dist transarc \
  --dir /usr/local/src/openafs-test/amd64_linux26/dest \
  --cell example.com \
  --realm EXAMPLE.COM \
  --hosts myhost1 myhost2 myhost3 \
  --csdb /root/CellServDB.dist \
  -o "afsd=-dynroot -fakestat -afsdb" \
  -o "bosserver=-pidfiles"

To setup the OpenAFS service key from a Kerberos 5 keytab file:

$ sudo afsutil setkey
  --cell example.com \
  --realm EXAMPLE.COM \
  --keytab /root/fake.keytab

To start the OpenAFS servers:

$ sudo afsutil start server

To setup a new OpenAFS cell on 3 servers, after ‘afsutil install’ has been run on each:

$ sudo afsutil newcell \
  --cell example.com \
  --realm EXAMPLE.COM \
  --admin example.admin \
  --top test \
  --akimpersonate \
  --keytab /root/fake.keytab \
  --fs myhost1 myhost2 myhost3 \
  --db myhost1 myhost2 myhost3 \
  --aklog /usr/local/bin/aklog-1.6 \
  -o "dafs=yes" \
  -o "afsd=-dynroot -fakestat -afsdb" \
  -o "bosserver=-pidfiles" \
  -o "dafileserver=L"

To start the client:

$ sudo afsutil start client

To mount the top-level volumes after the client is running:

$ afsutil mtroot \
 --cell example.com \
 --admin example.admin \
 --top test \
 --realm EXAMPLE.COM \
 --akimpersonate \
 --keytab /root/fake.keytab \
 --fs myhost1 \
 -o "afsd=-dynroot -fakestat -afsdb"

Configuration files

All of the command line values may be set in a configuration file. afsutil will attempt to load the configuration from /etc/afsutil.cfg and then $HOME/.afsutil.cfg. Values specified on the command line will override the configuration file values.

The afsutil configuration files are in ini-style format. The sections of the configuration file correspond to the subcommand names, such as, build, install, newcell. The options within each section correspond to the command line option names.

Some subcommands, such as install and newcell have options like –options and –paths which consist of multiple name/values pairs. These are represented in the configuration file as subsection in the form [<subcommand>.<option>].

For example, the install command example given above has set of startup options for afsd and bosserver. This would be specified in the configuration file as:

[install]
force = yes
components = server client
dist = transarc
dir = /usr/local/src/openafs-test/amd64_linux26/dest
cell = example.com
realm = EXAMPLE.COM
hosts = myhost1 myhost2 myhost3
csdb = /root/CellServDB.dist

[install.options]
afsd = -dynroot -fakestat -afsdb
bosserver = -pidfiles

Here is an example configuration file:

$ cat /etc/afsutil.cfg
[install]
cell = example.com
realm = EXAMPLE.COM
force = True
components = server client
dist = transarc
hosts = debian9

[install.options]
afsd = -dynroot -fakestat -afsdb
bosserver =

[ktcreate]
cell = example.com
realm = EXAMPLE.COM
keytab = /home/mtycobb/afsrobot/fake.keytab

[ktsetkey]
cell = example.com
realm = EXAMPLE.COM
keytab = /home/mtycobb/afsrobot/fake.keytab
format = detect
[ktsetkey.paths]
asetkey = /usr/afs/bin/asetkey

[newcell]
cell = example.com
realm = EXAMPLE.COM
admin = afsrobot.admin
fs = debian9
db = debian9

[newcell.options]
bosserver =
dafileserver =
davolserver =
debian9.dafileserver = -d 1 -L
debian9.davolserver = -d 1

[newcell.paths]
aklog=/home/mtycobb/.local/bin/aklog-1.6
asetkey=/usr/afs/bin/asetkey
bos=/usr/afs/bin/bos
fs=/usr/afs/bin/fs
gfind=/usr/bin/find
pagsh=/usr/afsws/bin/pagsh
pts=/usr/afs/bin/pts
rxdebug=/usr/afsws/etc/rxdebug
tokens=/usr/afsws/bin/tokens
udebug=/usr/afs/bin/udebug
unlog=/usr/afsws/bin/unlog
vos=/usr/afs/bin/vos

[mtroot]
cell = example.com
realm = EXAMPLE.COM
admin = afsrobot.admin
top = test
akimpersonate = True
keytab = /home/mtycobb/afsrobot/fake.keytab
fs = debian9

[mtroot.options]
afsd = -dynroot -fakestat -afsdb

[mtroot.paths]
aklog = /home/mtycobb/.local/bin/aklog-1.6
asetkey = /usr/afs/bin/asetkey
bos = /usr/afs/bin/bos
fs = /usr/afs/bin/fs
gfind = /usr/bin/find
pagsh = /usr/afsws/bin/pagsh
pts = /usr/afs/bin/pts
rxdebug = /usr/afsws/etc/rxdebug
tokens = /usr/afsws/bin/tokens
udebug = /usr/afs/bin/udebug
unlog = /usr/afsws/bin/unlog
vos = /usr/afs/bin/vos

And the commands to install OpenAFS and create a new cell on a single machine:

sudo afsutil install
sudo afsutil ktcreate
sudo afsutil ktsetkey
sudo afsutil start server
sudo afsutil newcell
sudo afsutil start client

afsutil mtroot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
afsutil-0.8.2-py2-none-any.whl (77.5 kB) Copy SHA256 hash SHA256 Wheel py2 Sep 17, 2018
afsutil-0.8.2.tar.gz (62.0 kB) Copy SHA256 hash SHA256 Source None Sep 17, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page