Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NW機器の設定自働化に向けたST2機能の活用

902 views

Published on

Stackstormが持つpause/resume機能について概要を説明する。

Published in: Software
  • Be the first to comment

  • Be the first to like this

NW機器の設定自働化に向けたST2機能の活用

  1. 1. Copyright©2018 NTT corp. All Rights Reserved. ネットワーク機器の設定自働化に向けた Stackstorm機能の活用 NTT ソフトウェアイノベーションセンタ 福田晴元 Copyright(c)2018 NTT Corp. All Rights Reserved.
  2. 2. Copyright©2018 NTT corp. All Rights Reserved. 2 • 本日話題とするStackstormの機能は、 「execution pause」と「execution resume」の停 止・再開機能です。 • 物理機器の増設や更改といった、物理接続や接続変更後の 機器設定時に、これら機能を利用すると想定しています。 • 新設や接続変更の伴う工事では、想定外の状態となる可能性が0で はないため、安全のために一時停止する機能を備える必要がある と考えます。 • 既に構築済みのネットワーク上に、お客様のオーダーに従って設 定を投入するといった、日常的に行われるネットワーク工事では 上記機能の利用機会は少なく、Inquiries機能の利用が想定されま す。 対象とするネットワーク工事
  3. 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. 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. 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. 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. 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. 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. 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. 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キーを追いかけて構造を把握するのみでよいと 思われるが、現時点で未試験です) 利用上の問題点

×