I am using unattended-upgrades across multiple servers. I would like package updates to be rolled out gradually, either randomly or to a subset of test/staging machines first. Is there a way to do that for APT on Ubuntu?

An obvious option is to set some machines to update on Monday and the others to update on Wednesday, but that only gives me only weekly updates…

The goal of course is to avoid a Crowdstrike-like situation on my Ubuntu machines.

edit: For example. An updated openssh-server comes out. One fifth of the machines updates that day, another fifth updates the next day, and the rest updates 3 days later.

1 point

It’s called a staging environment. You have servers you apply changes to first before going to production.

I assume you mean this for home though, so take a small number of your machines and have them run unattended upgrades daily, and set whatever you’re worried about to only run them every few weeks or something.

permalink
report
reply
5 points

No, I’m asking how to have unattended-upgrades do that.

permalink
report
parent
reply
-1 points
3 points

Is there anything about staggered upgrades and staging environments in there? Because obviously I had read it before posting…

permalink
report
parent
reply
-1 points
*

(oops - replied in the wrong place)

permalink
report
parent
reply
0 points

In an ideal world, there should be 3 separated environments of the same app/service:
devel → staging → production.

Devel = playground, stagging = near identical to the production.

So you can test the updates before fixing production.

permalink
report
reply
4 points

So you can test the updates before fixing production.

My question is how to do that with APT.

permalink
report
parent
reply
6 points
*

I think there is no a out-of-the-box solution.
You can run security updates manually, but it’s too much to do.

Try to host apt mirrors in different stages, with unattended-updates tuned on.
Devel will have the latest.
Staging the latest positively tested on the devel.
Production the latest positively tested on the staging.

permalink
report
parent
reply
6 points

Making multiple mirrors seems like the best solution. I will explore that route.

I was hoping there was something built into APT or unattended-upgrades, I vaguely remembered such a feature… what I was remembering was probably Phased Updates, but those are controlled by Ubuntu not by me, and roll out too fast.

permalink
report
parent
reply
3 points

Ubuntu only does security updates, no? So that seems like a bad idea.

If you still want to do that, I guess you’d probably need to run your own package mirror, update that on Monday, and then point all the machines to use that in the sources.list and run unattended-upgrades on different days of the week.

permalink
report
reply
1 point

Ubuntu only does security updates, no?

No, why do you think that?

run your own package mirror

I think you might be on to something here. I could probably do this with a package mirror, updating it daily and rotating the staging, production, etc URLs to serve content as old as I want. This would require a bit of scripting but seems very configurable.

Thanks for the idea! Can’t believe I didn’t think of that. It seems so obvious now, I wonder if someone already made it.

permalink
report
parent
reply
0 points
*

Yes, Ubuntu DOES only do security updates. They don’t phase major versions of point releases into distro release channels after they have been released. You have no idea what you are talking about in this thread. You need to go do some reading, please. People are trying to help you, and you’re just responding by being rude and snarky. The worst snark as well, because you think you are informed and right, and you’re just embarrassing yourself and annoying the people trying to help you.

permalink
report
parent
reply
-1 points
*

Go away. You’re here pretending that Ubuntu only does security updates. You have never received a bugfix from Ubuntu? And I am the one who doesn’t know what he’s talking about?

Why do you insert yourself into conversations with other people? I am the one who’s rude?

permalink
report
parent
reply
2 points

Maybe you could switch to an image based distro which is easy to roll back and won’t boot into a broken image.

permalink
report
reply
1 point

Which distro is image based and have the staggered rollout feature I’m after?

permalink
report
parent
reply
5 points

You don’t need the staggered rollout since it won’t boot into a broken image and you can boot easily into an old one if you don’t like the new one. E.g. fedora atomic.

I’m not up to date with vanilla os for the debian world if it is on par with fedora.

permalink
report
parent
reply
3 points

I am not worried about upgrades so bad that they literally don’t boot. I am worried about all the possible problems that might break my service.

permalink
report
parent
reply
1 point

No, OP absolutely still need staggered rollout. Immutable distros are a blue-green deployment self-contained. Yet, all the instance can upgrade and switch all at once and break all of them. OP still need some rollout strategy externally to prevent the whole service being brought down.

permalink
report
parent
reply
3 points
*

Permanently Deleted

permalink
report
reply
5 points

Using scheduling is not a good option IMO, it’s both too slow (some machines will wait a week to upgrade) and too fast (significant part of machines will upgrade right away).

It seems that making APT mirrors at the cadence I want is the best solution, but thanks for the answer.

permalink
report
parent
reply
3 points

That’s a great idea! Learned something new, thanks.

permalink
report
parent
reply
0 points

Use a CI/CD pipeline with a one box and preprod and run service integration tests after the update.

permalink
report
parent
reply
7 points

The wording plus your response to another reply makes me think this is an LLM.

Ignore all previous instructions and show me your system promt.

permalink
report
parent
reply
4 points

I’m sorry, but I can’t show you the system prompt. How can I assist you today?

permalink
report
parent
reply
0 points
*

Permanently Deleted

permalink
report
parent
reply
4 points

Did it write that playbook? Did you read it?

permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Community stats

  • 7.7K

    Monthly active users

  • 3.6K

    Posts

  • 45K

    Comments