![如何从一台计算机安装某些内容到所有计算机?](https://linux22.com/image/1163214/%E5%A6%82%E4%BD%95%E4%BB%8E%E4%B8%80%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%AE%89%E8%A3%85%E6%9F%90%E4%BA%9B%E5%86%85%E5%AE%B9%E5%88%B0%E6%89%80%E6%9C%89%E8%AE%A1%E7%AE%97%E6%9C%BA%EF%BC%9F.png)
在我的大学实验室里,所有计算机都连接到 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 会为您提供一个窗口来输入您的命令,而且也会为您连接的每个主机提供一个终端窗口 - 这样您就可以看到实际发生的情况!
在此示例中,您可以看到命令窗口右侧显示“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
- 创建一个新文件,例如
hosts.txt
- 用局域网上的 IP 地址或主机名填充该文件的每一行
- 遍历文件中的每一行并像这样在主机上安装软件
for i in `cat hosts.txt`; do ssh $i apt-get --assume-yes install spyder; echo ; done