Windowsの管理から来て、Linux(Debian)をさらに深く掘り下げたいと思います。
Webの検索で答えられなかった(見つからなかった)質問の1つは、いわゆる「1つ」をどのように達成できるかということです。 PowerShell for Windowsのように「多対多」のリモーティング?
基本に分解すると、次のようになります。
Linuxに関する私の見解:
- サーバーにSSHで接続して、コマンドを入力できます
- 結果が得られます。 10台のサーバーの環境では、サーバーごとにコマンドを送信する(perl / python?)スクリプトを作成する必要がありますか?
Windowsでの私の経験:
-
コマンドを入力し、「invoke-command」を使用して、これを多数のサーバーに「送信」して(おそらくテキストファイルから)同時に実行し、結果を(さらなる作業のオブジェクトとして)返すことができます。
-
複数のセッションを確立することもできます。接続はバックグラウンドで保持され、これらのセッションにコマンドを選択的に送信し、必要に応じてリモートで送受信できます。
(シェフや人形などのことを聞きました。これはそのようなものですか?)
Update 2019:
たくさん試した後、 Rexをお勧めします (以下のこのコメントを参照)–簡単なセットアップ(事実上、sshが必要なだけで、他には何も必要ありません)と使用(少しだけ perl を知っている場合) さらに優れていますが、オプションです)
Rex(ify)を使用 アドホックを実行できます コマンドを実行して、実際の構成管理に進めます (…つまり、そもそもCMですが、アドホックなタスクにも適しています)
Webサイトは古くなっていますが、現在(2019年1月現在)開発中であり、IRCチャネルもアクティブです。 。
Windowsの新しいopensshを使用すると、さらに多くの可能性があります
次のことを試すことができます:
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'
承認された回答:
概要
- Ansibleは、PowerShellの強力な代替手段であるDevOpsツールです
- グラフィカルインターフェイスとしてのRunDeckは便利です
- RunDeck+Ansibleを一緒に実行する人もいます
clusterssh
リモートコマンドを複数のサーバーに送信する場合、初心者にはclustersshをお勧めします
clusterssh
をインストールするには Debianの場合:
apt-get install clusterssh
別のclustershチュートリアル:
ClusterSSHは、XTerm
やSSHなどの標準的なLinuxツールのTk/Perlラッパーです。そのため、ライブラリが存在するほぼすべてのPOSIX準拠のOSで実行されます— Linux、Solaris、およびMac OS Xで実行しました。
には、PerlライブラリTk( xtermおよびOpenSSHに加えて、
X11 ::Protocol(DebianまたはUbuntuではlibx11-protocol-perl)および
X11 ::Protocol)および
X11 ::Protocol(libx11-protocol-perl)。
Ansible
複数のシステム管理のためのリモートフレームワークに関しては、AnsibleはPuppetの非常に興味深い代替手段です。よりスリムで、SSH経由で動作するため専用のリモートエージェントは必要ありません(RedHatも購入しています)
プレイブックは、コマンドラインオプションよりも複雑です。
ただし、Ansibleの使用を開始するには、簡単なインストールとクライアントリストテキストファイルのセットアップが必要です。
その後、すべてのサーバーでコマンドを実行するには、次のようにするだけです。
ansible all -m command -a "uptime"
また、出力は非常に適切にフォーマットされ、ルール/サーバーごとに分離されており、バックグラウンドで実行している間、ファイルにリダイレクトして後で参照できます。
関連:サブディレクトリを凝縮する方法は?単純なルールから始めることができます。Linuxで成長するにつれて、Ansibleの使用法はより面白くなり、インフラストラクチャーは大きくなります。そのため、PowerShellよりもはるかに多くのことを実行します。
例として、私が書いたLinuxサーバーをアップグレードするための非常にシンプルなPlaybook:
---
- 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 Galaxy
Ansibleも広く使用されており、FreeRadiusセットアップ用の私自身のプロジェクトのように、githubには多くのプロジェクトがあります。
Ansibleは無料のオープンソースフレームワークですが、ライセンスはかなり高価ですが、有料のWebパネルインターフェイスであるAnsibleTowerも備えています。
現在、RedHatが購入した後、TowerにはAWXと呼ばれるオープンソースバージョンもあります。
ボーナスとして、AnsibleはWindowsサーバーを管理することもできますが、私はそのために使用したことはありません。
また、ネットワーク機器(ルーター、スイッチ、ファイアウォール)を管理できるため、自動化のターンキーソリューションとして非常に興味深いソリューションになります。
Ansibleのインストール方法
ランドック
繰り返しになりますが、リモートフレームワークは使いやすく、Ansibleほど強力ではないため、Rundeckをお勧めします。
これは非常に強力なマルチユーザー/ログインのグラフィカルインターフェイスであり、日常の一般的なタスクの多くを自動化でき、シスオペやヘルプデスクの人々に骨の折れるビューを提供することもできます。
コマンドを実行すると、サーバー/タスクごとに出力が分類されたウィンドウも表示されます。
バックグラウンドで複数のジョブをシームレスに実行でき、後でレポートと出力を確認できます。
RunDeckのインストール方法
WebインターフェイスとしてAnsible+RunDeckを実行している人がいることに注意してください。すべてのケースがそれに適しているわけではありません。
言うまでもなく、AnsibleやRunDeckの使用は、インフラストラクチャドキュメントのフォームまたは一部として解釈でき、時間の経過とともに、アクション/レシピ/プレイブックを複製および改善できます。
最後に、中央コマンドサーバーについて説明しますが、このタスクのためにサーバーを作成します。実際、専門用語はジャンプボックスです。 「ジャンプボックス」を正しく設定すると、セキュリティが向上します。