Krajobraz może Cię zainteresować. Jest to „oficjalne” narzędzie do zarządzania dużymi wdrożeniami Ubuntu, a Canonical prawdopodobnie bardzo chętnie zdobędzie twoje dolary na jego wykorzystanie.
PONOWNIE EDYCJA:
Po pierwsze, wyłączenie odpowiedzialności; Nie używałem dublowania dla Debiana ani Ubuntu, więc nie znam oprogramowania.
Po drugie, wydaje się, że apt-mirror byłoby rozwiązaniem „zbyt ciężkim”, przepraszam. Pierwotnym pomysłem było posiadanie osobnej maszyny testowej (lub środowiska testowego, prawdopodobnie maszyny wirtualnej?) Do wdrożenia aktualizacji. Gdy będziesz zadowolony z wydajności aktualizacji, ściągniesz / umieścisz pakiet w swoim „wdrożonym” serwerze lustrzanym (będzie lokalny serwer lustrzany z oficjalnych źródeł oraz drugi serwer lustrzany dla tylko aktualizacji, które chcesz wdrożyć). Zdalne komputery uruchomiłyby aktualizację we wcześniej ustalonym czasie i wyciągnęły ją z kopii lustrzanej „wdrażania” na każdą maszynę, zadanie CRON obejmujące:
apt-get update && apt-get upgrade --quiet --assume-yes
Niestety, kiedy zacząłem czytać szczegółowe informacje, wydaje się, że apt-mirror
wyciągną one różne rzeczy, a nie tylko pakiety, których szukasz. Więc zrezygnuję z tego pomysłu, chociaż koncepcja ma pewne zalety.
Współpracownik odkrył i krótko przyjrzał się apt-dater, który jest „opartym na terminalu zdalnym menedżerem aktualizacji pakietów”.
Korzystasz z interfejsu opartego na przekleństwach, aby zarządzać aktualizacjami na wszystkich swoich hostach lub grupach hostów itp. Obsługuje rejestrowanie pełnej sesji apt, w tym wszelkich napotkanych błędów itp.
Opiera się na ssh i sudo na zarządzanych komputerach.
patrz http://www.ibh.de/apt-dater/
Nie korzystałem z niej sam, więc nie mogę tego poprzeć, ale brzmi to tak, jakbyś tego szukał.
źródło
Ponieważ już korzystasz z Puppet, najłatwiejszym sposobem (i najlepszym do kontroli / śledzenia zmian) jest określenie żądanej wersji pakietów, które chcesz zainstalować w manifeście marionetkowym. Macie oko na listę powiadomień bezpieczeństwa, a kiedy coś, z czego korzystacie, przechodzi przez aktualizację, Puppet mówi „zainstaluj nową wersję tego pakietu”. Zakładając, że używasz kontroli wersji w swoich manifestach, wtedy wiesz, kiedy „zasady” zostały zmienione, a raporty Puppet pokazują dokładnie, kiedy faktycznie wprowadzono zmianę (dzięki czemu możesz łatwo skorelować to z późniejszymi zdarzeniami dziennika).
źródło
Spójrz na clusterssh (apt-get install clusterssh):
$ cssh serwer1 serwer2 serwer3 ...
źródło
Bez wcześniejszego zastanowienia się nad tym, moim pierwszym pomysłem byłoby coś podobnego do tego, co sugerował Avery, szczególnie jeśli masz już środowisko testowe.
Zasadniczo ustawiasz maszyny produkcyjne na automatyczne uaktualnianie z własnego lokalnego repozytorium i aktualizujesz to repozytorium dopiero po aktualizacji środowiska testowego do najnowszej wersji tego, co uruchomisz.
Apticron nie skaluje się dobrze, jest zaprojektowany do pracy w dość małych środowiskach, ale ma kilka dobrych zalet:
źródło
Czasami pisałem skrypt tkaniny niskiego poziomu / brudnej automatyzacji (plik fabfile), aby spełnić podobne wymagania, możesz to sprawdzić na:
https://gist.github.com/lgaggini/2be3c5bb47b8ce9267bd
źródło