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 / 问题 / 32840
Accepted
pQd
pQd
Asked: 2009-06-29 02:30:03 +0800 CST2009-06-29 02:30:03 +0800 CST 2009-06-29 02:30:03 +0800 CST

小规模的自动化 linux 部署和配置管理 - 值得吗?

  • 772

我即将部署 ~25 台运行Debian的服务器。这些机器将具有不同的角色——Web 服务器、Java 应用服务器、代理、MySQL 机器。未来环境可能不会增长太多 - 未来 2 年可能会增加 2-5 台服务器。

我可能会使用fai进行系统安装,但我不确定是否值得为如此小规模添加cfengine或puppet集中配置管理。

对于这种规模的环境,配置管理是否有意义?

linux debian configuration-management automated-install
  • 7 7 个回答
  • 6550 Views

7 个回答

  • Voted
  1. Best Answer
    David Pashley
    2009-06-29T02:47:25+08:002009-06-29T02:47:25+08:00

    我建议使用 Debian 预播的混合,你给安装程序一个文本文件来回答它会问的所有问题,和 Puppet。

    使用预置而不是 FAI 的原因是您不必先设置映像并处理使其保持最新状态。您最终将获得与手动完成所有安装非常相似的安装。当您安装新版本时,您必须使用更改更新配置文件,而不必重建新映像。

    当您有多个服务器执行相同的角色并且您希望它们相同时,配置管理工具特别有用,例如网络服务器集群。但是,它们对于配置所有服务器的基本安装也很有用。您将希望在所有服务器上安装特定的软件包,例如 ntpd 和 MTA。您将要更改所有服务器上的配置文件。另一个好处是您可以将清单保存在 subversion 中,并记录服务器上发生的更改以及更改的人员和原因。在服务器发生故障并且您需要快速重建它的情况下,配置管理也可以挽救生命。安装操作系统(使用 FAI 或预置),安装 puppet 并离开它,完全按照以前的方式构建。显然,您需要保留数据备份。

    配置管理需要奉献精神,以确保您只使用它进行更改,并且将有前期成本设置,但是一旦您有了工作设置,您将不会后悔。

    Puppet 是您提到的两种工具中更现代的一种。我真的向任何人推荐它。配置是一种声明性语言,易于构建更高级别的结构。它周围还有一个非常大的社区,总是欢迎人们在邮件列表或 IRC 频道上提供帮助。

    • 29
  2. nixgeek
    2009-06-29T02:35:48+08:002009-06-29T02:35:48+08:00

    我建议将 CFengine 用于任何超过 2-3 个框并且您有一些“模板”概念或执行特定角色的服务器的环境。

    为什么?简而言之,它减少了错误,您拥有一个工具,可以确保文件/目录权限在环境中的任何地方都是正确的,并且当您推出更多服务器时,该工具绝对可以处理所有事情并且从不犯任何错误。

    与之相比,即使是熟练的系统管理员在 12 小时轮班结束时推出 Web 服务器时,事情已经出错了......他们是否可能记得需要进入 /etc/random/location 的讨厌的小配置文件/foo/bar 否则应用程序将默默地无法做一些相当重要的事情,比如账单客户?:)

    像 CFengine 这样的工具也是执行环境范围安全更新的好方法。将 Nagios 配置 (NRPE) 放到所有盒子上也是轻而易举的事。无论您是处理五个盒子还是五百个盒子,您都可以使用 CFengine 节省时间。

    可能值得注意的是,我的环境稍微大一点,但是我也为比你注意到的更小的环境部署了 CFengine,因此推荐!

    可能你的下一个问题是 CFengine vs Puppet?这是一个更困难的决定,而且我总是选择 CFengine,因为(在早期)Puppet 的一些不成熟,特别是在错误记录方面......这些天我真的不确定 - 有一个游戏'n see?回顾我与 Puppet 的具体问题,它们与 SSL 证书相关,痛苦地回忆起我花了 3 个小时诊断 irc.freenode.net/#puppet 中的服务器 <-> 客户端连接问题的时间,其中有一些庞大的 RTFM 和 RTFS才发现一个错误,没有被记录,卢克说,“啊,这真的很难修复”,但从来没有。:(

    • 10
  3. Jauder Ho
    2009-06-29T12:11:27+08:002009-06-29T12:11:27+08:00

    除了 cfengine 和 puppet,还有chef。我强烈建议使用其中一种工具,因为事情总是会朝着意想不到的方向发展。这有助于在集中位置管理事物。

    要认识到的重要一点是,你可能不会得到所有东西,但如果你至少能得到 90%,那就是一个开始。此外,它很有趣,从长远来看会让你的生活更轻松。最后,前进是一项很好的技能。

    • 5
  4. ThorstenS
    2009-07-02T09:11:03+08:002009-07-02T09:11:03+08:00

    自从 5 年以来,我一直在使用 cfengine 来安装 debian(现在从 woody 到 lenny)。使用 etch 我构建了一个自定义的 debian-installer。感谢 preseed 出现了一个问题:“主机名是什么”。在此 cfengine 配置整个服务器之后(dns+dhcp 与 dnssec、samba、ntpd、默认 (Samba) 用户和密码、ssh、openvpn、apache vHosts、在 LVM 上使用 rsnapshot 备份、自定义 webminmodules 等)。

    即使我只安装一台服务器,我也会使用工具箱中的 cfengine-scripts,如下所示:

    control:
    
      Repository  = ( $(CFREPO) )
      IfElapsed = ( 0 )
      Syslog = ( on )
      actionsequence = ( editfiles shellcommands )
      CPTYPE = ( sum )
    
    editfiles:
      { /etc/sysctl.conf
        # don't spam on tty:
        BeginGroupIfNoSuchLine "kernel.printk.*=.*2 4 1 7"
          DeleteLinesMatching "^kernel.printk.*=.*"
          Append "kernel/printk=2 4 1 7"
        EndGroup
        # no E(xplicit?) C(ongestion) N(otification) 
        BeginGroupIfNoSuchLine "net.ipv4.tcp_ecn.*=.*0"
          DeleteLinesMatching "^net.ipv4.tcp_ecn.*=.*"
          Append "net/ipv4/tcp_ecn=0"
        EndGroup
        BeginGroupIfNoSuchLine "net.ipv4.ip_forward.*=.*1"
          DeleteLinesMatching "^net.ipv4.ip_forward.*=.*"
          Append "net/ipv4/ip_forward=1"
        EndGroup
        DefineClasses "configchange_sysctl"
      }
    
    shellcommands:
      configchange_sysctl::
        "/sbin/sysctl -p /etc/sysctl.conf"
    
    # vim: set ts=2:
    

    我喜欢 cfengine,因为 cf2 脚本在某种程度上是人类可读的。

    因此,使用自动配置管理工具是绝对值得的。

    /索斯滕

    • 3
  5. SAnnukka
    2010-01-25T11:08:56+08:002010-01-25T11:08:56+08:00

    即使对于一个小网站,它也必须是值得的。随着您的成长,一切都与一致性有关。而且您知道您的网站将会增长。最好在你还小的时候开始。Cfengine 很棒。尤其是版本 3,它可以处理整个领域的所有包管理器,它真正的轻量级和安全性,并且“正常工作”。Puppet 只是没有提供它声称的东西。没试过大厨。

    cfengine 相对于其他的优势在于它是超轻量级的,但实际上具有更多功能。它的安全性就像 ssh,而不是 puppet 使用的网络证书。当我告诉我的老板关于 cfengine 的事情时,他认为这是科幻小说 :) 如果您正在寻找未来主义的东西,请尝试阅读 Marc Burgess 的一些研究论文。很酷的东西。

    • 2
  6. ericslaw
    2009-06-29T08:04:22+08:002009-06-29T08:04:22+08:00

    在运行小型站点时,我希望拥有的第一个工具是“按钮”构建。它使修补、更新和重建更容易,这可以解决未来的无数其他问题。

    所有盒子上都没有正确安装 ssh?也没有 curl/wget/vim?您想在每个盒子上安装的其他内部工具怎么样?

    对服务器进行集中管理是您应该使用的首批工具之一,以使未来的工作更加轻松。

    • 1
  7. Anders
    2010-07-02T11:14:41+08:002010-07-02T11:14:41+08:00

    我同意这里的每一个人。当您规模不大时,您应该开始学习并建立一个工作基础设施。因为那样你就在成长时做好了准备。

    根据您想要运行的内容,我会选择 FAI、cfengine 和 Debian/Ubuntu 的预播。FAI 可以与许多不同的工具一起使用,因此对于任何类似 Debian 的发行版来说,它都是一个好的开始。使用 FAI(和 cfengine)类控制的配置,您可以轻松地将安装划分为小模块,然后您可以为每台机器选择要使用的模块。这样,即使您有许多不同的机器,它也会很有用。它实际上更有用,因为您将使用这些脚本记录您的安装。当您在新机器上安装时,您不会忘记任何东西。

    是的,在您在实时安装中部署更改之前,您应该有一些机器可以测试。但是使用这样的配置脚本,您不会忘记在实时安装中执行任何步骤。

    • 1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 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