Initial commit
commit
9c05ee4993
@ -0,0 +1,143 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
################################################################################
|
||||||
|
# This is property of eXtremeSHOK.com
|
||||||
|
# You are free to use, modify and distribute, however you may not remove this notice.
|
||||||
|
# Copyright (c) Adrian Jon Kriel :: admin@extremeshok.com
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Script updates can be found at: https://github.com/extremeshok/xshok-proxmox
|
||||||
|
#
|
||||||
|
# post-installation script for Proxmox
|
||||||
|
#
|
||||||
|
# License: BSD (Berkeley Software Distribution)
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Assumptions: proxmox installed
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# to disable the MOTD banner, set the env NO_MOTD_BANNER to true (export NO_MOTD_BANNER=true)
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# THERE ARE NO USER CONFIGURABLE OPTIONS IN THIS SCRIPT
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Set the local
|
||||||
|
export LANG="en_US.UTF-8"
|
||||||
|
export LC_ALL="C"
|
||||||
|
|
||||||
|
## Force APT to use IPv4
|
||||||
|
echo -e "Acquire::ForceIPv4 \"true\";\\n" > /etc/apt/apt.conf.d/99force-ipv4
|
||||||
|
|
||||||
|
## disable enterprise proxmox repo
|
||||||
|
if [ -f /etc/apt/sources.list.d/pve-enterprise.list ]; then
|
||||||
|
echo -e "#deb https://enterprise.proxmox.com/debian buster pve-enterprise\\n" > /etc/apt/sources.list.d/pve-enterprise.list
|
||||||
|
fi
|
||||||
|
## enable public proxmox repo
|
||||||
|
if [ ! -f /etc/apt/sources.list.d/proxmox.list ] && [ ! -f /etc/apt/sources.list.d/pve-public-repo.list ] && [ ! -f /etc/apt/sources.list.d/pve-install-repo.list ] ; then
|
||||||
|
echo -e "deb http://download.proxmox.com/debian buster pve-no-subscription\\n" > /etc/apt/sources.list.d/pve-public-repo.list
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Add non-free to sources
|
||||||
|
sed -i "s/main contrib/main non-free contrib/g" /etc/apt/sources.list
|
||||||
|
|
||||||
|
## Add the latest ceph provided by proxmox
|
||||||
|
# echo "deb http://download.proxmox.com/debian/ceph-luminous stretch main" > /etc/apt/sources.list.d/ceph.list
|
||||||
|
|
||||||
|
## Refresh the package lists
|
||||||
|
apt-get update
|
||||||
|
|
||||||
|
|
||||||
|
## Install common system utilities
|
||||||
|
/usr/bin/env DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::='--force-confdef' install whois omping tmux sshpass wget axel nano pigz net-tools htop iptraf iotop iftop iperf vim vim-nox unzip zip software-properties-common aptitude curl dos2unix dialog mlocate build-essential git ipset htop
|
||||||
|
#snmpd snmp-mibs-downloader
|
||||||
|
|
||||||
|
|
||||||
|
## Install kexec, allows for quick reboots into the latest updated kernel set as primary in the boot-loader.
|
||||||
|
# use command 'reboot-quick'
|
||||||
|
echo "kexec-tools kexec-tools/load_kexec boolean false" | debconf-set-selections
|
||||||
|
/usr/bin/env DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::='--force-confdef' install kexec-tools
|
||||||
|
|
||||||
|
cat <<'EOF' > /etc/systemd/system/kexec-pve.service
|
||||||
|
[Unit]
|
||||||
|
Description=boot into into the latest pve kernel set as primary in the boot-loader
|
||||||
|
Documentation=man:kexec(8)
|
||||||
|
DefaultDependencies=no
|
||||||
|
Before=shutdown.target umount.target final.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/sbin/kexec -l /boot/pve/vmlinuz --initrd=/boot/pve/initrd.img --reuse-cmdline
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=kexec.target
|
||||||
|
EOF
|
||||||
|
systemctl enable kexec-pve.service
|
||||||
|
echo "alias reboot-quick='systemctl kexec'" >> /root/.bash_profile
|
||||||
|
|
||||||
|
## Remove no longer required packages and purge old cached updates
|
||||||
|
/usr/bin/env DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::='--force-confdef' autoremove
|
||||||
|
/usr/bin/env DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::='--force-confdef' autoclean
|
||||||
|
|
||||||
|
## Bugfix: reserve 512MB memory for system
|
||||||
|
echo "vm.min_free_kbytes = 524288" >> /etc/sysctl.conf
|
||||||
|
sysctl -p
|
||||||
|
|
||||||
|
## Remove subscription banner
|
||||||
|
if [ -f "/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js" ] ; then
|
||||||
|
sed -i "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
||||||
|
# create a daily cron to make sure the banner does not re-appear
|
||||||
|
cat <<'EOF' > /etc/cron.daily/proxmox-nosub
|
||||||
|
#!/bin/sh
|
||||||
|
# eXtremeSHOK.com Remove subscription banner
|
||||||
|
sed -i "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
||||||
|
EOF
|
||||||
|
chmod 755 /etc/cron.daily/proxmox-nosub
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Increase max user watches
|
||||||
|
# BUG FIX : No space left on device
|
||||||
|
echo 1048576 > /proc/sys/fs/inotify/max_user_watches
|
||||||
|
echo "fs.inotify.max_user_watches=1048576" >> /etc/sysctl.conf
|
||||||
|
sysctl -p /etc/sysctl.conf
|
||||||
|
|
||||||
|
## Increase max FD limit / ulimit
|
||||||
|
cat <<EOF >> /etc/security/limits.conf
|
||||||
|
# eXtremeSHOK.com Increase max FD limit / ulimit
|
||||||
|
* soft nproc 256000
|
||||||
|
* hard nproc 256000
|
||||||
|
* soft nofile 256000
|
||||||
|
* hard nofile 256000
|
||||||
|
root soft nproc 256000
|
||||||
|
root hard nproc 256000
|
||||||
|
root soft nofile 256000
|
||||||
|
root hard nofile 256000
|
||||||
|
EOF
|
||||||
|
|
||||||
|
## Increase kernel max Key limit
|
||||||
|
cat <<EOF > /etc/sysctl.d/60-maxkeys.conf
|
||||||
|
# eXtremeSHOK.com
|
||||||
|
# Increase kernel max Key limit
|
||||||
|
kernel.keys.root_maxkeys=1000000
|
||||||
|
kernel.keys.maxkeys=1000000
|
||||||
|
EOF
|
||||||
|
|
||||||
|
## Set systemd ulimits
|
||||||
|
echo "DefaultLimitNOFILE=256000" >> /etc/systemd/system.conf
|
||||||
|
echo "DefaultLimitNOFILE=256000" >> /etc/systemd/user.conf
|
||||||
|
echo 'session required pam_limits.so' | tee -a /etc/pam.d/common-session-noninteractive
|
||||||
|
echo 'session required pam_limits.so' | tee -a /etc/pam.d/common-session
|
||||||
|
echo 'session required pam_limits.so' | tee -a /etc/pam.d/runuser-l
|
||||||
|
|
||||||
|
## Set ulimit for the shell user
|
||||||
|
cd ~ && echo "ulimit -n 256000" >> .bashrc ; echo "ulimit -n 256000" >> .profile
|
||||||
|
|
||||||
|
## Optimise ZFS arc size
|
||||||
|
|
||||||
|
# propagate the setting into the kernel
|
||||||
|
update-initramfs -u -k all
|
||||||
|
|
||||||
|
## Script Finish
|
||||||
|
echo -e '\033[1;33m Finished....please restart the system \033[0m'
|
Loading…
Reference in New Issue