CSCF Application Server (Asimov) notes

19 Aug 2020 - Updates to new server notes are in progress - mostly done

Summary

Purpose

  • File system for CSCF image deployment and misc services
  • Prototype for next generation Teir 2 File Server

Hardware

  • SuperMicro CSE-847E16-R1K28LPB case
  • SuperMicro X9DRD-7LN4F-JBOD-O motherboard, 2xIntel Xeon E5-2630 V2 (6 Core) 2.6Ghz, 128GB 1600Mhz DDR3 ECC RAM (16x8GB)
  • 2xIntel 100GB SSD (OS RAID 1)
  • 24x Seagate Constellation 4TB SAS (ST4000NM0023)
  • 800G PXIE flash disk - zcache for zfs

Ubuntu OS

  • We are now running Ubuntu 20.04.2 LTS on new hardware

Backups

  • The system is backed up by Legato Networker
  • NOTE: files under /backup - ARE NOT backed up! - this location is used for TEMPORARY storage only
    • Typical use would be as a temporary place to put files while reinstalling a CS machine.

Data migration - old to new Asimov

Index

Feature Summary - high level

  • Ubuntu Linux OS 20.04.2
  • Joined to CS AD - cscf-adm and cscf-op are local users, Samba passwords are local
  • Software and CD installation repository shared on the network using SAMBA
    • 285 CD's, Windows and Linux, that can be installed over the network
      • CD's are in RAW ISO format - easy to burn
      • CD's ram images are also mounted online so they are all available
    • Common Windows Applications and License Keys
  • SAMBA server - see CSApplicationServer#File_Shares
  • NFS server on 192.168.1.0/24
  • System Imager - see SystemImager
  • Machine image repository - Clonezilla, Acronis and GHOST images of fully installed machines
    • See ImageDeploy
    • ie "Syspreped" Windows machine with Applications fully configured/patched and/or fully setup Linux images
      • Most images are created and maintained by the CORE infrastructure group - Phil Beldowski, etc
  • Has private NAT firewalled network - VLAN 420
    • DHCP with local name server - See PXE server
    • PXE tftpboot functions - See PXE server
      • Boot DOS and Linux repair and imaging utilities or Linux network installers
    • DNS name server for NAT - See PXE server
    • SAMBA file shares
    • SSH and SSHFS - we can ssh mount resources
    • NFS file shares
    • APACHE Web service
      • TODO Many of the SAMBA shares can be accessed here as http://asimov:8080/exports or /iso
      • DHCP reporting tool for private network activity
  • External network
    • SAMBA file shares - to all of UofW
    • SSH and SSHFS - we can ssh mount resources
    • NFS file shares - limited to internal networks
    • APACHE Web service

Image deployment over the network from ASIMOV

Drive and File System

   zfs list
   NAME                    USED  AVAIL     REFER  MOUNTPOINT
   asimov-pool            49.1T  12.1T      302K  /asimov-pool
   asimov-pool/backups    5.66T  12.1T     5.66T  /backups
   asimov-pool/click0      279K  12.1T      279K  /asimov-pool/click0
   asimov-pool/coregroup  12.1T  12.1T     12.1T  /coregroup
   asimov-pool/images     1.33T  12.1T     1.33T  /images
   asimov-pool/ming       17.5T  12.1T     17.5T  /asimov-pool/ming
   asimov-pool/whoomp     12.5T  12.1T     12.5T  /asimov-pool/whoomp
   

SMART Disk Monitoring

  • TBD

Modifying service run levels

  • update-rc.d

File Shares

  • To see a list of shares you can run
    • NET VIEW command from a command prompt in Windows, for example, NET VIEW \\ASIMOV
    • smbclient -L asimov.cscf -U asimov\\cscf-adm from Linux (provided by the smbclient package in Ubuntu).
      • cscf-adm (2020)
root@asimov-new:~# smbclient -L localhost -U asimov\\cscf-adm
Enter asimov\cscf-adm's password: 

   Sharename       Type      Comment
   ---------       ----      -------
   homes           Disk      Home Directories
   print$          Disk      Printer Drivers
   PXE             Disk      PXE Boot home directory
   PXEIMAGES       Disk      PXE Boot share for Network Book Images
   PXEISO          Disk      Mounted CDROM Images,some may be Licensed Software, Requires License form IST
   PXERAWISO       Disk      RAW ISO CDROM Images, some may be Licensed Software, Requires License form IST
   OPT             Disk      OPT utilities
   research        Disk      Research Share
   install         Disk      Lawrence Folland - Research Group - work on file reorg.
   CORE            Disk      CORE GROUP
   CORE_OLD        Disk      CORE GROUP OLD
   IMAGES          Disk      Deployment images for all of CSCF
   IMAGES_DROP     Disk      Image create drop NFS share
   PROJECTS        Disk      CSCF Projects
   iso             Disk      Mounted CDROM Images,Licensed Software, Requires License form IST
   rawiso          Disk      RAW ISO CDROM Images, Licensed Software, Requires License form IST
   ubuntu          Disk      Ubuntu IOS images
   exports         Disk      ALL EXPORTS, Microsoft OS Dependent, Some site license software
   software        Disk      SOFTWARE not provided on CDROM images, Some licensed software
   sysprep         Disk      SYSPREP INSTALL IMAGES - Should move to IMAGES share
   SUPERMICRO      Disk      SUPERMICRO Utilities IPMI, Fimware,etc
   OFFICE10        Disk      Alias Office XP, network install, Note: needs license forms
   OFFICE11        Disk      Alias Office 2003, network install, Note: needs license forms
   vs.net2003      Disk      Alias VISUAL STUDIO NET 2003, Note: needs license forms
   vs.net2005      Disk      Alias VISUAL STUDIO NET 2005, Note: needs license forms
   backup          Disk      CSCF - RESEARCH USE - GENERAL TEMP BACKUP FOR ANY COMPUTER
   MAC             Disk      MAC software
   CLAYTON         Disk      Clayton Server Images and scratch area
   ADBACKUPS       Disk      AD Backups
   nexus           Disk      STEVE NICKERSON - NEXUS
   nexus_adm       Disk      STEVE NICKERSON - NEXUS ADMIN
   SNICKERS        Disk      Steve Nickerson image storage area
   IPC$            IPC       IPC Service (asimov server (Samba, Ubuntu))
   PDF             Printer   PDF
   magore          Disk      Home Directories


Common Sources

  • Source directory cscf-adm/src/src
Source files are located in three directories
  • /cscf-adm/src/dnsmasq - DHCP,PXE,DNS configuration files and scripts - some host specific
  • /cscf-adm/src - program sources
  • /cscf-adm/src/host - some host specific configuration
  • /cscf-adm/scripts - backup and other scripts

Common System Services

Notes System services can be controlled with the service command which is a script that simply invokes command in /etc/init.d . Each script has standard options such as start, stop, restart, status
  • mount_cds - mounts /iso images created from /images/rawiso
  • samba - samba service
  • dnsmasq - - Local Name server,DHCP server,PXE server * See DNSMASQ for details * See PXE server
  • firewall NatMasqFirewallExample
  • tftpboot structure See PXEBootFilesExample
  • make_clonezilla rebuilds PXE Clonezilla Imaging menus
  • mount_cds - mounts ISO images
    • mount_cds stop - removes /iso
    • mount_cds start - creates /iso loopback mounts from /images/rawiso

Setup Detail

  • Software under /cscf-adm/src provides a number of tools for setting up asimov
    • NETWORKING
      • /etc/netplan/0-installer-config.yaml network configuration and naming for system
        • These MUST be statically defined for our setup scripts to work
      • /cscf-adm/src/hosts/asimov/common_hosts
        • The master Makefile in /cscf-adm/src copies this to /usr/local/bin/common_host
        • EXTIF="eth4" defines the device name for the extrenal interface
        • INTIF="eth5" main internal network
        • NATIFS="eth5" NAT interface names to the internet
        • NFSIF="eth5" NFS interface access list
    • TFTPBOOT PXE
      • /tftpboot/pxes is the PXE root folder
      • /cscf-adm/src/dnsmasq contains all configuration files used for
        • Note: cscf-adm/src/hosts and /cscf-adm/src/dnsmasq/hosts are sumlinked to each other
        • DHCP and DNS
        • */cscf-adm/src/dnsmasq/hosts/asimov/dnsmasq.common
          • Defines all asimov nodes and interfaces with simplified IP and MAC address notation
          • provides DNS and reverse DNS for all local networks
          • Example:
            • host asimov
              • asimov.localnet has address 192.168.1.1
            • host asimov.cs
              • asimov.cs has address 129.97.15.251
        • make processes /cscf-adm/src/dnsmasq/hosts/asimov/dnsmasq.common
          • Creates:
            • /etc/hosts - defines local addresses for all asimov nodes
            • /etc/resolv.conf using /cscf-adm/src/dnsmasq/hosts/uw/resolv.template
            • /etc/dnsmasq.hosts - is an include file in /etc/dnsmasq.conf
              • Note: /etc/dnsmasq.conf ONLY includes dnsmasq.hosts - do not define anything else
        • TFTPBOOT

    • FIREWALL and NAT for internal private networks - optionally provides NAT
    • SAMBA shares - also used by imaging tools
    • NFS for live boot images

Initial Setup overview

Only Done once
  • Note: cscf-adm/src/hosts and /cscf-adm/src/dnsmasq/hosts are sumlinked to each other
  • Edit /cscf-adm/src/dnsmasq/hosts/asimov/dnsmasq.common
    • This defines subnets and host/mac IP assignments
  • Edit /etc/netplan/00-installer-config.yaml
    • define ALL networks statically
  • Disable systemd-resolved service
    • systemctl stop systemd-resolved
    • systemctl disable systemd-resolved
  • Make sure /etc/default/grub does not have bios interface names option enabled
  • Edit /cscf-adm/src/hosts/asimv/common_hosts
    • define interface names and roles
  • Run /cscf-adm/src/install_first
    • This installes required packages
  • Run make all
    • runs install scripts
      • dnsmasq, samba, nfs setup sccf-adm accounts
    • runs update scripts
      • download pxe live images etc
    • installs NAT firewall

Setup Updates

TODO move asimov tools example into generic example
  • Run: make copy_scripts
  • Run make docs
    • Creates the TWIKI and HTML documenation from sources places them in:
      • /cscf-adm/src/twiki and /cscf-adm/src/html

Main configuration and setup directories

Networking

  • Configuration Files
  • Note: cscf-adm/src/hosts and /cscf-adm/src/dnsmasq/hosts are sumlinked to each other
  • /cscf-adm/src/hosts/asimov/common_hosts defines interfaces and roles (ie is the interface to a NAT network)
    • /etc/netplan/interfaces - system network configuration
    • The setup scripts assume the network setting exist statically in order to work
    • /cscf-adm/src/dnsmasq/Makefile
    • /cscf-adm/src/dnsmasq/hosts/asimov/dnsmasq.common
    • /cscf-adm/src/hosts/asimov/common_hosts defines interfaces and roles (ie is the interface to a NAT network)
    • /etc/hostname
    • /etc/hosts
    • /etc/resolv.conf

Asimov Setup and Installation folders

  • /cscf-adm/src
    • This contains all of the tools used to do the initial setup and configuration of asimov
  • /cscf-adm/src - program sources
  • /cscf-adm/src/dnsmasq - DNSMASQ / TFTPBOOT /DNS serices and configuration
  • /cscf-adm/src/pxe - PXE boot files - a minimal working PXE tree with boot images
  • /cscf-adm/src/hosts - host network configuration - defines interfaces used by all scripts*
  • /cscf-adm/src/syslinux - Syslinux sources - used for PXE booting
  • /cscf-adm/src/cluster - Cluster scripts
  • /cscf-adm/src/twiki - Twiki documents - autogenerated
  • /cscf-adm/src/html - HTML documents - autogenerated

DNSMASQ /cscf-adm/src/dnsmasq

  • Configuration Files
    • /cscf-adm/src/dnsmasq - see DNSMASQ
  • dnsmasq is a single package that provides PXE BOOT, DNS, DHCP services

Makefile

  • make is the only file run by and admin to update asimovs dnsmasq settings
  • compiles mkhosts.c
  • runs install_dnsmasq
  • Note: make can be run at ANY time to make sure all files are up to date

install_dnsmasq

  • Only called from make ( ie. Makefile ) to install and configure dnsmasq using files defined in the following sections
  • Stops nscd and dnsmasq
  • updates /etc/resolv.conf using resolv.template files
  • updates /etc/dnsmasq.hosts usings hsosts.template
  • creates /etc/hosts , /etc/resolv.conf and /etc/dnsmasq.hosts
    • Updates /etc/dnsmasq.conf to include /etc/dnsmasq.hosts
  • creates /etc/Networkmanager/dispatcher.d/00-dnsmaq trigger script to rewrite /etc/resolve.conf in case Network Manager is installed
    • This prevents other programs from messing up /etc/resolv.conf
  • starts nscd and dnsmasq

DNSMASQ Config files

dnsmasq.common

  • asimov specific configuration for dnsmasq
  • Put all IP,MAC address and interface information for the cluster here

DNSMASQ Template Files

  • * These files are preprocessed and added to the top of the automatically generated /etc/dnsmasq.hosts file
    • dnsmasq/hosts/uw/resolvd.template
      • default DNSMASQ resolve.conf template
      • Default external DNS servers - should be moved into common_host
    • dnsmasq/hosts/uw/hosts.template
      • default DNSMASQ hosts.conf template

DNSMASQ Compiled files

  • To recreate these files:
    • cd /cscf-adm/src/dnsmasq
    • make

/etc/hosts

  • Create from mkhosts and install_dnsmasq using dnsmasq.common and hosts.template

/etc/resolv.conf

  • Create from mkhosts and install_dnsmasq using resolv.template

/etc/dnsmasq.hosts

  • Create from mkhosts and install_dnsmasq using dnsmasq template files

dnsmasq.compiled

  • The top level include for dnsmasq created by the make install process
  • includes preprocessed dnsmasq.template files
  • includes dnsmasq.common

DNSMASQ mkhosts and mkhosts.c

  • preprocessor program that reads
    • dnsmasq.compiled and hosts.template
    • Writes /etc/dnsmasq.hosts - a file included from the otherwise totally blank /etc/dnsmasq.conf file
    • Write /etc/hosts
    • Creates DHCP entries, DNS records - both forward and reverse lookups for local networks

mkhosts Ducumenation

  • What: mkhosts.c a preprocessor for dnsmasq configuration files
  • The preprocessor handles creating reverse dns records and settings from
  • a simpilfied syntax
  • Syntax:
  • ttl= time
  • time is a ttl as per the dnsmasq man pages
  • Example: ttl=1440m - set the default ttl to 1440 minutes until the next ttl keyword
  • * subnet= subnet specify the subnet
  • subnet is a subnet specification - LIMITATIONS mkhosts uses hard coded /24 network - first 24 bits
  • Example: subnet=192.168.1 - this defines the subnet the same as 192.168.1.0 .. 192.168.1.255
  • ip,*mac*,*cname* [,*cname*]...
  • ip is the last digit of the subnet only
  • mac is the MAC address of the interface you want to assign the address to
  • cname a common separated list of cnames
  • Example: 101,00:25:90:29:eb:ec,m160-1-local-comm,m160-1
  • * Creates
  •    *     dhcp-host=192.168.2.101,00:25:90:29:eb:ec,m160-1-local-comm,1440m
       *     ptr-record=101.2.168.192.in-addr.arpa.,"m160-1-local-comm"
       *     address=/m160-1-local-comm/192.168.2.101
       *     cname=m160-1,m160-1-local-comm
       *     
  • prefix= We can redefine dhcp name prefix for reverse lookups
  • iface= just puts a comment in the output file
  • tag= defind tags to be appened to dhcp-host
  • pxelinux= Define the pxelinux subnet - hosts under this section can get a private boot file
  • Each mac address will simlink to the file pxelinux.cfg/nodes
  • include= process an include file
  • Example:
  • ttl=1440m
  • subnet=192.168.2
  • 1,00:25:90:0e:5b:a2,m160-local-comm,m160-comm,m160
  • 101,00:25:90:29:eb:ec,m160-1-local-comm,m160-1
  • ...

BASH Scripts summary

  • accounts - default cscf-adm and cscf-op encrypted passwords
  • cleanup - Delete files under a directory DIR and children that are older the DAYS old
    • ./cleanup directory days
  • common_functions
    • Common shell scripts used by most scripts under /cscf-adm/src
  • common_vars
    • Common directory locations and definitions
  • common_host
    • compiled into /usr/local/bin from /cscf-adm/src/hosts/common_host
  • cscf-root-pub-key.txt
    • copy of CSCF root public key to be added to /root/.ssh/autorized_keys2 file
  • distroy_and_clone
    • asimov specific scripit added to RIPimage
    • Partitions and formats all drives on a node - mounts /dev/sda1 on /mnt/sda1
    • Runs: rsync -a -x -H --numeric-ids homrod:/asimov.node/ /*
. * dnsmasq.sh - lists dnsmasq leases
  • fetch_clonezilla - grabs lates clonezilla image and installes it in /tftpboot/pxes/clonezilla
    • see: /tftpboot/pxes/pxelinux.cfg/clonezilla_menu
  • fetch_pxe
    • Capture existing PXE code and images for the Image Deployment System
    • Not used on asimov
  • fetch_rip
    • Downloads lates version of RIP
  • fetch_ubuntu_installers
    • Downloads Ubuntu PXE instalers for any iso images under /tftpboot/pxes/rawiso/Ubuntu
    • Updates /tftpboot/pxes/ubuntu-installer/menu.conf called from master pxelinux menu
  • fetch_ubuntu_releases
    • Downloads ubuntu iso images to /tftpboot/pxes/rawiso/Ubuntu
    • Example: ./fetch_ubuntu_releases 12.04 20.04 beta*
  • firewall * NAT firewall service for system
  • fixhost
    • change hostname and ssh keys for a host - update postfix
  • fixperms
    • Update the permissions on files under a directory
    • Only update those files that have them wrong so that backups do not update files needlessly
  • flush_cache
    • This script will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
  • format_disks
    • Partition and Format disks on a asimov node to prepare for imaging
  • grub_fix
    • Updates /etc/default/grub, purges then reinstalls grub
  • install_admin_users
    • Add local Administrative and Samba users defined in $ADM_USERS - see common_host
  • install_dell_utils
    • Install Dell OpenManage Ubuntu Repository - not used on asimov
  • install-networker
    • Install Legato Networker for CSCF backup services
  • install_packages
    • Install common Ubuntu packages required for the Image Deployment System
  • install_pxe
    • Install the PXE code and images for the Image Deployment System
    • We only install install the files once from the pxe folder
    • We should consider merging updates FROM the pxe folder to the pxe folder or the reverse
    • Correctly we use fetch_pxe (this excludes files that can be regenerated)
    • make fetch_pxe will do this
  • install_samba
    • setup cscf-adm and cscf-op local user
      • Prompts to create an iinitial samba password for each account
  • install_syslinux
    • Install and compile syslinux (the default Ubuntu version is out of date)
    • Installs files in /tftpboot/pxes/syslinux
  • install_ubuntu_scripts
    • not used on asimov
  • IPMIview
    • Supermicro IPMI utility wrapper
    • Console access and IPMI settings
  • lc.c and lc
    • UofW list catalog program
  • list_samba_users
    • List current samba users
  • Makefile
    • Master make file calls all install and update scripts
  • mntpart
    • used to chroot mount a partition - used by recovery tools like RIP
  • mntprox
    • bind mounts partitions into chrooted environment
  • NODES
    • Defines all of the cluster nodes by name and ILOM name
  • pxe2usb.sh
    • Converts asimov PXE boot enviornment into standalone USB KEY
  • pxe_liveboot_nfs
    • Service to mount Live Boot images
  • readiso
    • Read an CD or DVD and create an ISO image
  • sh2twiki and sh2twiki.c
    • Creates TWIKI and HTML documenation form simplified Markup Language
  • syslinux-6.02.tar.gz
    • Syslinux source
  • testfree and testfree.c
    • Used to verfify a partition is mounted and has enough free space
  • test_vars
  • update_fstab
    • Updates /etc/fstab on nodes to include NFS home directories
  • update_rip
    • Apply local costomizations to local RIP images
  • updates
    • Add additional repositories, NTP and SMTP configuration, created symlinks need for CS AD
    • Used on clean system after first install
  • wakeup uses wake on lan feature to wakeup any host listed in /etc/dnsmaqsq.hosts

firewall script provides firewall and NAT services for a private network

  • Notes:
    • If you need to add or limit existing service rules
    • You should only have to make changed to the functions:
    • local, and less likely; mail_firewall

check()

  • What:
    • Must have a NAT defined or die
  • Return:
    • exit 1 if no firewall is defined

init_firewall()

  • What:
    • remove all firewall rules and kernel modules
    • sets state to ACCEPT or DROP
  • Arguments:
    • allow - or - drop
    • allow = ACCEPT all traffic
    • drop = DROP all traffic

list()

  • What:
    • List network interfaces

hosts_allow()

  • What:
    • Modifies /etc/hosts.allow adding the private networks

local_rules()

  • What:
    • Local default firewall rules for UW
  • Notes:
    • Customize these to suit your needs

main_firewall()

  • What:
    • Main firewall code - site independent firewall code
  • Notes:
    • Calls local_rules

add_ssh_host()

  • What:
    • Open an inbound ssh rule for the specified external host
  • Arguments:
    • host
  • Returns:
    • Fatal if host not specified

del_ssh_host()

  • What:
    • Close an inbound ssh rule for the specified external host
  • Arguments:
    • host
  • Returns:
    • Fatal if host not specified

checkhost()

  • What:
    • Check if a host has a firewall rule
  • Arguments:
    • host
  • Returns:
    • Display iptables result

openhost()

  • What:
    • Open an inbound rule for the specified external host
  • Arguments:
    • host
  • Returns:
    • Fatal if host not specified

blockhost()

  • What:
    • CLose an inbound rule for the specified external host
  • Arguments:
    • host
  • Returns:
    • Fatal if host not specified

install_service()

  • What:
    • Install firewall script as a service
  • Notes:
    • Sets the firewall state to allow all
  • Returns:
    • Displays status

remove_service()

  • What:
    • Remove firewall service
  • Notes:
    • Sets the firewall state to allow all
  • Returns:
    • Displays status

Main Code Section:

  • Arguments:
    • start - start firewall
    • stop - stop firewall
    • restart - restart firewall
    • status - firewall status display
    • add_ssh_host - add inbound allow ssh rule for host
    • del_ssh_host - del inbound allow ssh rule for host
    • openhost - add inbound allow open rule for host
    • blockhost - add inbound block rule for host
    • checkhost - check host rule
    • install - install this script as a service
    • uninstall

C Programs

  • basestr.c
    • :Match substring
    • Returns: return( strncmp(argv[1],argv[2],len) == 0 ? 0 : 1);
  • fixname.c
    • Escape strings so they can be safely passed to a shell
    • Names may be quoted with ''s
  • lc.c
    • University of Waterloo List Catalogue command
  • sh2twiki.c
    • Convert BASH and C markup to HTML or TWIKI
  • testfree.c
    • Usage: testfree device -v -f threshold(in Megabytes)

Automatic Documentation

  • make docs will automatically extract BASH and C markups
    • Creates TWIKI or HTML Documentation from Markup
  • Features
    • Uses half the markup required the doxygen
    • Understands SHELL Variables and Functions

Markup Rules

  • Heading: Markup syntax notes
  • Comments:
    • Comments start with // or #
    • Examples
    • # this is a comment
    • // this is a comment
  • Tokens:
    • Tokens are any word following a comment that ends with ':'
    • Examples
    • # Notes:
    • // Arguments: userid result
    • Notes: the token and any following comments are part of the token
  • Reserved:
    • The following tokens have special meaning
    • Title: Creates a title for the document.
    • This keyword and any unbroken chain of comments and unreserved
    • tokens are part of the title and will be listed in the index file.
    • Author: Document Author, also Authour works
    • Heading: Create a heading
  • Variables:
    • The following code objects have special meaning
    • VAR=value Variable assignments
    • This variable if following a token will become a comment
    • # ======== This a a section break
    • // ======= This is a section break
  • Blank_Lines:
    • Blank Comments lines end a token or grouping
    • Examples:
    • //
    • #
    • C enum are processed
    • enum {
    • value1,
    • value2
    • };
  • Functions: are processed along with the contents by counting brace levels
  • Note: ANY unbroken preceding group of tokens/comments are part of the
    • function documentation.
    • Functions names in the documentation are listed BEFORE the preceding tokens
  • Examples:
    • // This is a custom printf command
    • // Arguments: format string, variable number of arguments
    • // Returns: void
    • void myprintf(char *str, ...)
    • {
    • printf code goes here ...
    • }
  • Special_Keywords:
  • Processed keywords that create documentation sections
    • pause message
    • pause_yes message
    • pause_no message
    • must be followed by if,then,else,fo - optionly end with a section
    • Notes:
    • This is used in the ASIMOV updates script to create TWIKI documentation for
    • That script. The compatibility is included here

PXE

  • PXE BOOT /tftpboot/pxes
    • Config: /tftpboot/pxes/pxelinux.cfg/default
    • ISO boot images: /tftpboot/pxes/iso

/tftpboot/pxes/pxelinux.cfg/default

PXE / TFTPBOOT files and descriptions

/tftpboot/pxes

  • /tftpboot/pxes - PXE root directory Add any boot images under this directory - see below for specific directories that are already defined

/tftpboot/pxes/pxelinux.0

  • PXE bootstrap file from syslinux - all systems boot this file first

/tftpboot/pxes/pxelinux.cfg/

  • Top level PXE menu files go here - defined in binary file pxelinux.0

/tftpboot/pxelinux.cfg/default
  • Top level PXE boot menu

/tftpboot/pxelinux.cfg/default.conf
  • default menu include used by al menus
    • defines vesa display mode and resolution, defaulyt timeouts and prompts
    • you should not ever have to change this

/tftpboot/pxelinux.cfg/UW.png
  • default graphic background for menus

/tftpboot/pxelinux.cfg/clonezilla_menu
  • Clonezilla PXE boot menu
    • Primary imaging tool

/tftpboot/pxelinux.cfg/acronis_menu
  • Acronis imaging tools menu

/tftpboot/pxelinux.cfg/rip_menu
  • Recover is Possible RIP boot images
  • there are rip_menuNN.N menus for each version
    • We used this tool to image the cluster - to be replaced by clonezilla

/tftpboot/pxelinux.cfg/dos_menu
  • not used on asimov

/tftpboot/pxelinux.cfg/diag_menu
  • not used on asimov

/tftpboot/pxelinux.cfg/live_menu
  • Live boot images of Ubuntu

/tftpboot/pxes/syslinux

  • Contains syslinux ustilities used by the menu system

/tftpboot/pxes/utils/

  • used by dos_menu and diag_menu - not used on asimov See pxelinux.cfg/default

/tftpboot/pxes/RIP/

  • Recovery is Possible - locally updated version of RIP PXE images

/tftpboot/pxes/avast

  • Avast antivirus components - added to RIP images

/tftpboot/pxes/bin

  • bin files added to RIP images

/tftpboot/pxes/clonezilla

  • Colonezilla PXE boot images
  • bin files added to RIP images

/tftpboot/pxes/images

  • General purpose images folder free to use for deplyment images

/tftpboot/pxes/iso

  • Ubuntu live iso shares used for PXE/NFS live booting

/tftpboot/pxes/pxelinux.cfg/ghost.src

  • Linux Ghost code with additions to work with RIP

/tftpboot/pxes/ununtu-installers

  • Ubuntu network installers

ipmitool networking

  • See: ClusterToolsIPMITOOL ---+++ Live boot images
  • /cscf-adm/src/fetch_ubuntu_releases 20.04 will update all of the latest 20.04 releases
    • Any number of version numbers can be listed - they will all be updated
    • calls pxe_liveboot_nfs service to remount and export new images

PXE Ubuntu Installers

  • /cscf-adm/src/fetch_ubuntu_installers - creates a PXE installer for all liveboot images
  • This is only of use for an install from scratch

Clonezilla

  • /cscf-adm/src/fetch_clonezilla updates to the latest version automatically
    • /tftpboot/pxes/pxelinux.cfg/clonezilla is the PXE boot menu - does not have to change with most updates.
    • We have the latest version (as of 10 April 2020) of clonezilla on asimov
  • Web site: http://clonezilla.org/
  • Screen shots
  • Features
    • Can image and restore both Windows and Linux systems
    • Recover/backup
    • PXE bootable
    • Multicast
    • Supports a wide range of file systems
    • Backup only parts of the disk that are used
  • Limitations
    • Cannot restore to smaller disks or partitions

Clonezilla Imaging Notes

  • PXEBOOT the node
  • Pick Clonezilla_menu_nfs
  • Pick Live to create and image
    • After creating a new image run the script /cscf-adm/src/make_clonezilla this will rewrite the PXE menu
    • Images are saved in /coregroup/images
  • Pick image to retore an image - WARNING this will REPARTITION AND FORMAT a system WITHOUT ASKING ANY QUESTIONS!!!!!

PXE Server

  • DNSMASQ Configuration files /cscf-adm/src/dnsmasq - See DNSMASQ
  • Home directory /tftpboot/pxes is the PXE root - see PXEBootFilesExample
  • Firewall NAT MASQ private network - see CF/NatMasqFirewallExample

Firewall

  • Directory /etc/init.d/firewall
       Usage: firewall {start|stop|restart|status|install|uninstall}
       Usage: firewall {add_ssh_host host|del_ssh_host host}
       Usage: firewall {openhost host|blockhost host}
       Usage: firewall {checkhost host}
       

Adding PXE image to the CS Application Server

Notes Outlines how to setup a PXE boot environment for a new system

Installing PXE boot image

/tftpboot/pxes

/tftpboot/pxes/pxelinux.cfg/clonezilla_menu_nfs

  • Automatically created using /cscf-adm/src/make_clonezilla*

PXE related Applications and Documents

LXD - Linux Containers

Install and initialization

  • sudo snap install lxd
  • sudo lxd init
  • create zfs dataset for lxd
    • zfs create asimov-pool/lxd

SWAG instance

  • Create ZFS dataset for swag
    • zfs create asimov-pool/swag
    • zfs set sharenfs="rw=@129.97.7.235/24" asimov-pool/swag
    • zfs set mountpoint=/swag asimov-pool/swag
  • Create 20.04 instance
    • lxc launch images:ubuntu/20.04 swag-mongodb
  • Create network profile for swag instance
    • lxc profile create proxy-mongodb
    • lxc profile device add proxy-mongodb hostport27017 proxy connect="tcp:127.0.0.1:27017" listen="tcp:0.0.0.0:27017"
    • lxc profile show proxy-mongodb
    • lxc profile add swag-mongodb proxy-mongodb
  • Open a shell in the container
    • lxc exec swag-mongodb -- /bin/bash

  • MongoDB
    • Config file at /etc/mongod.conf
    • start/stop service via systemctl start mongod

A username of 'cscf-adm' and 2020 password has been created
If you have mongosh installed on your system you can connect like so:

mongosh --host asimov.cscf.uwaterloo.ca

test> use admin
switched to db admin
admin> db.auth('cscf-adm', passwordPrompt())
Enter password
********{ ok: 1 }
admin> show databases
admin   180.00 KiB
config   60.00 KiB
local    72.00 KiB
admin>

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatext acronis_menu r1 manage 0.7 K 2011-12-09 - 13:07 MikeGore  
Unknown file formatext add_ghost r1 manage 6.2 K 2011-12-09 - 13:11 MikeGore  
Unknown file formatext default r1 manage 2.3 K 2011-12-09 - 13:07 MikeGore  
Unknown file formatext dos_menu r1 manage 0.5 K 2011-12-09 - 13:08 MikeGore  
Unknown file formatconf menu.conf r1 manage 3.7 K 2011-12-09 - 13:13 MikeGore  
Unknown file formatext mk_ubuntu r1 manage 2.8 K 2011-12-09 - 13:11 MikeGore  
Unknown file formatext rip_menu r1 manage 0.5 K 2011-12-09 - 13:08 MikeGore  
Edit | Attach | Watch | Print version | History: r57 < r56 < r55 < r54 < r53 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r57 - 2022-08-29 - TomCauduro
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback