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
Modifying service run levels
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).
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.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
- 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
- IPMIview
- Supermicro IPMI utility wrapper
- Console access and IPMI settings
- lc.c and lc
- UofW list catalog program
- list_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
- 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()
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:
add_ssh_host()
- What:
- Open an inbound ssh rule for the specified external host
- Arguments:
- Returns:
- Fatal if host not specified
del_ssh_host()
- What:
- Close an inbound ssh rule for the specified external host
- Arguments:
- Returns:
- Fatal if host not specified
checkhost()
- What:
- Check if a host has a firewall rule
- Arguments:
- Returns:
openhost()
- What:
- Open an inbound rule for the specified external host
- Arguments:
- Returns:
- Fatal if host not specified
blockhost()
- What:
- CLose an inbound rule for the specified external host
- Arguments:
- Returns:
- Fatal if host not specified
install_service()
- What:
- Install firewall script as a service
- Notes:
- Sets the firewall state to allow all
- Returns:
remove_service()
- What:
- Notes:
- Sets the firewall state to allow all
- Returns:
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
/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
/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
/tftpboot/pxelinux.cfg/diag_menu
/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
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>