GNU/Linux >> Linux の 問題 >  >> Linux

Ssh – Powershellの「1対多」のリモーティングに相当するLinux?

Windowsの管理から来て、Linux(Debian)をさらに深く掘り下げたいと思います。
Webの検索で答えられなかった(見つからなかった)質問の1つは、いわゆる「1つ」をどのように達成できるかということです。 PowerShell for Windowsのように「多対多」のリモーティング?

基本に分解すると、次のようになります。

Linuxに関する私の見解:

  • サーバーにSSHで接続して、コマンドを入力できます
  • 結果が得られます。 10台のサーバーの環境では、サーバーごとにコマンドを送信する(perl / python?)スクリプトを作成する必要がありますか?

Windowsでの私の経験:

  1. コマンドを入力し、「invoke-command」を使用して、これを多数のサーバーに「送信」して(おそらくテキストファイルから)同時に実行し、結果を(さらなる作業のオブジェクトとして)返すことができます。

  2. 複数のセッションを確立することもできます。接続はバックグラウンドで保持され、これらのセッションにコマンドを選択的に送信し、必要に応じてリモートで送受信できます。

(シェフや人形などのことを聞きました。これはそのようなものですか?)

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の使用は、インフラストラクチャドキュメントのフォームまたは一部として解釈でき、時間の経過とともに、アクション/レシピ/プレイブックを複製および改善できます。

最後に、中央コマンドサーバーについて説明しますが、このタスクのためにサーバーを作成します。実際、専門用語はジャンプボックスです。 「ジャンプボックス」を正しく設定すると、セキュリティが向上します。


Linux
  1. LinuxにAnsibleをインストールしてテストする方法

  2. sshpassを使用したLinuxでのSSHパスワードの自動化

  3. Linuxシステム管理者向けのAnsibleの謎を解き明かす

  1. LinuxでSSHポートを変更する方法

  2. Linux で SSH 経由で X アプリケーションを実行できない

  3. Linuxはロボコピーに相当しますか?

  1. Linuxインタビューの質問トップ25

  2. LinuxでAnsibleの役割を開発するための8つのステップ

  3. OracleLinux8にAnsibleをインストールする方法