Skip to content

ic-designer/fnal-asic-compute

Repository files navigation

FNAL ASIC Compute

Makefile CI

FNAL ASIC Compute provides standardized configurations for the following FNAL ASIC computing systems:

  • MacOS VNC Client
  • Linux VNC Server

Features

The MacOS VNC Client currently supports the following features:

  • Automatic Kerberos authentication and token renewal without password prompts.
  • Manage VNC connections from FNAL MacOS VNC Clients to FNAL Linux VNC Servers with the vnctools scripts.
  • Display git repo information in the command prompt.
  • Standard FNAL Kerberos and SSH configurations.

Installation

The configurations can installed using the following code snippet:

curl -sL https://github.com/ic-designer/fnal-asic-compute/archive/refs/tags/0.8.0.tar.gz | tar xz
make -C fnal-asic-compute-0.8.0 install

The Makefile retrieves information from the operating system to determine which configuration to install. As shown below, the Makefile first determines the operating system, then passes the target to the configuration specific target.

UNAME_OS:=$(shell sh -c 'uname -s 2>/dev/null')
ifeq ($(UNAME_OS),Darwin)
    TARGET_CONFIG := fnal-asic-config-macos-client
else ifeq ($(UNAME_OS),Linux)
    TARGET_CONFIG := fnal-asic-config-linux-server
else
    $(error Unsupported operating system, $(UNAME_OS))
endif
SRCDIR_ROOT = $(TARGET_CONFIG)

Configurations

MacOS VNC Client

The macOS client configuration provides the following user configuration files:

  • ~/.kerberos/krb5.conf - FNAL Kerberos Configuration for MacOS
  • ~/.kerberos/krbtools-keytab - Helper script to generate keytab file needed for passwordless authentication.
  • ~/.ssh/config - FNAL SSH client configurations.
  • ~/.zshrc - Base zsh run command file.

The environment variables provided below are also supported. These variables can be uniquely set for each user by adding to the override file ~/.zshrc_local.

  • KRB5_PRINCIPAL - Overrides the default kerberos principal if defined.

The MacOS client configuration also installs vnctools to help manage VNC connections.

VNC Tools Command Reference

Linux VNC Server

The Linux server configuration provides the following user configuration files:

  • ~/.local/bin/filename-search-and-replace - Bash script for renaming files using search and replace.
  • ~/.local/bin/isntall-pyenv - Bash scrip to help install pyenv.
  • ~/.ssh/config - FNAL SSH server configurations.
  • ~/.bashrc - Base bash run command file.
  • ~/.bash_profile - Base profile file.

Make Targets

Run make help to list the supported make targets.

$ make help
Available targets:
   check                   Performs a mock installation and uninstallation.
   clean                   Delete all files created by make.
   help                    Provides this help message
   install                 Install the configuration for the current OS
   test                    Performs a mock installation and uninstallation.
   uninstall               Uninstalls the configuration for the current OS