Skip to content

BassT23/Proxmox

Repository files navigation

Logo

Screenshot_20240109_113501

GitHub release GitHub stars downloads Discord

Proxmox® is a registered trademark of Proxmox Server Solutions GmbH.

I am no member of the Proxmox Server Solutions GmbH. This is not an official program from Proxmox!

This is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

IN CASE OF EMERGENCY, I HOPE YOU HAVE BACKUPS FROM YOUR MACHINES!

YOU HAVE BEEN WARNED!

Features:

  • Update Proxmox VE (the host / all cluster nodes / all included LXCs and VMs)
  • Snapshot / Backup support (for Snapshot, your system must prepared for it)
  • Normal run is "Interactive" / Headless Mode can be run with update -s
  • Logging - location can be change in config file
  • Exit tracking, so you can send additional commands for finish or failure (edit files in /etc/ultimate-updater/exit)
  • Config file

Info can be found with update -h

Changelog: here

What does the script do:

  • The script makes system updates with apt/dnf/pacman/apk or yum on all nodes/LXCs and VMs (if VMs prepared for that)
  • Make a snapshot before update (if your storage support it - look here). If not supported, you can choose to make a real backup, but this must be enabled in update.conf by user (take long time!)
  • After all, the updater makes a little cleaning (like apt autoremove)
  • If the script detects "extra" installations, it could update this also. Look in config file, for that.

Installation:

In Proxmox GUI Host Shell or as root on proxmox host terminal:

bash <(curl -s https://raw.githubusercontent.com/BassT23/Proxmox/master/install.sh)

Cluster-Mode preparation:

! For Cluster Installation, you only need to install on one Host !

The nodes need to know each other. For that please edit the /etc/hosts file on each node. Otherwise, you can use the GUI. (NODE -> System -> Hosts)

Example add:

192.168.1.10   pve1
192.168.1.11   pve2
192.168.1.12   pve3
...

IP and Name must match with node ip and its hostname.

  • IP can be found in node terminal with hostname -I
  • hostname can be found in node terminal with hostname

After that make the fingerprints. The used sequence can be check, if you run awk '/ring0_addr/{print $2}' "/etc/corosync/corosync.conf" from the host, on which Proxmox-Updater is installed. So connect from first node (on which you install the Proxmox-Updater) to node2 with ssh pve2. Then from node2 ssh pve3, and so on.

If you want to update the VMs also, you have two choices:

  1. Use the "light and easy" QEMU option

    more infos here: QEMU Guest Agent

  2. Use ssh connection with Key-Based Authentication (a little more work, but nicer output and "extra" support)

    more infos here: SSH Connection

Update the script:

update -up

If update run into issue, please remove first with:

bash <(curl -s https://raw.githubusercontent.com/BassT23/Proxmox/master/install.sh) uninstall

and install new

Extra Updates:

If updater detects installation: (disable, if you want in /etc/ultimate-updater/update.conf)

  • PiHole
  • ioBroker
  • Pterodactyl
  • Octoprint
  • Docker Compose (v1 and v2)

Config File:

The config file is stored under /etc/ultimate-updater/update.conf

With this file, you can manage the updater. For example; if you don't want to update PiHole, comment the line out with #, or change true to false.

  • Host / LXC / VM
  • Headless Mode
  • Extra updates
  • "stopped" or "running" LXC/VM
  • "only" or "exclude" LXC/VM by ID

Welcome Screen:

The Welcome Screen is an extra for you. It's optional!

  • The Welcome-Screen brings an update-checker with it. It check on 07am and 07pm for updates via crontab. The result will show up in Welcome-Screen (Only if updates are available).
  • The update-checker also uses the config file!
  • To force the check, you can run /etc/ultimate-updater/check-updates.sh in Terminal.
  • You can choose, if neofetch will be show also (if neofetch is not installed, script will make it automatically)

Beta Testing:

If anybody wants to help with failure search, please test our beta (if available).

Install beta update with update beta -up To go back to master, choose update -up

Q&A:

Discussion

Support:

grafik

Contributors:

BassT23
BassT23
💻 🚧
Gauvino
Gauvino

💻 📖
elbim
elbim

💻