Hoe u meerdere machines tegelijkertijd up-to-date kunt houden

In situaties waarin u meerdere machines beheert, kan Apt zeer nuttig zijn, omdat het het proces van het bijwerken en toepassen van beveiligingspatches voor elke machine heel eenvoudig maakt. Het probleem is dat met de traditionele methode, zodra een update uitkomt, je een kopie van alle nieuwe pakketten voor elk van de machines moet downloaden, wat een fenomenaal verbruik van onze bandbreedte en bandbreedte impliceert. Van de officiële server Gelukkig, er is een methode waarmee we een van de machines kunnen updaten en van daaruit de rest van de machines in ons netwerk kunnen updaten. Deze methode, naast het verlagen van de kosten en het optimaliseren van het gebruik van onze bandbreedte, vermijdt de duplicatie van pakketten op de verschillende machines: ze installeren allemaal de pakketten met behulp van onze "cacheserver".


Wanneer u dezelfde distributie op verschillende machines uitvoert (of het nu op het werk is, in computerlabs, op server "farms", in clusters of zelfs op uw kleine thuisnetwerk), kan het handig zijn om een ​​cacherepository op uw netwerk te maken, zodat zodra een pakket is gedownload van een officiële repository, downloaden alle andere machines het uit die cache-repository die is opgeslagen op een machine op uw netwerk die we "server" zullen noemen. Op deze manier kunnen updates die van de ene computer zijn gedownload, op de andere worden geïnstalleerd zonder ze opnieuw te hoeven downloaden van de officiële repositories.

Laten we eerst eens kijken naar enkele "niet-traditionele" oplossingen die ik NIET aanbeveel, maar die zeker in me opkomen bij het oplossen van deze vraag.

Deel / etc / apt

Als u een pakket op een Debian-distro (of zijn afgeleiden) installeert, wordt het lokaal opgeslagen in de map '/ etc / apt'. Wanneer een pakket vereist is, zoekt Apt eerst in deze directory of er een lokale kopie is (dat wil zeggen een cache), waardoor onnodig downloaden wordt vermeden. Dientengevolge zullen sommigen van jullie zeker hebben gedacht dat een goede manier om het probleem in kwestie op te lossen zou kunnen zijn door een computer te kiezen die we zouden aanduiden als een soort server, die zou worden bijgewerkt met behulp van de officiële repositories, en die zou deel uw directory '/ etc / apt' met de rest van de machines op het netwerk. Deze methode kan echter leiden tot problemen met betrekking tot het blokkeren van het bestand 'sources.list'. Over het algemeen is het niet de meest gebruikte en ook niet de handigste oplossing.

Verplaats pakketten

In plaats van een gemeenschappelijke map '/ etc / apt' te delen, zou een ander alternatief kunnen zijn dat elke computer zijn eigen lokale cachemap gebruikt, maar een script genereert dat ervoor zorgt dat de pakketten van de ene machine naar de andere worden gekopieerd, zodat ze allemaal up-to-date blijven. Een tool om deze taak uit te voeren kan 'apt-move' zijn, maar ik raad het eerlijk gezegd niet aan omdat het niet transparant genoeg is voor de eindgebruiker. Bovendien kan het een volledig onnodig gebruik van schijfruimte betekenen, aangezien alle pakketten naar elk van de machines moeten worden gekopieerd.

Toegewijde cachesystemen

De beste oplossing voor dit probleem is om een ​​speciaal cachesysteem te gebruiken. In het kort, waar het om gaat, is om een ​​kopie van de officiële servers op een van de machines in uw netwerk te maken en vervolgens de rest van de machines zo te configureren dat ze, in plaats van te zoeken naar updates van de officiële servers, dit doen met dit lokale cache (of kopie).

Er zijn verschillende systemen die zijn ontworpen om met Apt te werken, waaronder apt-cacher, apt-proxy en apt-cached.

Hier gaan we omgaan met apt-cacher, dat het gemakkelijkst te gebruiken is.

apt-cacher

Apt-cacher verschilt nogal van andere repository caching-systemen, aangezien het geen op zichzelf staand programma is, maar als een CGI-script onder Apache draait. Dit heeft verschillende voordelen, zoals het een kleine en eenvoudige tool maken, maar tegelijkertijd zeer krachtig en bijgevolg robuuster omdat het geen eigen code nodig heeft om met protocollen om te gaan, en het is zeer flexibel omdat je de Apache's kunt gebruiken. toegangscontrolemechanisme voor het geval u het aantal machines wilt beperken dat toegang heeft tot de cache.

Apt-cacher hoeft maar op één machine te worden geïnstalleerd, de machine waarvan u besluit dat deze moet functioneren als uw lokale opslagplaatscache. Vervolgens moeten de rest van de computers in uw netwerk worden geconfigureerd om updates van de cache te vragen en niet van de officiële servers.

Server configuratie

Om gewoon te installeren

sudo apt-get install apt-cacher

Dit pakket heeft afhankelijkheden met apache, perl en wget, dus het zal ze installeren als je het niet eerder hebt geïnstalleerd.

Na installatie wordt aanbevolen Apache opnieuw te starten:

/etc/init.d/apache herstart

Ten slotte hoeft u alleen maar de standaardparameters van het script aan te passen. Ik schreef in een terminal:

sudo gedit /etc/apt-cacher/apt-cacher.conf

Over het algemeen zijn alle standaardinstellingen in orde, maar het wordt aanbevolen om de volgende drie aan te passen:

admin_email = mimail @ mijnserver create_reports = 1 expire_hours = 24

Het tweede element is een Booleaanse variabele die het genereren van rapporten bepaalt (0 genereert geen rapporten, 1 genereert ze wel). Het eerste element is in plaats daarvan het e-mailadres waarnaar de gemaakte rapporten worden verzonden. Het derde en laatste item bepaalt het aantal uren dat Apt moet wachten om te controleren of er updates beschikbaar zijn op de officiële servers.

Als u een proxy gebruikt, vergeet dan niet de volgende items toe te voegen:

http_proxy = proxy.example.com: 8080 use_proxy = 1

Om te controleren of het werkt, kunt u uw lokale cache benaderen via de url http: // servernaam / apt-cacher / en een pagina zal verschijnen met de apt-cacher-configuratie. Onthoud dat 'servernaam' moet worden vervangen door het IP-adres van de machine die u hebt aangewezen als 'server', dat wil zeggen als de opslagplaats van de lokale pakketcache.

Clients configuratie

Nu hoeft u alleen nog maar de sources.list van de clients aan te passen, zodat ze door de server gaan. Als het IP-adres van de server 123.123.123.123 is, moet u het aan elke regel van de sources.list toevoegen en ook oppassen dat ze allemaal naar dezelfde server verwijzen, anders heeft de cache geen effect.

sudo gedit /etc/apt/sources.list
Let op: wees voorzichtig! In Debian en zijn afgeleiden wordt de 'sources.list' opgeslagen in '/ etc / apt'. In andere distributies kan het echter in een ander pad worden opgeslagen. Als u het bestand niet kunt vinden, kunt u het altijd terugvinden door 'lokaliseer sources.list' in een terminal in te voeren.

Zodra het bestand is geopend, waarbij het IP-adres van onze server 123.123.123.123 is, moeten alle regels worden gewijzigd volgens de volgende criteria:

# Origineel #deb http://ftp.us.debian.org/debian/ sid hoofdbijdrage niet-vrij # deb-src http://ftp.us.debian.org/debian/ sid hoofdbijdrage niet-vrij # Gewijzigd deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid hoofdbijdrage niet-vrij deb-src http://123.123.123.123/apt-cacher/ftp.us.debian. org / debian / sid main contrib niet-gratis

Zoals u kunt zien, moet u aan het begin van de URL de server IP + '/ apt-cacher /' toevoegen. Dan gaat de rest van de originele regel.

Verkeersstatistieken

Als u het element 'genereren_reports = 1' in het bestand 'apt-cacher.conf' heeft toegevoegd, genereert apt-cacher toegangsstatistieken, die u kunt openen met de url '/ apt-cacher / report'.

Als u, om welke reden dan ook, statistieken moet genereren vóór het aantal uren dat is ingesteld in 'apt-cacher.conf', voert u het volgende commando uit:

/usr/share/apt-cacher/apt-cacher-report.pl

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   eduardo zei

    Groeten, uitstekende bijdrage, mijn vraag is of je een applicatie kent waarmee je een gecentraliseerde repository kunt hebben om patches toe te passen, maar op verschillende distributies, dat wil zeggen, meerdere machines tegelijkertijd up-to-date houden maar verschillende distributies hebben

  2.   Laten we Linux gebruiken zei

    Hoi Eduardo! De waarheid is dat ik het erg moeilijk zie. Als je een manier ontdekt, laat het me dan niet weten.
    Een dikke knuffel! Proost! Paul.

  3.   Kuiken zei

    Ik gebruik puppet om de servers die ik beheer op afstand te beheren.

  4.   Laten we Linux gebruiken zei

    Ja, heel erg bedankt voor de informatie. Ik heb het al gecorrigeerd.
    Knuffel! Paul.

  5.   Geniutrixone zei

    Hallo,

    de tutorial is super goed ... ik heb een scope .. in Debian Lenny staat de source.lst in het pad / etc / apt /

    groeten

  6.   sepulvedamarcos zei

    vraag….

    als ik een paar machines heb met dezelfde distro… maar niet met dezelfde programma's…. Hoe weet je wat je moet downloaden van de officiële repo's…. verlaagt alles ??? ...

  7.   Laten we Linux gebruiken zei

    Uw vraag is uitstekend. Ik bereken dat het systeem hetzelfde zou moeten werken als in een gewone Apt: als het het niet in de cache vindt, downloadt het het uit de officiële repositories. In dit geval informeert een van de "client" -machines de "server" dat er een update nodig is volgens de lijst met updates op de "server" van uw netwerk. Om die update te installeren reken ik uit dat het eerst het pakket in de servercache zal zoeken. Als het het niet kan vinden, downloadt het het van de officiële repositories, slaat het op de server op en van daaruit wordt het geïnstalleerd op de machine die het nodig heeft. Dat pakket is beschikbaar in de "server" -cache zodat andere machines op uw netwerk het vanaf daar ook kunnen installeren.

    Voel je vrij om te schrijven als ik niet duidelijk genoeg was.

    Een knuffel! Paul.

  8.   Misudark zei

    Ik denk dat er een FOUT is… pakketten worden niet opgeslagen in / etc / apt…. ze blijven eigenlijk in / var / cache / apt / archieven

  9.   Laten we Linux gebruiken zei

    De waarheid is dat ik het niet weet.
    Natuurlijk is er een manier om het te doen. 🙁
    Laat het me weten als je erachter komt, dan voeg ik het toe.
    Proost! Paul.

  10.   Alvaro zei

    Niets met dynamische ip's, toch?

  11.   Marcus zei

    Blijkbaar moet je in meer huidige distributies de poort (standaard 3142) toevoegen aan de URL van het lokale netwerk. Het zou er als volgt uitzien: http://mi_servidor:3142/apt-cacher

  12.   alfredo torrealba zei

    Ik heb lubuntu 16.04 wie heeft het onder dit systeem gedaan en of het voor hem heeft gewerkt? en wat ik wilde vragen is het volgende als ik deze server installeer en mijn andere machines niet dezelfde programma's hebben als ik een verzoek doe op mijn clientmachines voor de installatie van een programma dat ik op de server heb, denk je dat ik installeer het rechtstreeks van de lokale server of doet het verzoek aan de officiële server van de repositories?