まとめ
- Ansible は、PowerShell に代わる強力な DevOps ツールです
- グラフィカル インターフェースとしての RunDeck は便利です
- RunDeck+Ansible を一緒に実行する人もいます
clusterssh
リモート コマンドを複数のサーバーに送信する場合、初心者には clusterssh をお勧めします
clusterssh
をインストールするには Debian の場合:
apt-get install clusterssh
別の clusterssh チュートリアル:
<ブロック引用>ClusterSSH は、XTermand SSH などの標準的な Linux ツールの Tk/Perl ラッパーです。そのため、ライブラリが存在するほぼすべての POSIX 準拠の OS で実行されます。Linux、Solaris、および Mac OS X で実行しました。Perl ライブラリ Tk (Debian または Ubuntu では perl-tk) と X11 が必要です。 :xterm と OpenSSH に加えて、プロトコル (Debian または Ubuntu では libx11-protocol-perl)。
アンシブル
複数のシステムを管理するためのリモート フレームワークに関しては、Ansible は Puppet の非常に興味深い代替手段です。より無駄がなく、SSH 経由で動作するため、専用のリモート エージェントは必要ありません (RedHat にも買収されています)
Playbook は、コマンド ライン オプションよりも複雑です。
ただし、Ansible の使用を開始するには、簡単なインストールと、クライアント リストのテキスト ファイルのセットアップが必要です。
その後、すべてのサーバーでコマンドを実行するには、次のように簡単です:
ansible all -m command -a "uptime"
また、出力は非常に適切にフォーマットされ、ルール/サーバーごとに分離されており、バックグラウンドで実行中にファイルにリダイレクトして後で調べることができます。
単純なルールから始めることができます。Linux で成長し、インフラストラクチャが大きくなるにつれて、Ansible の使用はより興味深いものになります。そのため、PowerShell よりもはるかに多くのことができます。
例として、私が書いた Linux サーバーをアップグレードするための非常に単純なプレイブック:
---
- hosts: all
become: yes
gather_facts: False
tasks:
- name: updates a server
apt: update_cache=yes
- name: upgrade a server
apt: upgrade=full
また、包括的なポリシーを簡単に記述できる多くのモジュールが定義されています。
モジュール インデックス - Ansible ドキュメント
また、コミュニティによって既に作成された ansible ポリシーを検索するためのリポジトリの興味深い公式ハブ/「ソーシャル」ネットワークもあります。アンシブル ギャラクシー
Ansible も広く使用されており、FreeRadius セットアップ用に私が作成したこのプロジェクトのように、github で多くのプロジェクトを見つけることができます。
Ansible は無料のオープン ソース フレームワークですが、有料の Web パネル インターフェイスである Ansible Tower も備えていますが、ライセンスはかなり高価です。
現在、RedHat が買収した後、tower には AWX として知られるオープン ソース バージョンもあります。
おまけとして、Ansible は Windows サーバーを管理することもできますが、そのために使用したことはありません。
また、ネットワーク機器 (ルーター、スイッチ、およびファイアウォール) を管理することもできるため、自動ターンキー ソリューションとして非常に興味深いソリューションになります。
Ansible のインストール方法
ランデッキ
繰り返しになりますが、使いやすいが Ansible ほど強力ではないリモート フレームワークについては、Rundeck をお勧めします。
これは非常に強力なマルチユーザー/ログイン グラフィカル インターフェイスであり、日常の一般的なタスクの多くを自動化し、システム管理者やヘルプデスクの担当者に簡素化されたビューを提供することさえできます。
コマンドを実行すると、出力がサーバー/タスクごとに分類されたウィンドウも表示されます。
複数のジョブをバックグラウンドでシームレスに実行でき、後でレポートと出力を表示できます。
RunDeck のインストール方法
Web インターフェースとして Ansible+RunDeck を実行している人がいることに注意してください。すべてのケースがそのために割り当てられるわけではありません。
言うまでもなく、Ansible や RunDeck を使用することは、インフラストラクチャ ドキュメントのフォームまたは一部として解釈でき、時間の経過とともにアクション/レシピ/プレイブックを複製および改善することができます。
最後に、中央コマンド サーバーについて言えば、このタスクに合わせて 1 つ作成します。実は専門用語は跳び箱です。 「ジャンプ ボックス」を正しく設定すると、セキュリティが向上します。
インタラクティブに実行したい場合は、 terminator
を使用できます これにより、コマンドを複数の端末にブロードキャストできます。
参照:複数のタブ/シェルで同じ Linux コマンドを同時に実行するにはどうすればよいですか?
pssh
も使用できます (または parallel-ssh
)、ホストのリストに接続し、すべてのホストでコマンドを並行して実行する SSH クライアントです。
$ parallel-ssh -i -H "host1 host2" uname -a
[1] 11:37:12 [SUCCESS] host2
Linux host2 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[2] 11:37:12 [SUCCESS] host1
Linux host1 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux