1

現在、Runddeck を使用して、一度に数 100 個の VM を管理することを検討しています。Rundeck は、一度に複数のマシンでスクリプト/コマンドを実行するための非常に便利なツールです (各スクリプトはリモート マシンに渡され、ローカルで実行されます)。ただし、次のシステム管理シナリオを実装する方法があるかどうかは疑問です。

Rundeck のジョブ要件(例: Observium)

  1. [ノードにディスパッチ] オプションが選択されていますが、ターゲット マシンが 1 つしか選択されていません (Observium マシン)。
  2. ジョブを 1 台のマシンでのみ実行するにもかかわらず、Rundeck で複数のマシンを選択できるようにすると、スクリプトで必要になります。スクリプトはすべてのノードで実行されることは想定されていません。単一のリモート マシンでのみ実行されることが想定されていますが、スクリプトにはマシンのリストが必要です。[これはどのように行うことができますか?]
  3. スクリプトは、パラメーターとしてマシンのリストにアクセスします。[これはどのように行うことができますか?]
  4. 上記が整っている場合、スクリプトは1台のマシンでのみ実行され、マシンのリストを反復処理します==>たとえば、次のように実行されます/opt/observium/add_device.php v2c @node.name@ ${varSNMPCommunity}

この投稿に画像を含めるほどの評判はありません。フロー図については、以下のリンクを参照してください。

https://www.dropbox.com/s/2zt4r9trulpsaqx/RundeckObservium.png?dl=0

4

4 に答える 4

1

rundeck マシンでスクリプトを実行し、スクリプトがターゲット マシンに対してリモート ssh を実行する場合は、rundeck でのみローカル マシンを選択する必要があります。次に、スクリプトで rundeck を呼び出して、プロジェクトのマシン リストを配信できます。たとえば、bashでは次のことができます

#!/bin/bash
projectName="test_project"
nodeFilter="tags:app"
/usr/bin/dispatch -v -p $projectName --filter "$nodeFilter" >/tmp/filtered.node
nodes=( $( grep "hostname" /tmp/filtered.node | cut -f2 -d ":" ) )
echo "$nodes[@]"

次の例は、タグが app に設定されている test_project からのノードのリストを示します。

于 2016-06-02T10:37:04.447 に答える
1

1 つのノードでスクリプトを実行してマシンのリストを取得するのではなく、ノード フィルターを使用して、RunDeck がタグからターゲット ノードを決定できるかどうかを確認してください。これは、リソースを取得するためにプロジェクトがどのように構成されているかによって異なります。

たとえば、タグを使用している場合、条件に合うタグが必要になる場合があります。という名前の作成したタグに一致するマシンを見つけたいとしますRebootPending。これをジョブのノード フィルターとして使用して、それらのホストに再起動コマンドを送信できます。

もう 1 つのオプションとして、手順 2 のスクリプトで JSON 形式のファイルを Web サーバーに出力することもできます。次に、このリモート URL (おそらくホストのリスト) を読み取り、そのリストに基づいてアクションを実行する Option を使用して RD ジョブを構成できます。ジョブ オプションとノード フィルターは次のように構成できます。

Option Name: inputFilter
Description: Used for targeting nodes
Default Value: (empty)
Input Type: [X]Plain text [ ]Secure [ ]Secure Remote Authentication
Allowed Values: [ ]List  [X]Remote URL

Node Filter: tags:${option:inputFilter}

これらのセットアップを使用することにより、リモート Web ページ (スクリプトの出力など) でターゲット ノードを決定できます。RunDeck JSON 形式は特定のものであり、読み取りエラーを適切に報告しないことに注意してください。Rundeck ユーザー ガイド - オプション モデル プロバイダーに細心の注意を払う

これが実行可能なアプローチでない場合は、Jenkins などの別のツールの使用を検討する必要がある場合があります。

于 2015-06-21T08:09:03.690 に答える