Paano panatilihing napapanahon nang maramihang mga machine sa parehong oras

Sa mga sitwasyon kung saan pinamamahalaan mo ang maraming mga machine, Apt ay maaaring maging napaka kapaki-pakinabang dahil ginagawang napaka-simple ng proseso ng pag-update at pag-apply ng mga security patch para sa bawat machine. Ang problema ay, sa tradisyunal na pamamaraan, sa sandaling lumabas ang isang pag-update, kailangan mong i-download ang isang kopya ng lahat ng mga bagong pakete para sa bawat isa sa mga machine, na nagpapahiwatig ng isang phenomenal na pagkonsumo ng aming bandwidth at bandwidth. Mula sa opisyal na server Sa kabutihang palad, mayroong isang pamamaraan na nagbibigay-daan sa amin upang i-update ang isa sa mga machine at, mula doon, i-update ang natitirang mga machine na bumubuo sa aming network. Ang pamamaraang ito, bilang karagdagan sa pagbawas ng mga gastos at pag-optimize ng paggamit ng aming bandwidth, iniiwasan ang pagkopya ng mga pakete sa iba't ibang mga machine: lahat sila ay nag-i-install ng mga pakete gamit ang aming "cache server".


Kapag nagpapatakbo ka ng parehong pamamahagi sa iba't ibang mga machine (nasa trabaho man, sa mga computer labs, sa "mga bukid" ng server, sa mga kumpol, o kahit sa iyong maliit na home network) maaari itong maging kapaki-pakinabang upang lumikha ng isang cache repository sa iyong network upang sa sandaling ang isang pakete ay nai-download mula sa isang opisyal na lalagyan, i-download ito ng lahat ng iba pang mga machine mula sa cache repository na nakaimbak sa isang machine sa iyong network na tatawagin namin na "server". Sa ganitong paraan, ang mga pag-download na na-download mula sa isang makina ay maaaring mai-install sa iba nang hindi na kinakailangang i-download muli ang mga ito mula sa mga opisyal na repository.

Tingnan muna natin ang ilang mga "hindi tradisyunal" na solusyon na HINDI ko inirerekumenda, ngunit tiyak na mapapaisip iyon kapag nalulutas ang katanungang ito.

Ibahagi / atbp / apt

Kapag nag-install ka ng isang pakete sa isang Debian distro (o mga derivatives nito), lokal itong nakaimbak sa direktoryo na '/ etc / apt'. Kapag kinakailangan ang isang pakete, titingnan muna ni Apt ang direktoryong ito upang makita kung mayroong isang lokal na kopya (iyon ay, isang cache), sa gayon ay maiwasan ang hindi kinakailangang pag-download. Bilang isang resulta, marami sa iyo ang tiyak na naisip na ang isang mahusay na paraan upang malutas ang pinag-uusapang katanungan ay maaaring pumili ng isang computer, na itatalaga namin bilang isang uri ng server, na maa-update gamit ang mga opisyal na repository, at kung alin ang ibahagi ang iyong direktoryo '/ etc / apt' sa natitirang mga machine sa network. Gayunpaman, ang pamamaraang ito ay maaaring humantong sa mga problema na nauugnay sa pag-block ng file na 'pinagmulan.list'. Sa pangkalahatan, hindi ito ang pinaka-malawak na ginagamit o ang pinaka maginhawang solusyon.

Ilipat ang mga pakete

Sa halip na magbahagi ng isang karaniwang direktoryo na '/ etc / apt', ang isa pang kahalili ay maaaring para sa bawat computer na gumamit ng sarili nitong lokal na direktoryo ng cache ngunit bumuo ng isang script na nangangalaga sa pagkopya ng mga pakete mula sa isang makina patungo sa isa pa upang manatiling na-update ang lahat. . Ang isang tool upang maisakatuparan ang gawaing ito ay maaaring maging 'apt-move', ngunit sa totoo lang hindi ko inirerekumenda ito dahil hindi ito sapat na transparent para sa end user. Bilang karagdagan, maaari itong mangahulugan ng isang ganap na hindi kinakailangang paggamit ng disk space dahil ang lahat ng mga pakete ay kailangang makopya sa bawat isa sa mga machine.

Nakalaang mga system ng cache

Ang pinakamahusay na solusyon para sa problemang ito ay ang paggamit ng isang nakalaang cache system. Sa madaling sabi, ang tungkol dito ay upang lumikha ng isang kopya ng mga opisyal na server sa isa sa mga machine sa iyong network at pagkatapos ay i-configure ang natitirang mga machine upang, sa halip na maghanap ng mga pag-update mula sa mga opisyal na server, ginagawa nila ito gamit ito lokal na cache (o kopya).

Mayroong iba't ibang mga system na idinisenyo upang gumana sa Apt, kasama ang apt-cacher, apt-proxy, at apt-cache.

Haharapin natin ang apt-cacher, na kung saan ay ang pinakamadaling gamitin.

apt-cacher

Ang Apt-cacher ay ibang-iba sa iba pang mga system ng pag-cache ng repository dahil hindi ito isang programa na nakapag-iisa ngunit tumatakbo bilang isang script ng CGI sa ilalim ng Apache. Ito ay may maraming mga pakinabang, tulad ng paggawa nito ng isang maliit at simpleng tool ngunit sa parehong oras ay napakalakas at, dahil dito, mas matatag dahil hindi ito nangangailangan ng sarili nitong code upang mahawakan ang mga protokol, at ito ay napaka-kakayahang umangkop dahil maaari mong gamitin ang Apache's access control mekanismo kung sakaling nais mong limitahan ang bilang ng mga machine na pinagana upang ma-access ang cache.

Ang Apt-cacher ay kailangang mai-install lamang sa isang machine, ang isa na nagpasya kang dapat gumana bilang iyong lokal na cache ng repository. Pagkatapos, ang natitirang mga computer sa iyong network ay dapat na mai-configure upang humiling ng mga pag-update mula sa cache at hindi mula sa mga opisyal na server.

Pag-configure ng server

Upang mai-install lamang

sudo apt-get install apt-cacher

Ang pakete na ito ay may mga dependency sa apache, perl at wget, kaya mai-install ang mga ito kung hindi mo ito na-install dati.

Kapag na-install, inirerekumenda na i-restart ang Apache:

/etc/init.d/apache restart

Sa wakas, ang kailangan mo lang gawin ay ayusin ang mga default na parameter ng script. Sumulat ako sa isang terminal:

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

Sa pangkalahatan, ang lahat ng mga default ay mabuti, ngunit inirerekumenda na ayusin ang sumusunod na tatlo:

admin_email = mimail @ myserver generate_reports = 1 expire_hours = 24

Ang pangalawang elemento ay isang variable ng Boolean na tumutukoy sa pagbuo ng mga ulat (0 ay hindi bumubuo ng mga ulat, ang 1 ay bumubuo sa kanila). Ang unang elemento, sa halip, ay ang email address kung saan ipapadala ang mga nilikha na ulat. Tinutukoy ng pangatlo at panghuling item ang bilang ng mga oras na dapat maghintay si Apt upang suriin para sa mga update na magagamit sa mga opisyal na server.

Kung gumagamit ka ng isang proxy, huwag kalimutang idagdag ang mga sumusunod na item:

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

Upang ma-verify na gumagana ito, maaari mong ma-access ang iyong lokal na cache sa pamamagitan ng url http: // server_name / apt-cacher / at lilitaw ang isang pahina na nagpapakita ng pagsasaayos ng apt-cacher. Tandaan na ang 'server_name' ay dapat mapalitan ng IP ng makina na iyong itinalaga bilang 'server', iyon ay, bilang deposito ng lokal na cache ng packet.

Pag-configure ng mga kliyente

Ngayon ang kailangan mo lang gawin ay baguhin ang mga mapagkukunan. Listahan ng mga kliyente upang dumaan sila sa server. Kung ang server ng IP ay 123.123.123.123, kailangan mong idagdag ito sa bawat linya ng mga mapagkukunan na listahan, at mag-ingat din na ang lahat ay mag-refer sa parehong server, kung hindi man ay walang epekto ang cache.

sudo gedit /etc/apt/sources.list
Tandaan: Mag-ingat! Sa Debian at mga derivatives nito ang 'mga pinagmulan.list' ay nakaimbak sa '/ etc / apt'. Gayunpaman, sa iba pang mga pamamahagi maaari itong maimbak sa ibang landas. Kung sakaling hindi mo mahanap ang file maaari mo itong matagpuan sa pamamagitan ng pagpasok ng 'hanapin ang mga mapagkukunan.list' sa isang terminal.

Sa sandaling mabuksan ang file, ang IP ng aming server ay 123.123.123.123, ang lahat ng mga linya ay dapat mabago gamit ang mga sumusunod na pamantayan:

# Orihinal #deb http://ftp.us.debian.org/debian/ sid main contrib non-free # deb-src http://ftp.us.debian.org/debian/ sid main contrib non-free # Binago deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid main contrib non-free deb-src http://123.123.123.123/apt-cacher/ftp.us.debian. org / debian / sid pangunahing kontrib na hindi libre

Tulad ng nakikita mo, kailangan mong idagdag ang server IP + '/ apt-cacher /' sa simula ng URL. Pagkatapos ay pupunta sa natitirang bahagi ng orihinal na linya.

Mga istatistika ng trapiko

Kung naidagdag mo ang elemento na 'generate_reports = 1' sa file na 'apt-cacher.conf', ang apt-cacher ay bubuo ng mga istatistika ng pag-access, na maaari mong ma-access sa url '/ apt-cacher / ulat'.

Kung, sa anumang kadahilanan, kailangan mong bumuo ng mga istatistika bago ang bilang ng mga oras na itinakda sa 'apt-cacher.conf', patakbuhin ang sumusunod na utos:

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

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Eduardo dijo

    Pagbati, mahusay na kontribusyon, ang tanong ko ay kung may alam ka bang anumang application na nagpapahintulot sa iyo na magkaroon ng isang sentralisadong lalagyan upang mag-apply ng mga patch ngunit sa iba't ibang mga pamamahagi, iyon ay, panatilihing nai-update ang maraming mga machine nang sabay-sabay ngunit may iba't ibang mga pamamahagi

  2.   Gumamit tayo ng Linux dijo

    Kumusta Eduardo! Ang totoo nakikita ko itong napakahirap. Kung may natuklasan kang anumang paraan, huwag ihinto ang pagpapaalam sa akin.
    Malaking yakap! Cheers! Paul

  3.   Si chiche dijo

    Gumagamit ako ng papet upang malayuang pamahalaan ang mga server na aking pinamamahalaan.

  4.   Gumamit tayo ng Linux dijo

    Oo. Maraming salamat sa impormasyon. Naitama ko na.
    Yakap! Paul

  5.   Geniutrixone dijo

    Hello,

    ang tutorial ay napakahusay ... Mayroon akong saklaw .. sa Debian Lenny ang pinagmulan.lst ay nasa path / etc / apt /

    tungkol

  6.   sepulvedamarcos dijo

    tanong….

    kung mayroon akong isang pares ng mga machine na may parehong distro ... ngunit hindi sa parehong mga programa .... Paano mo malalaman kung ano ang i-download mula sa mga opisyal na repos .... ibinababa ang lahat ??? ...

  7.   Gumamit tayo ng Linux dijo

    Magaling ang iyong katanungan. Kinakalkula ko na ang system ay dapat gumana ng pareho sa isang karaniwang Apt: kung hindi ito makita sa cache, nai-download ito mula sa opisyal na mga repository. Sa kasong ito, ipinapaalam ng isa sa mga "client" machine ang "server" na kailangan nito ng isang pag-update ayon sa listahan ng mga pag-update sa "server" ng iyong network. Upang mai-install ang pag-update na iyon kinakalkula ko na unang hahanapin ang package sa cache ng server. Kung hindi ito mahanap, i-download ito mula sa opisyal na mga repository, nai-save ito sa server at, mula doon, naka-install ito sa makina na kinakailangan ito. Magagamit ang package na ito sa cache ng "server" upang mai-install din ito ng ibang mga machine sa iyong network mula doon.

    Mangyaring huwag mag-atubiling sumulat kung hindi ako sapat na malinaw.

    Isang yakap! Paul

  8.   Mishudark dijo

    Sa palagay ko mayroong isang ERROR ... ang mga pakete ay hindi nakaimbak sa / etc / apt…. sila ay talagang manatili sa / var / cache / apt / archives

  9.   Gumamit tayo ng Linux dijo

    Ang totoo hindi ko alam.
    Oo naman mayroong isang paraan upang magawa ito. 🙁
    Kung malalaman mo, ipaalam sa akin at idagdag ko ito.
    Cheers! Paul

  10.   Alvaro dijo

    Wala sa mga dynamic na ip, di ba?

  11.   marka dijo

    Tila sa mas maraming kasalukuyang mga distrito kailangan mong idagdag ang port (3142 bilang default) sa URL ng lokal na network. Ito ay magiging ganito: http://mi_servidor:3142/apt-cacher

  12.   alfredo torrealba dijo

    Mayroon akong lubuntu 16.04 na nagawa ito sa ilalim ng sistemang ito at kung ito ay nagtrabaho para sa kanya? At ang nais kong tanungin ay ang sumusunod kung mai-install ko ang server na ito at ang aking iba pang mga machine ay walang parehong mga programa kapag humihiling sa aking mga client machine para sa pag-install ng isang programa na mayroon ako sa server, sa palagay mo ba nai-install ko direkta ito mula sa lokal na server o ang kahilingan sa opisyal na repository server ¿?