你好,我运行了几个不同的 Linux 发行版和架构,有些服务器的更新速度非常慢,例如 ARM 上的 ubuntu 的更新速度以 KB/s 为单位。我正在学习自动化,我该怎么做
- 创建仅限本地的 Linux 镜像/缓存
- 定期自动更新镜像/缓存
- 自动唤醒路由器以更新缓存,并在完成后关闭它
- 此外,如果可能的话,在文件服务器更新后更新其他虚拟机/设备。
我也可以访问我的路由器来创建静态 DNS 条目,并且我有一个文件服务器,它在打开时会消耗大量电量,但它非常快(执行 gzip 时接近 1GB/s,这是 raid 的峰值性能)。仅保持开启状态就需要超过 200W,无论我做什么都无法将功率降低到 100W 以下,所以我决定让它处于最大性能,只在需要时才打开它。
我弄坏了一块 ARM 主板的操作系统,无法打开它来访问 SD 卡,因为其中一个 ubuntu 升级速度太慢,超时并搞乱了固件更新。我想,既然我经常使用几个发行版,我不妨从本地缓存完成更新过程,作为学习 ansible 的练习。
我希望获得帮助以学习如何做到这一点,无论是在这里还是链接到资源以了解如何做我想做的事情。
答案1
由于推荐规则,这可能有点偏离主题,但无论如何......
这里有很多内容需要解开,但我首先要看的是:
- CentOS -
reposync
工具,Ubuntu -apt-mirror
工具。 cron
用于调度- 不确定你是否可以轻松自动化路由器,除非你可以用其他东西向服务器发送 LAN 唤醒数据包
- 你可以尝试并安排在其他虚拟机/服务器上进行更新,但除此之外,仅拥有包的本地副本就很有帮助。
更一般地讲,您可能希望了解 Bash 脚本或 Python 脚本等工具,以便自动执行一些小任务。我倾向于先使用 Bash 来处理一些事情,如果事情变得太复杂,则使用 Python,如果真的需要静态类型,则使用 Golang,否则我将分发该工具。
答案2
对于基于 Debian 和 Ubuntu 的系统,使用apt-cacher-ng
instad 而不是 apt mirror是否更有益?
做出此决定的原因在于,您实际上只保留了请求的包,而没有花时间更新任何内容
我自己用这个已经 10 多年了,以降低成本和流量。它支持任何类型的代理分发,应该是大多数。
好的,有一点是您需要捕获一次包,但如果需要一次以上,它将由缓存传送。