私の大学の実験室では、すべてのコンピューターがLANで接続されているので、1台のコンピューターからすべてのコンピューターに「スパイダー」ソフトウェアをインストールしたいと思っています。
出来ますか ?
Ubuntu
は大学の研究室の各コンピューターに同じユーザー名(CSLAB)と同じパスワード(E201)でインストールし、すべてのコンピューターが同じLANに接続されています。では、各コンピュータユーザーの管理者になるにはどうすればよいですか?
私の大学の実験室では、すべてのコンピューターがLANで接続されているので、1台のコンピューターからすべてのコンピューターに「スパイダー」ソフトウェアをインストールしたいと思っています。
出来ますか ?
Ubuntu
は大学の研究室の各コンピューターに同じユーザー名(CSLAB)と同じパスワード(E201)でインストールし、すべてのコンピューターが同じLANに接続されています。では、各コンピュータユーザーの管理者になるにはどうすればよいですか?
回答:
このため、私が好むソリューションはAnsible(https://www.ansible.com/)です。必要に応じて、あらゆる種類の構成やインストールをすべてのコンピュータで自動化できます。Ansibleのもう1つの利点は、ほとんどの構成およびインストールタスクを実行するために、すでに多くの堅牢なスクリプトを利用できるようにしたコミュニティです。
これは、Ansibleを使用して実行するためのかなりわかりやすいチュートリアルのようです。
ただし、これが複数のコンピューターで実行したい1回限りのコマンドである場合は、Bashでスクリプトを実行することをお勧めします。
実行する必要がある単純なコマンドが2、3だけで、複雑な自動化ソフトウェア(Ansible、Salt、Puppetなど)を構成したくない場合は、を使用できますclusterssh
。
インストールするコマンドラインウィンドウを開く
sudo apt-get install clusterssh
これで、次のように、多数のホストへの接続を開くことができます
clusterssh -l username labhost1 labhost2 labhost3
次に、clustersshはコマンドを入力するためのウィンドウを提供しますが、接続するホストごとに1つのターミナルウィンドウも提供するため、実際に何が起こっているかを確認できます。
この例では、「apt-get update」が右側にあり、すべてのクラスター端末が左側にあるコマンドウィンドウを確認できます。
ホストの1つに問題がある場合は、エラーメッセージをすぐに表示し、対応する端末をクリックして状況を修正できます。
clusterssh
接続先のリストを作成することもできます:お気に入りのエディターを開いて、$HOME/.clusterssh/clusters
collegelab labhost1
collegelab labhost2
collegelab labhost3
次に接続します
clusterssh -l username collegelab
参考文献
ansible inventory -a 'shell command goes here'
pssh
... もありますが、clustersshを使用すると、フィードバックがすぐに得られ、問題が発生した場合に停止/修正することができます。これは物事を進めるための代替方法にすぎません。個人的には、(ansibleのような)ソフトウェアの自動化を好みます。
clusterssh
それansible
を使うことができますか?
ssh-copy-id
。
ネットワーク上のコンピュータのすべてのホスト名またはIPアドレスがわかっていて、公開鍵認証が有効になっていることを前提とする、非常に基本的な順次ソリューションを次に示します。詳細については、こちらをご覧ください-https://man.openbsd.org/ssh-keygen.1
hosts.txt
for i in `cat hosts.txt`; do ssh $i apt-get --assume-yes install spyder; echo ; done
hosts.txt
ファイルに何を書けばいいのか