More Related Content
Similar to NW機器の設定自働化に向けたST2機能の活用 (20)
NW機器の設定自働化に向けたST2機能の活用
- 1. Copyright©2018 NTT corp. All Rights Reserved.
ネットワーク機器の設定自働化に向けた
Stackstorm機能の活用
NTT ソフトウェアイノベーションセンタ
福田晴元
Copyright(c)2018 NTT Corp. All Rights Reserved.
- 2. Copyright©2018 NTT corp. All Rights Reserved. 2
• 本日話題とするStackstormの機能は、
「execution pause」と「execution resume」の停
止・再開機能です。
• 物理機器の増設や更改といった、物理接続や接続変更後の
機器設定時に、これら機能を利用すると想定しています。
• 新設や接続変更の伴う工事では、想定外の状態となる可能性が0で
はないため、安全のために一時停止する機能を備える必要がある
と考えます。
• 既に構築済みのネットワーク上に、お客様のオーダーに従って設
定を投入するといった、日常的に行われるネットワーク工事では
上記機能の利用機会は少なく、Inquiries機能の利用が想定されま
す。
対象とするネットワーク工事
- 3. Copyright©2018 NTT corp. All Rights Reserved. 3
• Stackstormでは:
• Actionと呼ぶコード(Python等)を実行できます。
• 複数のActionをつなげて一連の操作をWorkflowとして記述
(MistralやActionChain)し、このWorkflowを実行できます。
※StackstormではWorkflowをActionの一種と扱うが、以降では説明のた
めにAction(Python等の実コード)とWorkflow(YAMLで記述する
MistralやActionChain)と分けた呼び方をします。
StackstormのActionとWorkflow
Action
「サーバを起動」
Action
「コンテナを起動」
Action
「Slackにメッセージ送信」
Action
「サーバを起動」
Action
「コンテナを起動」
Action
「Slackにメッセージ送信」
Workflow
- 4. Copyright©2018 NTT corp. All Rights Reserved. 4
予め想定できない状況への対応方法として利用できそう。。。
• Inquiries機能
• 予めWorkflow内に停止ポイントを記述することができ、アク
ション(core.ask)として実装
• Workflowの途中で操作者に問い合わせができ、結果に応じた
処理をWorkflowに記述して実行できる。
(例:承認しますか? OK:続行, NG:終了)
• Execution pause|resume機能
• Workflow内に記述することなく、API操作により実行中
Workflowを一時停止・再開することが可能
Stackstormが備える「停止・再開」機能
- 5. Copyright©2018 NTT corp. All Rights Reserved. 5
• APIを利用し、execution idを指定して、pause,
resumeを実行
• PUT/api/v1/executions/{id}
• Query_parametersとして、statusに”pausing”もしくは
”resuming”を設定してPUT
• Workflow(MistralやActionChain)のみに実行可能
• 実行中のPython等のActionは停止できない(最後まで実行)。
Execution pause|resume
running
pausing
paused
resuming
pause
resume
Python等のAction
実行完了待ち
- 6. Copyright©2018 NTT corp. All Rights Reserved. 6
WFの構成例
ルートWF
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
sample1
- 7. Copyright©2018 NTT corp. All Rights Reserved. 7
• Workflowを多段に構成した場合:
• 最上段(ルート)のWorkflowを停止(pause)した場合、子ワークフ
ローへ伝わり停止する。
• 中段のWorkflowを停止(pause)した場合には、親と子のワークフ
ローへ伝播する。
• 再開(resume)操作は、親ワークフローへ伝播しない。
と書いてあるようだが。。。(resumeも親へ伝播する場合がある)
Execution pause|resume
⇒ これらの情報から、pause/resume操作は、
最上段のWorkflowへのAPI操作がよいと思われる。
※Cancelは全てのWFに行なうこと。
- 8. Copyright©2018 NTT corp. All Rights Reserved. 8
• ルートWFの判別方法
• GET/api/v1/executions を利用して情報を取得
• WFやActionは、parentやchildrenのキーを持ち、呼出し関係を管
理している。
• parentのキーがなく、childrenのキーのみとなり、
liveaction/action_is_workflowの値がTrueであるもの。
• 実行中・実行済みWFの構造把握
• GET/api/v1/executions/{ルートWFのID}/children で子W
F以下を全て取得
• ルートWFからchildrenキーを追いかけて構造把握(でよい?)
参考)WFの構造把握
いままでのところを、実際に試してみましょう。
- 9. Copyright©2018 NTT corp. All Rights Reserved. 9
実演するWFの構成
ルートWF
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
ルートWF
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
子WF
Python Action
Python Action
Python Action
Python Action
sample1 sample2
- 10. Copyright©2018 NTT corp. All Rights Reserved. 10
• Mistral Workflowで、子Actionもしくは子
Workflowを並列に実行した場合に問題が発生する場合
がある。
• WFのchildren情報が一部のみ含まれる。
• 実行中・実行済みWFの構造把握(修正)
• GET/api/v1/executions/{ルートWFのID}/children で子
WF以下を全て取得
• ルートWFからchildrenキーを追いかけて構造を把握、かつ、
リーフとなるアクションを探し出し、parentキーを追いかけて
構造を補完
(リーフとなるアクション(parentキーのみのアクション)を探
し出し、parentキーを追いかけて構造を把握するのみでよいと
思われるが、現時点で未試験です)
利用上の問題点