はじめに
WorkatoにはOn-prem command-line scriptsというコネクタがあり、このコネクタを利用することで、オンプレミスエージェントがインストールされたサーバあるいはPC上のコマンドを実行することが可能です。
当コネクタで実行可能なコマンド(スクリプト)は、コネクションあるいはコネクションプロファイルで事前定義されたもの(ホワイトリスト)に限られており、レシピ上で任意のコマンド実行には対応していませんが、bashやzshなどのシェルの引数としてコマンドを渡すことで、レシピ上で任意のコマンドを実行することが可能になります。
また、コネクションの事前定義においては、パイプ(|
)やリダイレクト(<>
)に対応していませんが、本手順によりパイプやリダイレクトの利用も可能になります。
セキュリティ上レシピからの任意のコマンドの実行を避けたい場合や、コマンドを限定して(指定されたコマンドにて)パイプやリダイレクトを含めた状態を扱いたい場合は、コネクションプロファイル(yaml)による事前定義を検討ください。
https://docs.workato.com/en/on-prem/agents/connection/profile.html#command-line-scripts-profile
コネクションプロファイルでは、コマンドならびに引数、パラメータのクォートの明確な指定が可能となっています。
また、コネクションの事前定義(Script body)では bash -c
コマンドと組み合わせてもパイプやリダイレクトを含むコマンドの実行を正常に行うことはできませんが(スペースを区切りにコマンドと引数を解釈しているため)、コネクションプロファイルではコマンドと引数を明確に指定することが可能なため、コマンドを限定したパイプやリダイレクトを含むコマンドの実行にも対応可能です。
手順
【1】コネクションを設定する
On-prem command-line scripts コネクタのScriptsに、 bash -c {{command}}
を追加します。
【2】実行したいコマンドを入力する
WorkatoのレシピにOn-prem command-line scriptsコネクタのExecute command-line scriptアクションを追加し、「Command」へ実行したいコマンドを入力します。
実行結果
以上の手順で設定を行うことで、以下のようにパイプを用いたコマンド実行を行うことが出来ます。
おまけ
上記では特定のコマンドの実行を例としましたが、コマンドだけでなくシェルスクリプトの実行にも対応しています。
例えば、Workatoでコーディングしたシェルスクリプトを、オンプレミスエージェントがインストールされたサーバあるいはPC上で実行したい場合にも、本手順が活用可能です。