如何同时在多台主机上执行 sudo apt-get install?

如何同时在多台主机上执行 sudo apt-get install?

我有几台机器需要维护。我希望能够同时在所有机器上安装一个软件包。使用 ubuntu 最简单的方法是什么?

下面是我尝试在所有机器上并行安装 texlive-full 的示例并行-ssh

parallel-ssh -i -H "myAdminName@comp1 myAdminName@comp2 myAdminName@comp3" -A -l root sudo apt-get install texlive-full -y

不幸的是,这给了我以下错误:

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 12:28:01 [FAILURE] myAdminName@comp1 Exited with error code 1
Stderr: sudo: no tty present and no askpass program specified
[2] 12:28:01 [FAILURE] myAdminName@comp2 Exited with error code 1
Stderr: sudo: no tty present and no askpass program specified
[3] 12:28:01 [FAILURE] myAdminName@comp3 Exited with error code 1
Stderr: sudo: no tty present and no askpass program specified

有人知道如何解决这个问题吗?我已经在所有这些机器上放置了公共 ssh 密钥...

答案1

为了管理多台机器,我正在使用clusterssh。它允许所有机器并行进行终端会话。如果您想要在一台机器上运行命令,您可以选择其窗口。如果您想要提交给一组机器,您可以选择所有需要寻址的主机。很简单,不是吗 ;) 您可以使用配置文件并为计算机组分配一个昵称,然后clusterssh从该昵称开始,而不是从机器名称/IP 列表开始。

我已经用了好几年了。另一种可能性可能是tmux,但我必须检查并行会话的语法。

编辑:我意识到您尝试进行非交互式安装。这clusterssh将打开终端会话,因此将是交互式的。由于您没有说明是否需要交互性或非交互性,我希望交互式终端对您来说没问题

相关内容