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 / 问题 / 41864
In Process
Jan Szumiec
Jan Szumiec
Asked: 2009-07-17 13:16:46 +0800 CST2009-07-17 13:16:46 +0800 CST 2009-07-17 13:16:46 +0800 CST

一次升级多个 linux 桌面工作站的最佳方法是什么?

  • 772

在工作中,我们有几个 Ubuntu Linux 工作站。我正在寻找一种好的/可靠/快速的方法来一次在所有盒子上安装一组软件包。我现在想做的是:

  1. 在一个全新的机器上安装 Ubuntu 并将其用作主磁盘映像。
  2. 将分区内容克隆或复制到所有框。
  3. 当一个包/一组包需要更新时,在主磁盘映像上应用更改。
  4. 将主磁盘映像转储到中央 NFS 服务器。
  5. 使用 PXE/无盘引导将所有工作站置于恢复模式。
  6. 每周一次将主磁盘映像克隆到所有工作站。
  7. 使用配置管理工具(我应该使用什么?)来设置 /etc 和朋友。

有没有其他人做过类似的事情?你是怎么处理的?

我已经在使用 NFS/NIS,所以我不会丢失任何用户数据。

hard-drive linux ubuntu image
  • 8 8 个回答
  • 890 Views

8 个回答

  • Voted
  1. Brent
    2009-07-17T13:32:15+08:002009-07-17T13:32:15+08:00

    我认为puppet可以帮助你解决这个问题。您实际上是在管理一组工作站而不是服务器,但它应该以相同的方式工作。这样您就可以根据任何硬件差异等创建不同的组。

    • 2
  2. Aiden Bell
    2009-07-17T13:27:35+08:002009-07-17T13:27:35+08:00

    您可以将其全部复制给它们,但大多数 linux 发行版都包含一种为安装过程编写脚本的方法。优点是它会询问您是否出现问题,而只是将其重影并没有。

    使用 Fedora(以及其他),您可以编写脚本,以便所有工作站登录到中央控制/警报源,以便他们自主执行软件包安装,但在出现差异和问题时询问。

    作为替代方案,如果您有混合机器类型,请将它们的 MAC 地址分组到硬件设置组中,并使用实时 CD 进行rsync和安装 grub,具体取决于 MAC/硬件设置。

    真的有很多方法。无头安装教程将提供一些带或不带屏幕的好主意。

    编写 Fedora/Anaconda 安装过程的脚本

    • 1
  3. Kevin Kuphal
    2009-07-17T13:38:18+08:002009-07-17T13:38:18+08:00

    您可以考虑的另一个选择是使用“yum update”等现有流程从您运行的存储库中提取软件包,并强制这些工作站在特定时间全部更新。您需要做的就是更新主工作站,记下您需要分发的软件包,然后将它们放入您的内部存储库。

    • 1
  4. Mei
    2009-07-17T16:00:02+08:002009-07-17T16:00:02+08:00

    我建议创建一个APT 存储库。您可以将自己的包添加到存储库,并使用 cronjob 每周使用 apt-get 更新包。apt-get 作业可以自动进行,并且由于存储库是您自己的,因此您可以根据需要更新或不更新它。

    您需要做的就是设置存储库并在所有机器上配置 APT 以使用它。我会推荐 cfengine 来配置所有的系统;因此,您不必逐一访问来更新每一个的 APT。

    你甚至可以创建一个包含存储库配置的包;事实上,我会推荐它。然后,当您构建一个新环境时,您的本地 APT 配置只是一个 apt-get away。

    • 1
  5. Matt Simmons
    2009-07-17T18:57:16+08:002009-07-17T18:57:16+08:00

    我很难相信没有人提到过Redhat Spacewalk。

    它是等同于 Redhat Network 的 Satellite 系统的免费开源软件。它允许您管理 CentOS、Fedora 或 Scientific Linux 安装的整个基础架构。它本质上是为了你想做的事情。

    当然,您使用的是 Ubuntu,而不是 Redhat 派生的发行版。幸运的是,Ubuntu 世界有你在Landscape中寻找的东西。它与支持合同一起免​​费提供,或者它是 150 美元/节点。昂贵,但这是一个权衡。

    如果您不使用 Landscape(或迁移到 RH 进行太空行走),那么 Puppet/CFengine 可能是您最好的选择。

    • 1
  6. Thorbjørn Ravn Andersen
    2009-07-17T13:42:15+08:002009-07-17T13:42:15+08:00

    ssh 进入每个盒子并运行“apt-get install whatever”。

    考虑让所有客户端都信任来自管理主机的公共 ssh 密钥,因此您无需提供密码即可。

    • 0
  7. Bob
    2009-07-17T14:00:11+08:002009-07-17T14:00:11+08:00

    如果您使用的是 Ubuntu 等基于 debian 的发行版,请查看预播:

    DebianInstaller 预种子

    这允许您指定您在安装期间设置的几乎所有内容,例如网络、apt、软件包等。当您启动安装 cd 时,附加:

    preseed/url=http://blah/preseed.cfg
    

    到内核​​启动菜单,它将使用您的预置配置进行安装。

    • 0
  8. aright
    2009-07-17T14:22:45+08:002009-07-17T14:22:45+08:00

    我曾经是我的电气工程计算机实验室的管理员,大约有 20 台计算机,都是 Ubuntu。我喜欢总是使用最新的 Ubuntu 版本,所以我升级了很多。

    计算机实验室的设置是这样的,我有一个 Debian master-box(很少更新/升级),我用它来托管学生分支的网页,管理用户帐户(使用 LDAP,允许每个用户坐在任何计算机并使用可用的主文件夹登录),运行维护脚本等。

    我用来更新的方法(我认为这有点粗略)包括在发布时用最新版本编写一张 CD,然后手动将它们放入驱动器中,重新启动并完成常规安装过程。安装完成后,我将生成的公共 RSA 密钥(一次)复制到主机(到 /root/.ssh/ 文件夹中),从而让 Debian 机器控制主机机器。所以在主控箱上,我有一个 python 脚本(它当然可以是任何脚本语言),它使主机与我想要的配置同步,将配置文件复制到主机箱(例如 LDAP 配置文件,预先构建的 gnome 配置文件等),apt-get 所需的包(一个漫长的过程),

    这个过程虽然粗略且不复杂,但只需要我在场才能从 ubuntu 安装 CD 实际启动“待更新”框并浏览 ubuntu 的几个安装屏幕,配置 /etc/network/interfaces 文件访问网络,然后在主机上运行脚本,然后我就可以去做别的事情了。

    如果您想了解更多信息,请更具体地发布您想要自动化的内容,无论是设置当前正在运行的 linux 发行版的新发行版的实际过程,还是设置需要构建源文件等的程序(因为我过去我也为诸如 Eclipse(直接从包管理器中与 Ubuntu 不兼容)、XCircuit(从包存储库中充其量是“错误”、Matlab(需要在 cd 中打孔))等程序构建我自己的包- 键和更多)...

    希望有帮助!=)

    • 0

相关问题

  • 保护新的 Ubuntu 服务器 [关闭]

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

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