Rundeckでデータの受け渡しをあれこれしているけれども、絶対忘れるので備忘録として記録しておく。試行錯誤しながらなので多分間違っていると思うけど、直しながらやっていきましょう。
- Zabbix(Webhook) -> Job
- Zabbix
- Administration -> Media types -> Create media type で新規メディアを作成
- TypeをWebhook にしてパラメータ化したい変数をparamsに追加
- ScriptにJavaScriptで動作を記載
- paramsに追加した変数は、スクリプト内においてparams.<name>で参照できる
- rundeckに渡したいパラメータは、JSONで渡す
- Administration -> Media types -> Create media type で新規メディアを作成
- Rundeck
- WebHook
- Project -> Webhook -> Create Webhook でエントリを作成
- Header Configuration -> options にオプション名と引数を記載(-hostname ${data.hostname})
- "-hostname" はジョブで参照する際の<name>
- "${data.hostname}" の"hostname"はWebhookで送られてきたJSONのkey
- Header Configuration -> options にオプション名と引数を記載(-hostname ${data.hostname})
- Project -> Webhook -> Create Webhook でエントリを作成
- Job
- Job -> Workflow -> Add a step でノードステップを追加
- スクリプトの中で ${option.<name>}/@option.<name> で参照
- ここの<name>はWebhookのオプション名。上記例だと"-hostname"
- スクリプトの中で ${option.<name>}/@option.<name> で参照
- Job -> Workflow -> Add a step でノードステップを追加
- WebHook
- 注意
- rundeckのWebhook/optionsで指定する変数名とZabbix側で渡すJSONは揃えること
- { "opt1": "val1" } -> ${data.option1} とすると変数がないと怒られる
- "msg": {"opt1": "val1" } だと${data.msg.opt1}。data以降はJSONのデータ構造に合わせる
- RundeckのWebhookの設定で受け取ったデータを参照する場合(optionsの設定)は、${data.<name>}, Webhookで受け取ったデータをノードステップで参照する場合は${option.<name>}
- rundeckのWebhook/optionsで指定する変数名とZabbix側で渡すJSONは揃えること
- Zabbix
- Job step
- ステップの結果を他のステップで参照
- Job -> Workflow -> Global filter -> add で追加
- key value data を選択 -> Name Data に変数名を記載
- Log Data にチェック
- Job -> Workflow -> Add a step でステップを追加
- スクリプトとかでやりたいことを記載
- 渡したい値を"RUNDECK:DATA:<Name Data>=<Value>"としてechoやprintで出力
- 識別子(?)"RUNDECK:DATA:”はGlobal filter/key value data のところにある正規表現で変更できるので、必要なら変更して、出力もそれに合わせる
- 渡したい値を"RUNDECK:DATA:<Name Data>=<Value>"としてechoやprintで出力
- スクリプトとかでやりたいことを記載
- 出力以降のノードステップで ${data.<Name Data>} で参照
- Job -> Workflow -> Global filter -> add で追加
- ステップの結果を他のステップで参照
- Job -> Job Reference(node step)
- 参照元
- Job -> Workflow -> Add node step -> Job Reference でステップを追加
- Argumentsに引数名、値を追記(ex. -hostname ${data.hostname})
- 参照先
- ノードステップ内で ${options.<name>}で参照
- 参照元
コメント