AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 51590
Accepted
Insyte
Insyte
Asked: 2009-08-08 10:39:36 +0800 CST2009-08-08 10:39:36 +0800 CST 2009-08-08 10:39:36 +0800 CST

如何在多台机器上高效管理 apt?

  • 772

我使用 puppet 管理大约 30 台 Ubuntu 服务器。我已经看到很多关于 cron-apt 和 apticron 的参考资料作为保持其软件包最新的方法,但我一直无法找到一种方法来集中管理该过程。使用 cront-apt/apticron 我仍然需要登录到每个主机并运行aptitude update以执行更新。更不用说更新核心包时来自所有 30 台机器的审查通知。

一定有更好的方法。有什么建议么?

ubuntu
  • 7 7 个回答
  • 9889 Views

7 个回答

  • Voted
  1. jeff
    2009-08-08T11:09:34+08:002009-08-08T11:09:34+08:00

    一位同事发现并简要研究了 apt-dater,它是一个“基于终端的远程包更新管理器”。

    您使用基于 curses 的界面来管理所有主机或主机组等的更新。支持完整 apt 会话的日志记录,包括可能遇到的任何错误等。

    依赖托管机器上的 ssh 和 sudo。

    见https://github.com/DE-IBH/apt-dater

    我自己没有使用它,所以我不能认可它,但它听起来接近你正在寻找的东西。

    • 14
  2. womble
    2009-08-08T12:53:08+08:002009-08-08T12:53:08+08:00

    由于您已经在使用 Puppet,因此执行此操作的最简单方法(也是更改控制/跟踪目的的最佳方法)是在 puppet 清单中指定要安装的所需软件包版本。你密切关注安全公告列表,当你使用的东西通过时,你只需更新 Puppet 说“安装这个包的这个新版本”。假设您在清单上使用修订控制,那么您就会知道“策略”何时更改,并且 Puppet 的报告会准确显示更改的实际时间(因此您可以轻松地将其与任何以后的日志事件关联)。

    • 5
  3. Best Answer
    Avery Payne
    2009-08-08T10:59:45+08:002009-08-08T10:59:45+08:00

    你可能对风景感兴趣。这是用于管理大型 Ubuntu 部署的“官方”管理工具,Canonical 可能非常渴望获得您的资金来使用它。

    重新编辑:

    一、免责声明;我没有为 Debian 或 Ubuntu 使用镜像,所以我对软件不熟悉。

    其次,很抱歉,apt-mirror 似乎是一个“太重”的解决方案。最初的想法是您将拥有一个单独的测试机器(或测试环境,可能是虚拟机?)来部署更新。一旦您对更新的性能感到满意,您可以将包拉入/放入您的“部署”镜像(将有来自官方来源的本地镜像,以及仅用于您希望部署的更新的辅助镜像)。然后,远程机器将在预设时间运行更新,并将其从您的“部署”镜像拉到每台机器上,一个 cron 作业包括:

    apt-get update && apt-get upgrade --quiet --assume-yes
    

    不幸的是,当我开始阅读细节时,它似乎apt-mirror会拉出各种各样的东西,而不仅仅是你想要的包。所以,我将放弃这个想法,尽管这个概念有一些优点。

    • 3
  4. Thiago Figueiro
    2009-08-08T13:00:58+08:002009-08-08T13:00:58+08:00

    看看 clusterssh (apt-get install clusterssh):

    $ cssh server1 server2 server3 ...

    • 2
  5. theotherreceive
    2009-08-08T18:37:49+08:002009-08-08T18:37:49+08:00

    之前没有真正考虑过,我的第一个想法将类似于 avery 的建议,特别是如果您已经有一个测试环境。

    基本上,您将生产机器设置为从您自己的本地存储库自动升级,并且仅在将测试环境升级到您运行的任何内容的最新版本后才更新此存储库。

    Apticron 不能很好地扩展,它被设计为在非常小的环境中运行,但它确实有一些优点:

    • 它不仅会向您发送列表,还会向您发送要升级的软件包的变更日志。
    • 要获取更新日志,它会下载软件包,因此当您升级时,您不必等待它们下载。
    • 1
  6. lgaggini
    2015-05-14T02:11:42+08:002015-05-14T02:11:42+08:00

    有时我写了一个低级/肮脏的自动化Fabric脚本(fabfile)来满足类似的要求,你可以在以下位置查看:

    https://gist.github.com/lgaggini/2be3c5bb47b8ce9267bd

    • 0
  7. f b
    2021-01-17T13:10:39+08:002021-01-17T13:10:39+08:00

    shell脚本来做呢?您在哪里还为每个节点设置了单独的包?

    for each serverlist as server (eg server1 server2 server3...)
       scp installupdate.sh root@$server:/tmp/installupdate.sh
       ssh root@$server "/tmp/installupdate.sh" # manage installation/ updates manually or set auto "yes" to requests
       ...
       # next server
    

    这可以针对单个端点进行定制或使其完全自动运行。

    这样我用它来更新一些云服务器的 web 和 db 服务器。有些人得到特殊的包裹,其他人没有,它可以扩展。

    就像发布的@lgaggini

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve