如何从一台计算机安装某些内容到所有计算机?

如何从一台计算机安装某些内容到所有计算机?

在我的大学实验室里,所有计算机都连接到 LAN,因此我想将“spyder”软件从一台计算机安装到所有计算机。
这可能吗?

答案1

为此,我首选的解决方案是 Ansible (https://www.ansible.com/)。它让您可以自动执行任何类型的配置或安装,适用于尽可能多的计算机。Ansible 的另一个优点是社区已经提供了大量强大的脚本,可用于执行大多数配置和安装任务。

这看起来像一个相当容易理解的教程帮助您启动并运行 Ansible。

但是,如果你只想在多台计算机上运行这个一次性命令,那么最好使用 Bash 编写脚本

答案2

如果您只需要执行几个简单的命令,并且不想配置复杂的自动化软件(如 ansible、salt 或 puppet),那么您可以使用clusterssh

打开命令行窗口进行安装

sudo apt-get install clusterssh

现在你可以打开到多个主机的连接,就像这样

clusterssh -l username labhost1 labhost2 labhost3

然后,clusterssh 会为您提供一个窗口来输入您的命令,而且也会为您连接的每个主机提供一个终端窗口 - 这样您就可以看到实际发生的情况!

ClusterSSH 示例 在此示例中,您可以看到命令窗口右侧显示“apt-get update”,左侧显示所有集群终端。

如果其中一台主机出现问题,您可以立即看到错误消息并单击相应的终端来解决问题。

您还可以编写要连接的列表clusterssh:打开您最喜欢的编辑器并写入$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

然后连接到

clusterssh -l username collegelab

进一步阅读

答案3

这是一个非常基本的顺序解决方案,假设您知道网络上所有计算机的主机名或 IP 地址,并且您已启用公钥身份验证。有关更多详细信息,请参阅此处 -https://man.openbsd.org/ssh-keygen.1

  1. 创建一个新文件,例如hosts.txt
  2. 用局域网上的 IP 地址或主机名填充该文件的每一行
  3. 遍历文件中的每一行并像这样在主机上安装软件

for i in `cat hosts.txt`; do ssh $i apt-get --assume-yes install spyder; echo ; done

相关内容