关于检查远程更新列表和更新远程服务器的简单方法的想法

关于检查远程更新列表和更新远程服务器的简单方法的想法

我一直在构建自己的控制面板(主要是业余爱好),在其中我可以控制网络服务器上的托管包、邮件服务器上的邮件帐户、DNS 记录等。我也用它来监控我的服务器。

我没有很多服务器,所以更新它们并不是一件麻烦事(现在我只需通过 SSH 逐个登录即可)。但如果我的平台变得更大,通过一个界面管理更新也很酷(列出每个服务器的可用更新,选择它们并更新它们)。我研究过 Puppet,但对我来说它太过分了。

有没有办法为自己构建这样的系统?就像 webmin 那样。也许这是不可能的,但我想确定一下。另外,我的所有服务器都是基于 Debian(Ubuntu)的。因为我的大多数服务器都是基于 Ubuntu 的,所以我研究了 Canonical 的 Landscape,但我认为它的价格太高了,会完全毁掉我的利润。

答案1

有很多可能的方法可以解决这个问题......首先想到的方法是使用基于密钥的身份验证的 ssh,在每台机器上设置一个专用的用户帐户,在“sudoers”中配置为允许无需密码即可访问必要的命令。

使用 ssh 和密钥,“这里”的机械化进程可以通过 ssh 连接到“那里”,执行命令并返回输出流和退出状态,从而在“那里”运行自动化进程。简单说明:

$ ssh otherserver 'ls -l'

...将连接到其他服务器,向您显示远程系统上主目录中的文件列表,断开连接,然后返回到本地(非远程)提示。

如果您有基于密钥的身份验证,则不需要密码。

如果远程进程有必须回答的提示,那么实现该目的的一种方法是使用expect...这是一种专为管理事物而设计的编程语言,您需要“期待这个”然后“发送那个”,并可以为您处理超时。

相关内容