1台のコンピューターからすべてのコンピューターに何かをインストールする方法は?


9

私の大学の実験室では、すべてのコンピューターがLANで接続されているので、1台のコンピューターからすべてのコンピューターに「スパイダー」ソフトウェアをインストールしたいと思っています。
出来ますか ?


あなたは管理者ですか?そうでない場合は、最初に許可を取得してください。
するThorbjörnRavnアンデルセン

Ubuntuは大学の研究室の各コンピューターに同じユーザー名(CSLAB)と同じパスワード(E201)でインストールし、すべてのコンピューターが同じLANに接続されています。では、各コンピュータユーザーの管理者になるにはどうすればよいですか?
Abhishek Kamal

1
@AbhishekKamal、アドバイスの一言。公開Webサイトに実際のユーザー名(およびパスワード)を投稿しないでください。また、「E201」が本当に管理者パスワードである場合は、もっと安全なものに置き換えることを検討してください。
tplive

Ansibleやclusterssh(下記参照)などのソリューションは、SSHを使用して、管理するコンピューターに接続します。自動化がスムーズに機能するように、コンピューター間の信頼を確認する(つまり、コンピューターがすべての管理対象コンピューターによって信頼されている)パスワードなしのアクセスを設定できます(そうする必要があります)。
tplive

1
Ubuntuの「管理者」とは、たとえば「sudo -s」を使用してrootになることができる(そして「apt」を実行してソフトウェアをインストールする)人物に過ぎません。そもそもなぜこれをしているのですか?
するThorbjörnRavnアンデルセン

回答:


14

このため、私が好むソリューションはAnsible(https://www.ansible.com/)です。必要に応じて、あらゆる種類の構成やインストールをすべてのコンピュータで自動化できます。Ansibleのもう1つの利点は、ほとんどの構成およびインストールタスクを実行するために、すでに多くの堅牢なスクリプトを利用できるようにしたコミュニティです。

これは、Ansibleを使用して実行するためのかなりわかりやすいチュートリアルのようです。

ただし、これが複数のコンピューターで実行したい1回限りのコマンドである場合は、Bashでスクリプトを実行することをお勧めします。


12

実行する必要がある単純なコマンドが2、3だけで、複雑な自動化ソフトウェア(Ansible、Salt、P​​uppetなど)を構成したくない場合は、を使用できますclusterssh

インストールするコマンドラインウィンドウを開く

sudo apt-get install clusterssh

これで、次のように、多数のホストへの接続を開くことができます

clusterssh -l username labhost1 labhost2 labhost3

次に、clustersshはコマンドを入力するためのウィンドウを提供しますが、接続するホストごとに1つのターミナルウィンドウも提供するため、実際に何が起こっているかを確認できます。

ClusterSSHの例 この例では、「apt-get update」が右側にあり、すべてのクラスター端末が左側にあるコマンドウィンドウを確認できます。

ホストの1つに問題がある場合は、エラーメッセージをすぐに表示し、対応する端末をクリックして状況を修正できます。

clusterssh接続先のリストを作成することもできます:お気に入りのエディターを開いて、$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

次に接続します

clusterssh -l username collegelab

参考文献


あなたがclustersshのための提案として、公平に、あなたはおそらく:) ..簡単かつ容易とAnsibleコマンドラインから同じことを行うことができインベントリファイルにホストを入れて、その後、端末からコマンドを実行して、のようなものansible inventory -a 'shell command goes here'
tplive

1
@tplive確かに、sshコマンドだけでもそれを行うことができます。また、pssh... もありますが、clustersshを使用すると、フィードバックがすぐに得られ、問題が発生した場合に停止/修正することができます。これは物事を進めるための代替方法にすぎません。個人的には、(ansibleのような)ソフトウェアの自動化を好みます。
Robert Riedl

私の大学の研究室では、各コンピューターの ユーザー名とパスワードは同じです。だから私はclustersshそれansibleを使うことができますか?
Abhishek Kamal

@RobertRiedlそしてそれが私があなたの答えに賛成した理由です.. :)
tplive

1
@AbhishekKamal絶対に!パスワードなしのログインで最もスムーズなエクスペリエンスを得るには、を使用して、各コンピュータのauthorized_keysファイルに公開SSHキーを入れますssh-copy-id
tplive

0

ネットワーク上のコンピュータのすべてのホスト名またはIPアドレスがわかっていて、公開鍵認証が有効になっていることを前提とする、非常に基本的な順次ソリューションを次に示します。詳細については、こちらをご覧ください-https://man.openbsd.org/ssh-keygen.1

  1. 新しいファイルを作成します。 hosts.txt
  2. 上記のファイルの各行に、LAN上のボックスの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ファイルに何を書けばいいのか
Abhishek Kamal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.