How do I make sure that when I run apt-get update, apt-get upgrade on 2 different servers at different times, that I will get the same packages? How do I autotmate/enforce this?
The (simplified) use case I am currently looking at is if I upgrade everything to the newest version on a development instance, and test all of my custom software against it, this make take a day or 2. When I run updates/upgrades on a production machine, I'd like to only upgrade to the versions that I have previously tested. This would allow me build a process to iterate newer patches more quickly and safely than I currently do.
Ideally, I love to take a timestamp for the first upgrade, then enforce updates up to that timestamp on subsequent upgrades. (But any other suggestions would be great)
I've considered investigating a few options, but I'm not sure if they are promising yet and they require a bit of engineering time, and am curious if there is a more simple way of doing this.
1) Creating some sort of local apt repo that both caches the versions. That repo could pull all recent versions for the first pull, then only return those when subsequently queried.
2) Seeing if a configuration management tool like ansible/chef could capture all the versions that were updated on the first pull, then force the second pull to pull those exact versions.