如何同時保持多台機器最新

在管理多台計算機的情況下,Apt會非常有用,因為它使更新和應用每台計算機的安全補丁程序的過程非常簡單。 問題在於,使用傳統方法,一旦有更新出現,您就必須為每台機器下載所有新軟件包的副本,這意味著我們的帶寬和帶寬會大量消耗。幸運的是,有一種方法可以讓我們更新其中一台計算機,並從那裡更新構成我們網絡的其餘計算機。 這種方法除了可以降低成本並優化帶寬使用之外,還可以避免軟件​​包在不同機器上的重複:它們都使用我們的“緩存服務器”安裝軟件包。


當您在不同的機器上運行相同的分發時(無論是在工作中,在計算機實驗室中,在服務器``農場'',在群集中,甚至在小型家庭網絡上),在網絡上創建緩存存儲庫可能很有用,這樣從官方存儲庫下載軟件包後,所有其他計算機都會從該緩存存儲庫下載該軟件包,該存儲庫存儲在您網絡上的一台計算機上,我們稱之為“服務器”。 這樣,從一台計算機下載的更新可以安裝在其他計算機上,而不必從官方存儲庫重新下載。

讓我們首先來看一些我不推薦的“非傳統”解決方案,但是一定會在解決這個問題時想到。

分享/等/ apt

當您在Debian發行版(或其衍生版本)上安裝軟件包時,該軟件包將本地存儲在“ / etc / apt”目錄中。 當需要軟件包時,Apt首先在此目錄中查找是否有本地副本(即緩存),從而避免了不必要的下載。 結果,你們中的一些人肯定會認為解決該問題的一種好方法是選擇一台計算機,我們將其指定為一種服務器,使用官方存儲庫對其進行更新,並共享您的目錄“ / etc / apt”以及網絡上的其餘計算機。 但是,此方法可能導致與阻止文件“ sources.list”有關的問題。 通常,它不是最廣泛使用或最方便的解決方案。

移動包裹

除了共享一個通用的“ / etc / apt”目錄外,另一種選擇是,每台計算機使用自己的本地緩存目錄,但生成一個腳本,該腳本負責將軟件包從一台計算機複製到另一台計算機,以便它們都保留下來。更新。 可以執行此任務的工具是“ apt-move”,但老實說我不建議這樣做,因為它對最終用戶而言不夠透明。 此外,這可能意味著完全不必要的磁盤空間使用,因為所有軟件包都必須複製到每台計算機上。

專用緩存系統

解決此問題的最佳方法是使用專用的緩存系統。 簡而言之,它的目的是在網絡中的一台計算機上創建正式服務器的副本,然後配置其餘計算機,以便它們無需從官方服務器中查找更新,而是這樣做。使用此本地緩存(或副本)。

有許多設計用於Apt的系統,包括apt-cacher,apt-proxy和apt-cached。

在這裡,我們將處理最容易使用的apt-cacher。

APT緩存器

Apt-cacher與其他存儲庫緩存系統非常不同,因為它不是獨立程序,而是在Apache下作為CGI腳本運行。 這具有多個優點,例如使其成為一個小型且簡單的工具,但同時又非常強大,因此更加健壯,因為它不需要自己的代碼來處理協議,而且它非常靈活,因為您可以使用如果您想限制已啟用訪問緩存的計算機數量,則使用Apache的訪問控制機制。

Apt-cacher只需要安裝在一台計算機上,您決定將其用作本地存儲庫高速緩存。 然後,必須將網絡上的其餘計算機配置為從緩存而不是從官方服務器請求更新。

服務器配置

僅安裝

sudo apt-get安裝apt-cacher

該軟件包具有與apache,perl和wget的依賴關係,因此如果您以前沒有安裝過,它將安裝它們。

安裝後,建議重新啟動Apache:

/etc/init.d/apache重新啟動

最後,您要做的就是調整腳本的默認參數。 我在終端上寫道:

須藤gedit /etc/apt-cacher/apt-cacher.conf

通常,所有默認設置都可以,但是建議調整以下三個:

admin_email = mimail @ myserver generate_reports = 1 expire_hours = 24

第二個元素是一個布爾變量,用於確定報告的生成(0不生成報告,1生成報告)。 相反,第一個元素是將創建的報告發送到的電子郵件地址。 第三項也是最後一項決定了Apt等待檢查官方服務器上可用更新的小時數。

如果您使用的是代理,請不要忘記添加以下各項:

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

為了驗證它是否有效,您可以通過URL http:// server_name / apt-cacher /訪問本地緩存,然後會出現一個頁面,顯示apt-cacher配置。 請記住,“ server_name”必須替換為您指定為“ server”的機器的IP,即作為本地數據包高速緩存的存儲庫。

客戶端配置

現在,您要做的就是修改客戶端的sources.list,以便它們通過服務器。 如果服務器的IP為123.123.123.123,則必須將其添加到sources.list的每一行中,並且要注意它們都引用同一台服務器,否則緩存將無效。

sudo gedit /etc/apt/sources.list
注意:要小心! 在Debian及其衍生版本中,“ sources.list”存儲在“ / etc / apt”中。 但是,在其他發行版中,它可能存儲在其他路徑中。 如果找不到該文件,則始終可以通過在終端中輸入“ locate sources.list”來找到它。

打開文件後,我們服務器的IP為123.123.123.123,所有行均應使用以下條件進行修改:

#原始#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#已修改deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid主要貢獻者非免費的deb-src http://123.123.123.123/apt-cacher/ftp.us.debian。 org / debian / sid main contrib non-free

如您所見,您必須在URL的開頭添加服務器IP +'/ apt-cacher /'。 然後轉到原始行的其餘部分。

流量統計

如果在文件“ apt-cacher.conf”中添加了元素“ generate_reports = 1”,則apt-cacher將生成訪問統計信息,您可以使用URL“ / apt-cacher / report”進行訪問。

如果出於任何原因需要在“ apt-cacher.conf”中設置的小時數之前生成統計信息,請運行以下命令:

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

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   愛德華多 他說:

    問候,出色的貢獻,我的問題是,如果您知道有沒有一個應用程序可以讓您擁有一個集中的存儲庫來應用補丁程序,但可以將其應用於不同的發行版,即,同時保持多台計算機的更新但具有不同的發行版

  2.   讓我們使用Linux 他說:

    嗨,愛德華多! 事實是,我覺得這很困難。 如果您發現任何方法,請不要停止讓我知道。
    一個大大的擁抱! 乾杯! 保羅

  3.   奇切 他說:

    我使用puppet來遠程管理所管理的服務器。

  4.   讓我們使用Linux 他說:

    是的,非常感謝您提供的信息。 我已經改正了。
    擁抱! 保羅

  5.   喹諾酮 他說:

    HOLA,

    本教程非常好...我有一個範圍..在Debian Lenny中,source.lst位於路徑/ etc / apt /

    問候

  6.   塞普爾韋達馬科斯 他說:

    題…。

    如果我有幾台具有相同發行版的機器,但是沒有相同的程序……。 您如何知道要從官方存儲庫下載什麼? 降低一切??? ...

  7.   讓我們使用Linux 他說:

    您的問題很好。 我計算出該系統的工作原理應與常見Apt中相同:如果在緩存中找不到該系統,則會從官方存儲庫下載該系統。 在這種情況下,其中一台“客戶端”計算機會根據網絡“服務器”上的更新列表,通知“服務器”它需要更新。 要安裝該更新,我計算出它將首先在服務器緩存中查找該軟件包。 如果找不到它,則從官方存儲庫下載它,將其保存在服務器上,然後從那里安裝在需要它的計算機上。 該軟件包將在“服務器”緩存中可用,以便網絡上的其他計算機也可以從那里安裝它。

    如果我不夠清楚,請隨時寫信。

    一個擁抱! 保羅

  8.   米舒達克 他說:

    我認為有一個錯誤…軟件包未存儲在/ etc / apt ...中。 他們實際上停留在/ var / cache / apt / archives中

  9.   讓我們使用Linux 他說:

    事實是我不知道。
    當然,有一種方法可以做到。 🙁
    如果您發現了問題,請告訴我,我將其添加。
    乾杯! 保羅

  10.   阿爾瓦羅 他說:

    沒有動態IP,對吧?

  11.   馬爾塞 他說:

    顯然,在最新發行版中,您必須將端口(默認為3142)添加到本地網絡的URL。 它看起來像這樣: http://mi_servidor:3142/apt-cacher

  12.   阿爾弗雷多·托雷拉爾巴 他說:

    我有lubuntu 16.04,誰在此系統下完成此任務,並且對他有用嗎? 我想問的是以下內容,如果我在客戶端計算機上請求安裝服務器上的程序時是否安裝了該服務器,而我的其他計算機沒有相同的程序,您是否認為我是直接從本地服務器安裝的呢?到官方存儲庫服務器的請求