TWiki
>
CF Web
>
Linux
>
ClusterTools
>
ClusterToolsCommon
(revision 1)
Edit
Attach
--
MikeGore
- 2015-08-25
common shell scripts used by
ClusterTools
common_functions
common_functions
Common SHELL functions used by image deployment system
common_vars
common_vars
Common SHELL variables specific to most systems
common_host
common_host
Common HOST specific variables used for the Image Deployment System
NODES
common shell scripts used by ClusterTools
File: common_functions, Tue Aug 25 10:58:50 2015
Start of AUTOMATICALLY GENERATED section for common_functions
Author: Mike Gore
Title: Common SHELL functions used by image deployment system
root test functions
need_root()
argument processing
check_args()
File handeling Functions
script_name()
Functions that log/echo a message
sep()
log()
error()
warn()
fatal()
Functions that turn logging on or off
logging()
logit()
Functions that run a command and output a message
try()
run()
echo_run()
run_echo()
User prompt functions
prompt_input()
pause_no()
pause_yes()
pause ()
uprompt()
hostname functions
hostbase()
ip_address()
Directory related commands
absolute()
check_cd()
expect()
Service Related FUnctions
update_loop()
install_service()
remove_service()
Ubuntu Package Functions
update_list()
have_pkg()
have_package_on_repo()
install_packages()
check_packages()
update_packages()
add_repo()
string processing
string_contains_element()
escstr()
GIT repository functions
need_update()
update_git()
Environment processing functions
edit_environment()
update_path()
Web downloading functions
web_get()
web_get_chown()
wget_as()
File Processing functions
extract()
backup()
sed_file ()
compare_ge()
compare_le()
compare_gt()
compare_lt()
compare_eq()
compare_ne()
Email notification functions
notify()
SSH Control Master tools
cm_start()
cm_stop()
User Group Functions
get_group()
get_groups()
User Functions
get_user()
list_users()
list_non_user_groups()
check_user()
want_user()
echo_encrypted_passwd()
backup_passwd()
make_admin()
add_admin_user()
Samba functions
list_samba_users()
check_samba_user()
want_samba_user()
add_samba_user()
add_sshkey()
remove_hostkey()
make_sshpub()
update_ssh()
make_users()
mk_user_dirs()
bind_mount()
update_scripts()
Network Functions
get_nets()
get_net()
random_passwd()
myuwdir()
common_functions: End of AUTOMATICALLY GENERATED section
File: common_vars, Wed Aug 5 11:49:05 2015
Start of AUTOMATICALLY GENERATED section for common_vars
Author: Mike Gore
Title: Common SHELL variables specific to most systems
get_extif()
get_intif()
get_int2if()
get_int3if()
set_samba_nets()
dump_vars()
common_vars: End of AUTOMATICALLY GENERATED section
File: common_host, Tue Nov 11 10:14:09 2014
Start of AUTOMATICALLY GENERATED section for common_host
Author: Mike Gore
Title: Common HOST specific variables used for the Image Deployment System
External Network Interface
Primary Network Interface
Secondary Private Network Interface
Third Private Network Interface
Firewall defines
Samba networks will allways include all private and localhost
/usr/local/bin/common_host: End of AUTOMATICALLY GENERATED section
File: common_functions, Tue Aug 25 10:58:50 2015
Start of AUTOMATICALLY GENERATED section for common_functions
*DO NOT EDIT THIS SECTION MANUALLY!
Author: Mike Gore
Title: Common SHELL functions used by image deployment system
ids_common_functions
common_functions - twiki link for more information
Date:
*10 APr 2015 *
Notes:
Assumed:
Normally called by "common_vars" first
What:
A collection of shell utilities we use everywhere
Part of three file group: common_vars common_host common_functions
Note:
test to make sure this script is not called recursively
COMMON_FUNCIONS="TRUE"
Note:
Groups that an administrator is part of
ADMIN_GROUPS="adm cdrom sudo dip plugdev fuse lpadmin sambashare staff_cscf"
root test functions
need_root()
What:
Make sure we are root or die
Arguments:
None
Returns:
Exit 1 on fail
Example:
need_root
What:
set enviornment, We assume common_vars and common_functions is copied there
export PATH=$PATH:/sbin:/usr/sbin:/usr/local/bin:
What:
List of network interfaces
export NETS=`ifconfig -a | grep -e "^[a-z0-9][a-z0-9]*" | cut -d' ' -f1 | sed -e "/^lo$/d"`
What:
Version number of our Ubuntu Release
RELEASENO=`lsb_release -rs 2>/dev/null`
What:
Day of Week
DAYWEEK=`date +%w`
What:
Day of Month
DAYMON=`date +%d`
argument processing
check_args()
What:
Arguments Processing
Arguments:
-d = debug
-l = logging
-y = yes for all default yes prompting
-n = no for all default no prompting
Returns:
nothing
Notes:
-d sets DEBUG=TRUE
-l sets LOGGING=ON
-y sets ANSWER=Y and DEBUG=TRUE
-n sets ANSWER=N and DEBUG=TRUE
Example:
check_args -d -l -y
File handeling Functions
script_name()
What:
*Echo the the absolute path of this script *
Example:
script_name
Functions that log/echo a message
sep()
What:
echo a separator using "======"
Example:
sep
sep
log()
What:
*Echo arguments *
Arguments:
$*
Example:
log "this is a test"
error()
What:
Echo ERROR: and arguments
Arguments:
$*
Example:
error "user made a mistake"
warn()
What:
Echo WARN: and arguments
Arguments:
$*
Example:
warn "square peg in round hole alert"
fatal()
What:
Echo ERROR: and arguments
Arguments:
$*
Returns:
Exit 1
Example:
fatal "we failed"
Functions that turn logging on or off
logging()
What:
Turn LOGGING on or off
Arguments:
OFF or ON
Example:
logging ON
logit()
What:
echo arguments - only if LOGGING or DEBUG are set
Arguments:
$@
Example:
logit "this is a test"
Functions that run a command and output a message
try()
What:
run a command and aguments, die on error, log if LOGGING is set
Arguments:
$*
Example
try stat /tmp/logfile
run()
What:
run a command and aguments
logs commend but only it if LOGGING is set
Arguments:
$*
Example:
run rsync -a project/
user@host
:project/
echo_run()
What:
run a command and aguments, log always
Arguments:
$@
Example:
run rsync -a project/
user@host
:project/
run_echo()
What:
run a command and aguments, log always
Arguments:
$@
Notes:
Only used for older scripts
Example:
run rsync -a project/
user@host
:project/
User prompt functions
prompt_input()
What:
Prompt for input with a message
Arguments:
message
Returns:
TRUE if Y/y or or FALSE if N/n
Notes:
Diplay usage message if no arguments are present and returns FALSE
Example:
if prompt_input "Continue y/n [n]?"
then
echo "yes"
else"
echo "no"
fi
pause_no()
What:
Pause with default NO
Returns:
TRUE or FALSE, true = Y, false = N
Notes:
if ANSWER=N then always returns FALSE
Example:
pause_no Remove Network Manager Completely - Answer NO on laptops
if [ $? -eq 0 ]
then
apt-get -y purge network-manager-gnome network-manager-pptp network-mana
ger-pptp-gnome
else
echo skipping
fi
pause_yes()
What:
Pause with default YES
Returns:
TRUE or FALSE, true = Y, false = N
Notes:
if ANSWER=Y then always returns TRUE
Example:
# See
https://help.ubuntu.com/community/AutomaticSecurityUpdates
pause_yes Allow unattended securitry updates
if [ $? -eq 1 ]
then
# Instal it
sudo apt-get install unattended-upgrades
# Enable it
dpkg-reconfigure -plow unattended-upgrades --default-priority
fi
pause ()
What:
Echo arguments and if DEBUG=TRUE wait for Return/Enter key
Arguments:
all argumnts are valid
Returns:
nothing
Example:
DEBUG=TRUE
pause "We just finished installing the software"
uprompt()
What:
Prompt for input with message and default value if any
Arguments:
[-s] message default
Returns:
TRUE with string in USER_PROMPT
FALSE if default is used
EXIT 1 if arguments unexpected
Notes:
-s will supress echo using '*' characters instead
Example:
uprompt "Enter Cost" 100
uprompt -s "Enter Password" "xyzzy"
hostname functions
hostbase()
What:
echo hostname without any domain parts
ip_address()
Arguments:
hostname
Returns:
address or error message
What:
echo IP address of given host
Directory related commands
absolute()
What:
Display the absolute path of a file - uses echo
Arguments:
path
Notes:
if argument is -bash then return absolute of current directory
Example:
absolute ~/file.txt
check_cd()
What:
Change directory and verify we actually end up there
Argument:
directory
Notes:
Useful if verifying permission of traget directory
Example:
check_cd /tmp/projects
expect()
What:
Expect a file/object or exit fatal error
Argument:
file/object to check
Returns:
EXIT 1 on usage error
Notes:
Display the message "Found File/object name"
Example:
expect /var/log/messages
Service Related FUnctions
update_loop()
What:
Update the maximum number of loop devices on this system
Arguments:
number of loop devices
Returns:
EXIT 1 on usage error
Example:
update_loop 512
install_service()
What:
Install a service into the /etc/init.d , etc/rc?.d/ directories
Arguments:
service_name start_level stop_level
Notes:
service name is expected to be in the current directory
start_level is the numeric start value: ex 80
stop_level is the numeric value: ex 30
The larger the number the later the task gets started or stopped
Returns:
EXIT 1 if arguments are missing
Example:
install_service firewall 80 30
remove_service()
What:
Remove a service
Arguments:
service_name
Returns:
EXIT 1 is arguments are missing
Example:
remove_service firewall
Ubuntu Package Functions
update_list()
What:
Update apt/dpkg package list from repositories
Arguments:
none
Example:
update_list
have_pkg()
What:
Do we have a package installed ?
Argument:
package name
Returns:
TRUE or FALSE
Notes:
Package tested with dpkg -s command
May miss manually installed packages with dpkg -i
Example:
if have_pkg apache2
then
echo we have apache 2 - yahoo...
else
echo we do not have the package apache2
fi
have_package_on_repo()
What:
Check if a package exists on the repository
Arguments:
package_name
Returns:
TRUE if package is installed, otherwise FALSE
Example:
if have_package_on_repo apache2
then
update_package apache2
else
error apache2 is not found on the repositories
fi
install_packages()
What:
Install packages filering list tested against repository
Internal function Should only be called from update_packages
Arguments:
package list
Example:
install_packages samba cups
check_packages()
What:
Do we have all of these packages installed ?
Arguments:
one or more packages
Returns:
TRUE if all are installed - or FALSE if any are not
Notes:
displays missing packages
Example:
if check_packages apache2 samba dnsmasq
then
echo we have them all
else
echo we are missing packages
fi
update_packages()
What:
Update/Install packages - if not already installed
Arguments:
Package List
Notes:
Installs any missing packages
Example:
update_packages apache2 samba dnsmasq
add_repo()
What:
Add ubuntu repository
Arguments:
REPOSITORY
Notes:
You must ommit the :ppa
Uses the add-apt-repository comment - "ppa:REPOSITORY"
Example:
add_repo richarvey/nodejs
string processing
string_contains_element()
What:
Check if a string contains any words in a list - caseless test
Arguments:
"string to examine" "list of words to test"
Returns:
TRUE or FALSE
Example:
if string_contains_element" "the sky is blue" "red yellow blue"
then
` echo yup
else
echo nope
fi
escstr()
What:
Escape a string so it can be used in sed
Notes:
we escape special meta characters so sed will process them correctly
Example:
sed -e -i "s/scspcxxx/$(escstr HOSTNAME)/" /etc/hostname
GIT repository functions
need_update()
What:
Check if a directory contai8ns any files NEWER then a reference file/object
object is a file or directory
Notes:
recursive checks subdirectories
ignores any GIT substructure
Arguments:
directory reference_object
Returns:
TRUE or FALSE
Example:
if need_update /share/git/project /share/git/project/timestamed_file
then
echo files have been updated
else
echo nothing changed
fi
update_git()
What:
Download/Update local GIT repositories from remote source
Arguments:
GIT_URL PROJECT ...
Notes:
We have two modes
1) We have a URL and muiltiple subrepositories
we use: git clone URL/repository repository
2) We have a URL and ONE repository
we use: git clone URL repository
Example:
update_git git_url_base project1 project2 ..."
Environment processing functions
edit_environment()
What:
Edit PATH variable and /etc/environment file adding new search path
Notes:
*This will remove any occurence first, *
Then adds the argument the first setting in PATH
Arguments:
user_path
Example:
exit_environment "/usr/local/projects/bin"
update_path()
What:
Edit PATH enviroment adding new search path
Arguments:
PATH
Notes:
Removes any occurence of PATH then adds it first
Example:
update_path "/usr/local/projects/bin"
Web downloading functions
web_get()
What:
Get file from web site and place in target folder
Arguments:
URL FOLDER
Notes:
* If the file exists then get the file only if it is newer*
Returns:
FALSE if file is missing or empty, EXIT 1 if argument is missing
Example:
web_get "http://sourceforge.net/projects/clonezilla/files/latest/download?source=files" "$RAWISO/linux_utils/Clonezilla"
web_get_chown()
What:
Get file from the web and change ownership
Arguments:
URL DIR USERID GROUP
URL: URL of file
DIR: Output directory
USERID:
username
GROUP:
* groupname*
Returns:
FALSE if file is missing or empty, EXIT 1 if argument is missing
Example:
web_get_chown "$MIRROR/$REL/$f" "$RAWISO/Ubuntu/"
wget_as()
What:
Get the FILE from the download site and save as ARGUMENT
Arguments:
URL FILE
Returns:
FALSE if file is missing or empty, EXIT 1 if argument is missing
Notes:
* time stamp is NOT perserved*
web_get "http://sourceforge.net/projects/clonezilla/files/latest/download?source=files" "$RAWISO/linux_utils/Clonezilla"
File Processing functions
extract()
What:
extract a tar file for only certain file types
Arguments:
.tgz .tar.bz2 .tar.gz .tar
Returns:
EXIT 1 if file is missing
FIXME:
should really be removed to specific script that needs it
backup()
What:
Backup a file with .date suffix using date +%d%b%Y-
M
Arguments:
file
Returns:
TRUE or FALSE on success or fail or missing arguments
Example:
backup /etc/passwd
sed_file ()
What:
Edit a file with sed - passing a sed string as an argument
Arguments:
sed_commend file_name
Notes:
sed_command is a string passed to sed
Warning:
meta characters not protected - use escstr function
compare_ge()
What:
compare numeric values of two arguments
Arguments:
arg1 arg2
Returns:
TRUE if arg1 >= arg2
Example:
if compare_ge 2 1
then
echo yes
fi
compare_le()
What:
compare numeric values of two arguments
Arguments:
arg1 arg2
Returns:
TRUE if arg1 <= arg2
Example:
if compare_le 2 1
then
echo no
fi
compare_gt()
What:
compare numeric values of two arguments
Arguments:
arg1 arg2
Returns:
TRUE if arg1 > arg2
Example:
if compare_gt 2 1
then
echo yes
fi
compare_lt()
What:
compare numeric values of two arguments
Arguments:
arg1 arg2
Returns:
TRUE if arg1 < arg2
Example:
if compare_lt 2 1
then
echo no
fi
compare_eq()
What:
compare numeric values of two arguments
Arguments:
arg1 arg2
Returns:
TRUE if arg1 = arg2
Example:
if compare_eq 2 1
then
echo no
fi
compare_ne()
What:
compare numeric values of two arguments
Arguments:
arg1 arg2
Returns:
TRUE if arg1 = arg2
Example:
if compare_ne 2 1
then
echo yes
fi
Email notification functions
notify()
What:
Email a file to a user
Arguments:
SUBJECT FILE -u userid
Notes:
FILE is a file containing the message
Example:
notify "warning message" /tmp/123.txt -u
userid@host
SSH
Control Master tools
cm_start()
What:
SSH Control Master tools
Arguments:
hostname userid
Usage:
cm_start host user
Sets:
CM_HOST=$1
CM_USER=$2
CM_PATH=socket path for COntrol Master Connection
CM_PATH_E=Escaped socket path for COntrol Master Connection
Notes:
Close the control master on exit using a shell trap
See cm_stop for an example
Based on work done by Richard Hansen in
StackOverflow
article
http:
/stackoverflow.com/questions/6447123
Look for Richard Hansen
Examples:
cm_start $PXEHOST $PXEUSER
try rsync -e "ssh -S ${CM_PATH_E}" -a "$CM_USER@$CM_HOST":/coregroup1/images/ubuntu-scripts .
cm_stop
cm_stop()
What:
Close the control master on exit using a shell trap
See:
cm_start
Resets:
CM_HOST
CM_USER
CM_PATH
CM_PATH_E
User Group Functions
get_group()
What:
get group name of userid from getent group userid
Arguments:
userid
Returns:
GRID=group entry using: getent group
NAME=userid
get_groups()
What:
Echo a list of groups that a user is part of
Arguments:
userid flag
Returns:
echos all of the groups a user is part of
Assumes:
system groups are <= 200 and >= 50000
Notes:
skips system groups if flag is non empty
Returns:
GRPS=group entry using: groups userid
NAME=userid
User Functions
get_user()
What:
Get a list of the GCOS entries from getent passwd,shadow and groups
Arguments:
userid
Returns:
NAME=userid
PUID=uid
PGID=gid
GRID=getent group, group entry
PPASS=encripted password
PHOME=home directory
PSHELL=shell
GRPS=groups user is part of
Example:
get_user cscf-adm
list_users()
What:
Echo a list of users - but not system users
Arguments:
none
Notes:
echos list
Assumes:
system groups are <= 200 and >= 50000
Uses:
get_user
Returns:
USERS=`egrep "^[A-Za-z0-9-]+:" /etc/passwd | cut -d: -f1 | sort -u`
Example:
VAR=`list_users`
# note the back tics
list_non_user_groups()
What:
Echo groups that are not userids omitting system groups
Arguments:
none
Returns:
GS=`egrep '^[A-Za-z0-9-]+:' /etc/group | cut -d: -f1 | sort -u`
Assumes:
system groups are <= 200 and >= 50000
Example:
VAR=`list_non_user_groups`
# note the back tics
check_user()
What:
Does a user exist -limited to non system groups
Uses:
list_users is the filter of valid users
Arguments:
userid
Returns:
TRUE or FALSE
Example:
if check_users userid
then
echo userid exists
fi
want_user()
What:
Does a user exist -limited to non system groups
Uses:
list_users is the filter of valid users
Arguments:
userid
Returns:
TRUE if user exists, EXIT 1 if user does NOT exist
Example:
if check_users userid
then
echo userid exists
fi
echo_encrypted_passwd()
What:
Echo the encrypted password for a user
Or - if the password is NOT set we get the value
From a file called accounts in the current directory
Arguments:
userid
Uses:
get_user
Example:
echo_encrypted_password userid
Notes:
Useful in setting up accounts from a file
Accounts file format: userid:encrypted_passwd
backup_passwd()
What:
Backup password,shadow,group and gshadow files using timestamed backup function
Uses:
backup
Arguments:
none
Example:
backup_passwd
make_admin()
What:
Add a user to all of the admin groups AND add then to the /etc/sudoers file
Returns:
Example:
make_admin cscf-adm
add_admin_user()
What:
Add an admin user to the PXEGROUP
Arguments:
userid home_directory_parent
Notes:
Similar to make_admin - except adds users to PXEGROUP
Adds them to the $ADM_GROUPS
Creates groups $PXEGROUPID and $PXEGROUP first if they do not exist
Example:
add_admin_user csfc-adm /
# Creates /cscf-adm userid adds them to PXEGROUP
Samba functions
list_samba_users()
What:
Echo Samba Users
Arguments:
none
Notes:
* Uses the filtered output of pdbedit -L -v*
Example:
list_samba_users
check_samba_user()
What:
Check if a samba user exists
Arguments:
userid
Returns:
TRUE or FALSE
Example:
if check_samba_user cscf-adm
then
echo yse the are
else
echo no they are not
fi
want_samba_user()
What:
Require that a samba user exists or EXIT 1
Returns:
TRUE or EXIT1 if user is missing
Arguments:
want_samba_users cscf-adm
Example:
if want_samba_users cscf-adm
then
echo have them added already
fi
add_samba_user()
What:
Add a samba user if not already there
Arguments:
userid
Prompts:
passsword - for userid if they do not exist
Notes:
adds the user to the $PXEGROUP
Example:
add_samba_user joeuser
add_sshkey()
What:
Add Public
SSH
key file to users autorized_keys2 file - used mainly for NFS shared home dircetories ina cluster
Arguments:
userid home_directory public_key_file
Assumes:
make_ssh_pub has been called first to create
SSH
key if none yet exists
Returns:
EXIT 1 with message if user or public key is missing
Notes:
make_ssh_pub function will assure they have a pubulic key
Example:
cscf-adm /cscf-adm /cscf-adm/.ssh/id_dsa.pub
remove_hostkey()
Arguments:
home_dir hostname
Returns:
EXIT 1 with message if user or public key is missing
Notes:
make_ssh_pub function will assure they have a pbulic key
make_sshpub()
What:
Make a DSA public key for a user - but only if they do not have one yet
Arguments:
userid
Returns:
EXIT 1 if userid is missing
Example:
make_sshpub cscf-adm
update_ssh()
What:
Create DSA
SSH
Keys for all non system users - but only if they do not have one
Arguments:
none
Notes:
see make_sshpub
make_users()
What:
Create a script that will recreate all non-system local users and groups for this host
Arguments:
[-noids] - removes fixed numeric gid and uid values
Assumes:
local user accounts only - does not list AD users with no local GCOS password entry
Uses:
list_users, list_non_users_groups
FIXME:
We still have to fully check that NOIDS works as intended
Notes:
will backup the passwd,shadow,group and gshadow file
Example:
make_users >create_users.sh
chmod 755 create_users.sh
mk_user_dirs()
What:
Adds all users, reported by list_users, to given directory
This is useful if users have read/write directories in more then one filesystem
Arguments:
directory
Notes:
changes user and group permissions of directory to that of the user
Example:
mk_user_dirs /data
bind_mount()
Notes:
Helpper for chrooting into a mounted filesystem - binds /prc /sys /dev .. etc into it first
Arguments:
subdirectory
What:
Bind the running OS special file systems /proc /sys /dev ... etc
into target folder - that must me formatted as a Linux filesystem
Example:
bind_mount /mnt/sda1
update_scripts()
What:
Copy the systems ubuntu-scripts folder into a target location
Uses:
*$PXEUSER, $PXEHOST, $UBUNTU_SCRIPTS_DIR *
Arguments:
$TARGET
Example:
update_scripts /ubuntu-scripts
Network Functions
get_nets()
What:
Get a list of network interfaces - except lo
Returns:
NETS=list of network interfaces
Example:
get_nets
echo $NETS
get_net()
What:
gets the settings of the specified nwtrok interface
Arguments:
interface
Returns:
NETIF=interface
IP=IP Address
NETIP=IP Address
NETMASK=Netmask
NET=$NETIP/$Netmask
NETSUB=Subnet - last digit of address
Example:
get_net em1
echo "IP:$IP, NETIP:$NETIP, NETMASK:$NETMASK, NETSUP:$NETSUB, NET:$NET"
random_passwd()
What:
iDisplay random 12 character password
Arguments:
none
Usage:
PASSWD=$( random_passwd )
Example:
PASSWD=`random_passwd`
# note back tics
myuwdir()
What:
*Using a UWDIR userid lookup email, full name and office *
Returns:
UWDIR_EMAIL= email address
UWDIR_OFFICE= office location
UWDIR_FULL= full name
Example:
myuwdir magore
echo "email:$UWDIR_EMAIL, OFFICE:$UWDIR_OFFICE, Full Name: $UWDIR_FULL"
common_functions: End of AUTOMATICALLY GENERATED section
File: common_vars, Wed Aug 5 11:49:05 2015
Start of AUTOMATICALLY GENERATED section for common_vars
*DO NOT EDIT THIS SECTION MANUALLY!
Author: Mike Gore
Title: Common SHELL variables specific to most systems
ids_common_vars
common_vars - twiki link for more information
Date:
10 Apr 2015
Notes:
SHELL Variables used for the image deployment system common_shell functions
What:
Defines common directorys and names for used by image deployment system
network settinsg for all networks
dnsmasq settings
pxe boot directories, and user information
raw iso file paths, vertual iso mount directory, deployment images
Part of three file group: common_vars common_host common_functions
get_extif()
What:
Get IP settings for our external networks
Uses:
get_net
Returns:
NETIF=$EXTIF
EXTIP=$NETIP Address
EXTMASK=$NETMASK
EXTNET=$NET
EXTSUB=$NETSUB
EXT_NETWORK=$EXTIP/$EXTMASK
get_intif()
What:
Get IP settings for our main private network
Uses:
get_net
Returns:
NETIF=$INTIF
INTIP=$NETIP Address
INTMASK=$NETMASK
INTNET=$NET
INTSUB=$NETSUB
INT_NETWORK=$INTIP/$INTMASK
Main Internal Private TCP/IP network and IP address
get_int2if()
What:
Get IP settings for our seconday private network
Uses:
get_net
Returns:
NETIF=$INTIF
INTIP=$NETIP Address
INTMASK=$NETMASK
INTNET=$NET
INTSUB=$NETSUB
INT_NETWORK=$INTIP/$INTMASK
Main Internal Private TCP/IP network and IP address
get_int3if()
What:
Get IP settings for our seconday private network
Uses:
get_net
Returns:
NETIF=$INTIF
INTIP=$NETIP Address
INTMASK=$NETMASK
INTNET=$NET
INTSUB=$NETSUB
INT_NETWORK=$INTIP/$INTMASK
Main Internal Private TCP/IP network and IP address
set_samba_nets()
What:
Setup allowed Samba networks
Returns:
SAMBA_NETS=all private networks and $SAMBA_DEFS_NETS if set
SAMBA_IFS=all defined network interfaces
Notes:
See:
INT_NETWORK,INT2_NETWORK, INTIF,INT2IF
dump_vars()
What:
Dumps a list of the main configuration variables
common_vars: End of AUTOMATICALLY GENERATED section
File: common_host, Tue Nov 11 10:14:09 2014
Start of AUTOMATICALLY GENERATED section for common_host
*DO NOT EDIT THIS SECTION MANUALLY!
Author: Mike Gore
Title: Common HOST specific variables used for the Image Deployment System
ids_common_host
common_host - twiki link for more information
Date:
28 April 2014
Notes:
What:
Define local Administative users, names and groups
Vars:
ADM_USERS="magore cscf-adm cscf-op"
ADM_USER_NAMES="'Mike Gore' 'CSCF Admin' 'CSCF OP'"
ADM_GROUPS="adm cdrom sudo dip plugdev fuse lpadmin sambashare smbadm"
What:
Define PXE server Hostname, Samba userid and group information
Vars:
PXEHOST=$HOSTNAME
PXEUSER=cscf-adm
PXEGROUP=smbadm
PXEGROUPID=444
External Network Interface
Primary Network Interface
What:
Network Interfaces - can be used to provide NFS,TFTPBOOT,DHCP,DNS
External Interface
VARS:
EXTIF="eth0"
What:
Private vlan
- must not the same as the external interface
- can be used for NFS,TFTPBOOT,DHCP,DNS
VARS:
INTIF="eth1"
What:
Do we NAT/Forward the INTIF network to the outside ?
VARS:
INTNAT="TRUE"
Secondary Private Network Interface
Third Private Network Interface
What:
Do we NAT/Forward the seconday
INT2IF
network to the outside ?
- must not the same as the external interface
- can be used for NFS,TFTPBOOT,DHCP,DNS
VARS:
INT2IF
=""
What:
Do we NAT/Forward the seconday
INT2IF
network to the outside ?
Options:
TRUE or empty ""
VARS:
INT2NAT
=
What:
Do we NAT/Forward the seconday
INT2IF
network to the outside ?
- must not the same as the external interface
- can be used for NFS,TFTPBOOT,DHCP,DNS
VARS:
INT3IF
=""
What:
Do we NAT/Forward the seconday
INT2IF
network to the outside ?
Options:
TRUE or empty ""
VARS:
INT3NAT
=""
Firewall defines
Vars:
All addresses
UNIVERSE="0.0.0.0/0"
Vars:
UW Addresses spaces
UW_129="129.97.0.0/16"
UW_172="172.16.0.0/14"
UW_10="10.0.0.0/8"
Samba networks will allways include all private and localhost
networks on this machine
Add othernetworks here
Notes:
Format 172., 129.97.15.0/24, 129.97.16.0/255.255.255.0, $UW_129 ...
Vars:
default netwoks
SAMBA_DEF_NETS=""
Vars:
Samba Workgroup
SAMBA_WORKGROUP="CS_GENERAL"
Vars:
Samba Template file
SMB_CONF_TEMPLATE="/etc/samba/smb.conf.template"
Vars:
Samba config file
SMB_CONF=/etc/samba/smb.conf
/usr/local/bin/common_host: End of AUTOMATICALLY GENERATED section
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r2
<
r1
|
B
acklinks
|
R
aw View
|
Raw edit
|
More topic actions...
Topic revision: r1 - 2015-08-25
-
MikeGore
CF
Information in this area is meant for use by CSCF staff and is not official documentation, but anybody who is interested is welcome to use it if they find it useful.
CF Web
CF Web Home
Changes
Index
Search
Administration
Communication
Email
Hardware
HelpDeskGuide
Infrastructure
InternalProjects
Linux
MachineNotes
Macintosh
Management
Networking
Printing
Research
Security
Software
Solaris
StaffStuff
TaskGroups
TermGoals
Teaching
UserSupport
Vendors
Windows
XHier
Other Webs
CSEveryBody
Main
Sandbox
TWiki
UW
My links
People
CERAS
WatForm
Tetherless lab
Ubuntu Main.HowTo
eDocs
RGG NE notes
RGG
CS infrastructure
Grad images
Edit
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback