我有几台机器需要维护。我希望能够同时在所有机器上安装一个软件包。使用 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
将打开终端会话,因此将是交互式的。由于您没有说明是否需要交互性或非交互性,我希望交互式终端对您来说没问题