Basic Ubuntu Installation: Difference between revisions

From WilliamsNet Wiki
Jump to navigation Jump to search
(Created page with "__NOTOC__ 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 r...")
 
mNo edit summary
 
Line 125: Line 125:
  curl -s http://config/config/debian/install-mcp.sh | bash -x
  curl -s http://config/config/debian/install-mcp.sh | bash -x


== Configure shared filesystem access ==
== Next Steps ==
add these lines to the bottom of /etc/fstab
The rest of the installation process is not OS-dependent and is described [[Common Post-Install|here]].
storage1:/files /files nfs4 soft 0 0
storage1:/backup/systems/<hostname>/current /backup nfs4 soft 0 0
 
make the mount points:
mkdir /files
mkdir /backup
 
mount the filesystems:
mount /files
mount /backup
 
== Final Configuration ==
The only remaining task is to load the ssh credentials for '''root''' and any user accounts.  This is done by running the following command from each user account (assuming aslan is the reference source):
 
scp -r aslan:.ssh $HOME
 
This can also be pushed from aslan to the new system for each account:
 
scp -r ~/.ssh <new_host>:
 
Passwords will be required for this action, but (if the copy is successful) no further passwords will be needed by ssh.

Latest revision as of 12:55, 25 November 2021


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[edit]

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[edit]

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[edit]

The rest of the installation process is not OS-dependent and is described here.