我们希望减少管理 Windows 服务器所需的时间。
我们团队负责的几乎每台服务器都运行着 Windows 的某个版本,但由于历史原因,我们负责的机器是多种平台的混合体:各种 Windows 版本的 64 位和 32 位版本。我们大约有 10 台机器。
具体来说,我们希望能够更快完成的活动包括:
- 清除临时文件和日志文件
- 临时重启
- 安装和卸载 Windows 软件包
有就好(但不是必需的)
- 监控、启动和停止 Windows 服务
- 登录 / 登出
- 监控盒子上的应用程序可能正在做什么(例如长时间运行的 Excel 表)
我听说 Puppet 是一个旨在帮助实现各种系统管理自动化的工具 - 这个工具是否可能有助于满足上述任何要求?据我所知,大多数 Puppet 用户都是基于 LINUX/UNIX - 在 Windows 环境中运行 Puppet 主节点是否可行?
作为 B 计划 - 我可以编写一些执行上面列出的作业的 Python 脚本并从 Jenkins 服务器调用它们。
我正在寻找您的建议,以了解什么是最省时的方法来减少我们的管理时间。
谢谢
更新0: 虽然我为一家大公司工作,但这家公司不喜欢在任何事情上花钱。我们更喜欢免费和开源解决方案。我们使用的任何东西都必须获得合法许可,而且不花钱——软件合规性是一件大事。
如果有必要,我们会找到一个功能强大的盒子并在 VirtualBox(或类似系统)中运行 Ubuntu 来运行主节点。
答案1
我发现使用 PowerShell 可以做很多事情。监控则不是很多(并不是说你不能用一些简单的 Test-Connection 和 Test-Path 类型的脚本) - 但许多其他建议对此都有很好的选择。我可能还会建议使用 icinga。
我的环境中的 PowerShell 会进行备份(使用 Microsoft Sync Framework SDK、7zip SDK 和 AWS SDK)、清除远程服务器上的日志文件夹、将 IIS 日志转储到数据库中、出于安全审计目的执行管理员密码轮换、用于停止和重新启动服务以及执行服务帐户凭据轮换。
我发现在我的 Windows 环境中安排 PowerShell 脚本是最直接、最省时且最便宜的方法。
如果你确实使用了 Puppet,请告诉我进展如何。我做了一些研究,但无法证明设置/测试时间是合理的。
答案2
如果您已经拥有“普通”Windows 服务器许可证(如标准 Windows 服务器版本),则您有权使用 Active Directory。您可以使用组策略和脚本来管理一组 Windows 服务器。无需额外费用。
对于部署软件,您可以使用http://wpkg.org,它是开源软件。一旦你掌握了它,它就非常好用。当然,你也可以使用 Active Directory 中的组策略和脚本来实现它。虽然没有 GUI(对我来说不是问题,但在你的环境中可能会有问题)。
至于监控,我非常喜欢使用http://www.opsview.com/community,它是开放核心。如果需要,您仍然可以购买支持,但主要功能在社区版中。这是 Nagios 的完美之作。但它在 Windows 中不起作用。显然,您可以使用它来监控 Windows 服务器。它作为虚拟机运行得非常好。
如果您想使用“unixy”的东西,可以在 cygwin 下运行 cfeninge。您需要先获取源代码并进行编译,但这是可行的。当然,cfengine 本身有自己的学习曲线,但如果您的时间不值一提,那么也许这是一个选择 ;-)。如果您的时间确实值钱,您可以获取适用于 Windows 的商业原生端口。
答案3
答案4
根据您拥有的服务器数量以及您的预见,您可能需要采用 MS 选项 - System Center 不是太轻量级,但却是一个非常强大的服务器管理系统。