如何同时更新多台计算机

在管理多台计算机的情况下,Apt会非常有用,因为它使更新和应用每台计算机的安全补丁程序的过程非常简单。 问题在于,使用传统方法,一旦有更新出现,您就必须为每台机器下载所有新软件包的副本,这意味着我们的带宽和带宽会大量消耗。幸运的是,有一种方法可以让我们更新其中一台计算机,并从那里更新构成我们网络的其余计算机。 这种方法除了可以降低成本并优化带宽使用之外,还可以避免软件包在不同机器上的重复:它们都使用我们的“缓存服务器”安装软件包。


当您在不同的机器上运行相同的分发时(无论是在工作中,在计算机实验室中,在服务器``农场'',在群集中,甚至在您的小型家庭网络上),在网络上创建缓存存储库很有用,这样从官方存储库下载软件包后,所有其他计算机都会从该缓存存储库下载该软件包,该存储库存储在网络上的一台计算机上,我们称之为“服务器”。 通过这种方式,可以将从一台计算机下载的更新安装在另一台计算机上,而不必从官方存储库中再次下载它们。

让我们先来看一些我不推荐的“非传统”解决方案,但是当解决这个问题时肯定会想到这些。

分享/等/ apt

当您在Debian发行版(或其衍生版本)上安装软件包时,该软件包将本地存储在“ / etc / apt”目录中。 需要软件包时,Apt首先在此目录中查找是否有本地副本(即缓存),从而避免了不必要的下载。 结果,你们中的一些人肯定会认为解决该问题的一种好方法是选择一台计算机,我们将其指定为一种服务器,使用官方存储库对其进行更新,并共享您的目录“ / etc / apt”以及网络上的其余计算机。 但是,此方法可能导致与阻止文件“ sources.list”有关的问题。 通常,它不是最广泛使用或最方便的解决方案。

移动包裹

除了共享一个通用的“ / etc / apt”目录,另一种替代方法是让每台计算机使用其自己的本地缓存目录,但生成一个脚本,该脚本负责将软件包从一台计算机复制到另一台计算机,以便它们都保留下来。更新。 执行此任务的工具可以是“自动移动”的,但是老实说我不建议这样做,因为它对最终用户而言不够透明。 此外,这可能意味着完全不必要的磁盘空间使用,因为所有软件包都必须复制到每台计算机上。

专用缓存系统

解决此问题的最佳方法是使用专用的缓存系统。 简而言之,它的目的是在网络上的一台计算机上创建正式服务器的副本,然后配置其余计算机,以使它们无需从正式服务器中查找更新,而是这样做。使用此本地缓存(或副本)。

有许多设计用于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

为了验证它是否有效,您可以通过以下网址访问本地缓存: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 main contrib non-free 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.   喹诺酮

    你好,

    本教程非常好...我有一个范围..在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,谁在此系统下完成此任务,并且对他有用吗? 我想问的是以下内容,如果我在客户端计算机上请求安装服务器上的程序时是否安装了该服务器,而其他计算机上没有相同的程序,您是否认为我已安装它是直接从本地服务器发出的还是向官方存储库服务器发出的请求?