いくつかの Linux ノードで構成された小さなクラスターがあります。共有 NFS があり、すべてのノードで共有 SSH キーを持つ同じユーザー アカウントがありますが、それ以外は各ノードに独自のファイル システムと構成があります。
中央ノードからすべてのノードの構成を制御できるようにしたいと考えています。一般的な構成は、主にユーザー ディレクトリと または の両方にある構成ファイルで構成されます/etc
。/opt
場合によっては、すべてのノードに同じパッケージをインストールしたり、他のシェル コマンドを実行したりする必要もあります。
これは、エンタープライズ レベルの自動化システムやその他の複雑なインストールを正当化するほどの規模ではない小さなクラスターです。軽量でオープン ソースが望ましい、別の方法で試してテストしたことはありますか? または、直接 BASH/SSH ハックに基づいた方法はありますか? よろしくお願いします。
答え1
Saltstack を強くお勧めします。柔軟性、拡張性、軽量性、そして無料です。
答え2
アンシブルLinuxまたはMac OS Xからhomebrewで制御する場合はこれで十分です。Windowsは制御マシンとしてサポートされていません。LinuxノードにはSSHとPythonが必要ですが、ほとんどのLinuxディストリビューションはデフォルトでPythonをインストールするので、おそらくすでに対応しているでしょう。必要なのはインストールマスター上で ansible を実行するのは簡単なはずです。
23分を視聴クイックスタートビデオより理解を深めるために、アドホックコマンドの紹介ドキュメントからのセクション:
グループ内のすべてのサーバー(この場合は atlanta)で 10 個の並列フォークでコマンドを実行します。
$ ansible atlanta -a "/sbin/reboot" -f 10
パッケージがインストールされていることを確認しますが、更新は行いません。
$ ansible webservers -m yum -a "name=acme state=installed"
ファイルを複数の異なるサーバーに直接転送するには:
$ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"
すべての Web サーバーでサービスが開始されていることを確認します。
$ ansible webservers -m service -a "name=httpd state=started"
いくつかあります例プレイブックの。
答え3
答え4
試す期待するスクリプト。複数のマシンで同じタスクの実行を自動化するのに最適な方法です。
expect スクリプトを使用すると、各マシンに手動でログインして同じタスクを何度も実行する必要がなくなります。私は、すべてのマシン上のユーザーのパスワードを変更したり、各マシンでチェック スクリプトを実行したりするのにこのスクリプトを使用しています。