Basic CentOS 7 Installation: Difference between revisions
Jump to navigation
Jump to search
DrEdWilliams (talk | contribs) (major rework -- initialization now in a script on the config server.) |
No edit summary |
||
| (7 intermediate revisions by one other user not shown) | |||
| Line 10: | Line 10: | ||
== Basic system prep == | == Basic system prep == | ||
Most of the initial configuration is now contained in a script that can be executed directly from the config server: | 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 - | curl -s http://config/config/centos7-basic-config.sh | bash | ||
The contents of this script are included here for reference: | The contents of this script are included here for reference, though updates to the script may occur without updates to this page: | ||
<pre>#!/bin/sh | <pre>#!/bin/sh | ||
| Line 25: | Line 25: | ||
# - an administrator account 'ewilliam' was created during installation | # - an administrator account 'ewilliam' was created during installation | ||
CONFIG=http:// | CONFIG=http://config/config | ||
# first -- install all the basic necessities (some may already be there) | # first -- install all the basic necessities (some may already be there) | ||
yum -y install net-tools rsync zsh epel-release yum-cron yum-utils mlocate deltarpm | yum -y install net-tools rsync zsh epel-release yum-cron yum-utils mlocate deltarpm | ||
yum -y install sshfs nfs-utils ssmtp | yum -y install sshfs nfs-utils ssmtp psmisc | ||
yum -y remove firewalld postfix | yum -y remove firewalld postfix | ||
yum autoremove -y NetworkManager NetworkManager-libnm | yum autoremove -y NetworkManager NetworkManager-libnm | ||
| Line 72: | Line 72: | ||
# get the standard /etc/hosts file | # get the standard /etc/hosts file | ||
curl $CONFIG/hosts -o /etc/hosts | curl $CONFIG/hosts -o /etc/hosts | ||
# install the host/known_hosts synchronization | |||
curl -s $CONFIG/host_check.sh > /etc/cron.hourly/host_check | |||
chmod +x /etc/cron.hourly/host_check | |||
# now reboot | # now reboot | ||
reboot</pre> | reboot</pre> | ||
== | == Next Steps == | ||
The | The rest of the installation process is not OS-dependent and is described [[Common Post-Install|here]]. | ||
Latest revision as of 22:22, 3 February 2024
CentOS Distribution Install[edit]
Centos 7 minimal install from DVD install disk During install process:
- use custom formatting
- set partition type to 'standard'
- click on 'automatically create partitions
- delete /home partition and increase size of / to fill the disk
- set hostname (if known)
- enable all basic network interfaces (do not rename -- it will crash the installer)
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/centos7-basic-config.sh | bash
The contents of this script are included here for reference, though updates to the script may occur without updates to this page:
#!/bin/sh # # script to do the basic install of a centos7 headless server # # 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 CONFIG=http://config/config # first -- install all the basic necessities (some may already be there) yum -y install net-tools rsync zsh epel-release yum-cron yum-utils mlocate deltarpm yum -y install sshfs nfs-utils ssmtp psmisc yum -y remove firewalld postfix yum autoremove -y NetworkManager NetworkManager-libnm systemctl enable --now yum-cron yum -y update # now disable SELinux (no comment) sed -i 's/=enforcing/=disabled/g' /etc/selinux/config setenforce 0 # make sudo passwordless for group wheel echo "%wheel ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/91-wheel-NOPASSWD # 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/centos7/.zshrc -o /root/.zshrc curl -s $CONFIG/centos7/.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 # get backup scripts curl -s $CONFIG/centos7/backup -o /etc/cron.daily/backup curl -s $CONFIG/centos7/rsync_backup.sh -o /usr/local/bin/rsync_backup.sh chmod +x /usr/local/bin/rsync_backup.sh # configure log server curl -s $CONFIG/centos7/99-remotelog.conf -o /etc/rsyslog.d/99-remotelog.conf systemctl restart rsyslog # enable mail to the central email server echo "root: ewilliam@williams.localnet" >> /etc/aliases echo "ewilliam: ewilliam@williams.localnet" >> /etc/aliases # get the standard /etc/hosts file curl $CONFIG/hosts -o /etc/hosts # install the host/known_hosts synchronization curl -s $CONFIG/host_check.sh > /etc/cron.hourly/host_check chmod +x /etc/cron.hourly/host_check # now reboot reboot
Next Steps[edit]
The rest of the installation process is not OS-dependent and is described here.