Basic Ubuntu Installation
Ubuntu standard install; known to work with:
- kubuntu 21.10
Installation from downloaded media
- Do a normal 'Install' option from the boot menu
- need to re-run an install and pay attention this time
Basic system prep
Most of the initial configuration is now contained in a script that can be executed directly from the config server as root on the target system:
curl -s http://config/config/ubuntu-basic-config.sh | bash -x | tee config.out wget -qO - http://config/config/ubuntu-basic-config.sh | bash -x | tee config.out
The contents of this script are included here for reference, though updates to the script may occur without updates to this page:
#!/bin/bash
#
# script to do the basic install of a Ubuntu workstation
#
# Assumptions:
# - this is run as root immediately after the install has completed
# - the hostname has been set as desired before this script is run
# - an administrator account 'ewilliam' was created during installation
#
# invoke using one of these commands:
#
# wget -qO http://config/config/debian-basic-config.sh | bash
# curl -s http://config/config/debian-basic-config.sh | bash
#
CONFIG=http://config/config
# sometimes the install leaves the cdrom lines in the sources.list file -- remove them
sed -i 's/^deb cdrom/#deb cdrom/' /etc/apt/sources.list
# first -- install all the basic necessities (some may already be there)
apt-get update
apt-get install -y net-tools zsh nfs-common aptitude git curl vim openssh-server
# the ssmtp package is not officially supported under buster
# download the package from stretch and install
#SSMTP_DEB=ssmtp_2.64-9_amd64.deb
SSMTP_DEB=ssmtp_2.64-8+b2_amd64.deb
wget http://http.us.debian.org/debian/pool/main/s/ssmtp/${SSMTP_DEB}
apt-get install -y ./${SSMTP_DEB}
apt-mark hold ssmtp
# now get all the updates
apt-get -y upgrade
# make sudo passwordless for group wheel
echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/91-wheel-NOPASSWD
chmod 440 /etc/sudoers.d/91-wheel-NOPASSWD
usermod -aG sudo ewilliam
# now that zsh is installed, make it the default
chsh -s /bin/zsh
chsh -s /bin/zsh ewilliam
# copy the standard zsh config files
curl -s $CONFIG/common/zshrc -o /root/.zshrc
curl -s $CONFIG/common/zshrc -o /home/ewilliam/.zshrc
chown ewilliam.ewilliam /home/ewilliam/.zshrc
# load ssh known_hosts from the config server
mkdir -p /root/.ssh
curl -s $CONFIG/ssh/known_hosts -o /root/.ssh/known_hosts
mkdir -p /home/ewilliam/.ssh
curl -s $CONFIG/ssh/known_hosts -o /home/ewilliam/.ssh/known_hosts
chown -R ewilliam.ewilliam /home/ewilliam/.ssh
# get backup scripts
curl -s $CONFIG/common/backup -o /etc/cron.daily/backup
curl -s $CONFIG/common/rsync_backup.sh -o /usr/local/bin/rsync_backup.sh
chmod +x /usr/local/bin/rsync_backup.sh /etc/cron.daily/backup
# configure log server
curl -s $CONFIG/common/99-remotelog.conf -o /etc/rsyslog.d/99-remotelog.conf
systemctl restart rsyslog
# enable mail to the central email server
# unlike the CentOS version of the ssmtp package, this doesn't recognize the /etc/aliases file
# to make it work, the hostname needs to be set to 'williams.localnet' and the mail server must be at 'mail'
sed -i 's/^hostname=.*$/hostname=williams.localnet/' /etc/ssmtp/ssmtp.conf
# get the standard /etc/hosts file
curl -s $CONFIG/hosts -o /etc/hosts
# install more supporting stuff
apt-get install -y gpg apt-transport-https
# install metricbeat, using the standard config file on the config server
#wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
#echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
#apt-get install -y metricbeat
#curl -s $CONFIG/common/metricbeat.yml -o /etc/metricbeat/metricbeat.yml
#chmod 640 /etc/metricbeat/metricbeat.yml
#sudo systemctl enable --now metricbeat
# install webmin
wget -qO - https://download.webmin.com/jcameron-key.asc | sudo apt-key add -
echo "deb https://download.webmin.com/download/repository sarge contrib" | sudo tee -a /etc/apt/sources.list.d/webmin.list
apt-get update
apt-get install -y webmin
# install the host/known_hosts synchronization
curl -s $CONFIG/host_check.sh -o /etc/cron.hourly/host_check
chmod +x /etc/cron.hourly/host_check
# provide a daily list of packages that need updating
curl -s $CONFIG/debian/0-apt-upgradeable -o /etc/cron.daily/0-apt-upgradable
chmod +x /etc/cron.daily/0-apt-upgradable
# install other status checks
curl -s $CONFIG/common/ssd-endurance > /etc/cron.weekly/ssd-endurance
chmod +x /etc/cron.weekly/ssd-endurance
# now reboot
reboot
Proliant System Utilities
For Proliant servers, we need to install the Management Component Pack (MCP) to manage the storage controller. A script to do this is available on the config server:
curl -s http://config/config/debian/install-mcp.sh | bash -x
Next Steps
The rest of the installation process is not OS-dependent and is described here.