如何将某物从一台计算机安装到所有计算机?


9

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


您是管理员吗?如果没有,请先获得许可。
托尔比约恩Ravn的安德森

Ubuntu在大学实验室的每台计算机上安装了相同的用户名(CSLAB)和相同的密码(E201),并且所有计算机都通过相同的LAN连接。那么我怎样才能成为每台计算机用户的管理员?
Abhishek Kamal

1
@AbhishekKamal,一个建议。.不要在公共网站上发布真实的用户名(和密码?)。而且,如果“ E201”确实是您的管理员密码,请考虑用更安全的方式替换它!
tplive

诸如Ansible和clusterssh之类的解决方案(如下所述)使用SSH连接到要管理的计算机。您可以(并且应该)设置无密码访问权限,以确认计算机之间的信任(即,所有受管计算机都可以信任您的计算机),以使自动化顺利进行。
tplive,

1
Ubuntu上的“管理员”无非是可以成为root的用户,例如使用“ sudo -s”(然后运行“ apt”安装软件)。您为什么首先要这样做?
托尔比约恩Ravn的安徒生

Answers:


14

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

这看起来像是一个相当容易理解的教程,可帮助您入门并使用Ansible。

但是,如果这只是您要在多台计算机上运行的一次性命令,那么最好只在Bash中编写脚本


12

如果仅需要执行几个简单命令,而又不想配置可以使用的复杂自动化软件(例如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

进一步阅读


公平地说,您可以按照Ansible命令行中的建议,像对clusterssh一样简单而轻松地执行相同的操作。:)将主机放入清单文件,然后从终端运行命令,例如ansible inventory -a 'shell command goes here'
tplive

1
@tplive当然,您也可以单独使用ssh命令来执行此操作,还有pssh.....但是使用clusterssh可以立即获得反馈,并且可以在出现问题时停止/补救。这只是解决问题的另一种方法。我个人更喜欢软件自动化(例如Ansible)。
罗伯特·里德尔

在我的大学实验室中,每台计算机都具有 相同的用户名和密码。所以我可以使用clusterssh或者ansible是什么?
Abhishek Kamal

@RobertRiedl,这就是为什么我赞成您的回答.. :)
tplive

1
@AbhishekKamal绝对!为了获得无密码登录的最流畅体验,请使用ssh-copy-id或类似方式将您的公共ssh密钥放入每台计算机上的authorized_keys文件中。
tplive

0

这是一个非常基本的顺序解决方案,假设您知道网络上计算机的所有主机名或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


@bunnydrug我的LAB中所有计算机的主机名均为CSLAB,密码为E201。所以,我应该写在hosts.txt文件
阿布舍克·卡迈勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.