Gardience Documentation gardience.com →
Docs / Using Gardience

Update cache (WSUS for Linux)

WSUS keeps one copy of Windows updates on your network. The update cache does the same for Linux: machines get their packages through the Gardience server, which downloads each file once from its official source and keeps it for every other machine. A hundred servers installing a security fix download it once, and the machines need to reach only Gardience, not the internet.

It works with the official sources of Debian, Ubuntu, Rocky Linux, AlmaLinux and EPEL. Find it under Patching > Update cache (admins only).

Turn it on

  1. Check Networks that may use it. It starts as the private address ranges, so machines inside your network can use it and the internet cannot; narrow it to your machines' networks if you like.
  2. Check Address machines use for updates. It starts as the address machines already use for this server; it must match a name or address on the server's certificate, and end in /updates.
  3. Tick Cache on and choose Save. The change is in the audit log.

The server needs to reach the official sources over HTTPS, and checks each one's certificate. The cache uses up to 50 GB by default; root sets another size with GARDIENCE_UPDATES_CACHE_GB in the server's .env before an upgrade.

Point machines at it

Pick machines under Linux machines and choose Use the cache. On each machine Gardience:

  1. keeps a copy of each package source file it changes (/var/backups/gardience/repos-original.tar.gz),
  2. points each official source at the cache, leaving every other source as it is (Docker's, a vendor's, Red Hat or SUSE subscription repositories),
  3. refreshes the package lists through the cache, and puts every file back at once if that fails.

Patch as usual afterwards: tested patch sets, rings, schedules, change windows and approvals all work the same way. Check all shows, per machine, whether its updates come from this server or the internet.

Back to their own sources puts the files Gardience changed back exactly as they were. Files it never changed are not touched, and a file someone edited after Gardience changed it is left as it is and named in the result.

These two actions run only from this page, never from the command center, a runbook or the assistant.

What stays the same, and what is new

Networks with no internet

The cache can be carried into a network with no internet at all:

  1. On a Gardience server with internet, turn the cache on and point a few machines at it that run the same Linux versions as the offline network. Install and patch what the offline machines need, so the cache holds it.
  2. Export it (as root on that server): ./gardience updates export updates.tar.gz. A .sha256 file is written beside it.
  3. Carry both files in, and on the offline server: ./gardience updates import updates.tar.gz. The checksum is checked first, and only plain files are unpacked into the cache.
  4. Turn the cache on there and point the machines at it as above. They install those packages with no internet.

Packages are still checked against their publishers' signatures on every machine, so a bundle cannot slip in anything unsigned. Debian's security index expires after about a week (apt then refuses it as out of date), so bring in a fresh bundle at least weekly for Debian security updates.

Not covered

Gardience by Bouziden Management LLC.