質問への回答と、プロセスの構成方法:
1.ジェンキンスの設定
- Publish over SSH プラグインをインストールする
- Jenkins の構成 => システム構成
SSH セクションで公開
2.ジョブ構成
- ジョブを開く => 設定
- このプロジェクトはパラメータ化されていることを確認します
選択肢パラメータを追加
- 名前: サーバー
選択肢:
server_1
server_2
- [ SSH 経由でファイルを送信するか、コマンドを実行する] => [SSH サーバー] セクション
を選択します。
- 名前: 最初のサーバーを選択します
- 転送セット データ (ソース ファイルおよび/または Exec_command) を入力します。
- 詳細をクリックします
- ラベル: server_1 (これは、choice パラメーターの最初の選択肢です)
- [サーバーの追加] をクリックします
- 名前: 2 番目のサーバーを選択します
- 転送セット データ (ソース ファイルおよび/または Exec_command) を入力します。
- 詳細をクリックします
- ラベル: server_2 (これは、choice パラメーターの 2 番目の選択肢です)
- ボタンAdd Serverの前にあるAdvancedをクリックします。
- パラメータ化された公開を確認する
- パラメーター名: サーバー (これは、選択したパラメーターの名前です)
3. ジョブの実行
ジョブを実行し、たとえば Server => server_2 を選択します。
ログに次のように表示されます。
SSH: Skipping [server_1] - Label server_1 does not match expression server_2
SSH: Publishing to [server_2] - Label server_2 matches expression server_2
SSH: Connecting from host [ip-10-0-0-37]
SSH: Connecting with configuration [server_2] ...
説明
プラグインは、「サーバー」という名前のパラメーター (ジョブの開始前に選択したもの) の値を、構成したラベルと比較します。ラベルとパラメータが一致すると、SSH コマンドが実行されます。
お役に立てば幸いです。私はそれに5時間費やした原因。