IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立情報通信エンジニアリングの特許一覧

特開2024-154055プログラム作成・実行装置およびプログラム作成・実行方法
<>
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図1
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図2
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図3
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図4
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図5
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図6
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図7
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図8
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図9
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図10
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図11
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図12
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図13
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図14
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図15
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図16
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図17
  • 特開-プログラム作成・実行装置およびプログラム作成・実行方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154055
(43)【公開日】2024-10-30
(54)【発明の名称】プログラム作成・実行装置およびプログラム作成・実行方法
(51)【国際特許分類】
   G06F 8/65 20180101AFI20241023BHJP
【FI】
G06F8/65
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023067659
(22)【出願日】2023-04-18
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.JAVASCRIPT
(71)【出願人】
【識別番号】000233295
【氏名又は名称】株式会社日立情報通信エンジニアリング
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】飯島 智之
(72)【発明者】
【氏名】村中 延之
(72)【発明者】
【氏名】森 久斗
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA11
5B376AA21
5B376AA32
5B376AA39
5B376CA37
(57)【要約】
【課題】システムを構成するネットワーク機器の設定を可能にして、ネットワークシステム構築の手間とシステム開発者の工数を軽減する。
【解決手段】プログラム作成・実行装置は、REST API情報を含むネットワーク機器の設定を行うコマンドのHTTPメソッドとパラメータの実行履歴情報データと、実行履歴情報データを分析した分析結果情報データとを有し、分析結果情報データに基づいて、定期的に、一定期間内におけるHTTPメソッドとネットワーク設定の設定項目が一定の閾値以上のときに、REST API情報を含むネットワーク機器の設定を行うコマンドと同じ機能を実現するAnsibleのPlaybookとAnsible上で実行されるAnsible実行プログラムとを作成する。
【選択図】 図14
【特許請求の範囲】
【請求項1】
API(Application Programming Interface)情報を含むコマンドに基づいて、プログラムを作成し、作成したプログラムを実行するプログラム作成・実行装置であって、
前記API情報を含むコマンドのメソッドとパラメータの実行履歴情報データと、
前記実行履歴情報データを分析した分析結果情報データとを有し、
前記分析結果情報データに基づいて、定期的に、前記API情報を含むコマンドと同じ機能を実現する設定ファイルとプログラムとを作成することを特徴とするプログラム作成・実行装置。
【請求項2】
前記メソッドは、ネットワーク装置の設定を行うメソッドであることを特徴とする請求項1記載のプログラム作成・実行装置。
【請求項3】
さらに、前記API情報に含まれる項目に対しての閾値を保持する閾値情報データを有し、
一定期間内の前記API情報を含むコマンドでの前記API情報に含まれる項目の使用回数をカウントし、前記API情報に含まれる項目の使用回数を、前記閾値情報データの前記API情報に含まれる項目に対しての閾値と比較し、前記API情報に含まれる項目の使用回数がその項目の閾値以上のときに、前記API情報を含むコマンドと同じ機能を実現する設定ファイルとプログラムとを作成することを特徴とする請求項2記載のプログラム作成・実行装置。
【請求項4】
前記API情報に含まれる項目は、メソッドまたは前記ネットワーク装置の設定項目であることを特徴とする請求項3記載のプログラム作成・実行装置。
【請求項5】
前記APIは、REST API(Representational State Transfer Application Programming Interface)であり、
前記設定ファイルは、AnsibleのPlaybookであり、前記プログラムは、Ansible上で実行されるAnsible実行プログラムであることを特徴とする請求項1記載のプログラム作成・実行装置。
【請求項6】
前記メソッドは、HTTPメソッドであることを特徴する請求項1記載のプログラム作成・実行装置。
【請求項7】
プログラム作成・実行装置により、REST API(Representational State Transfer Application Programming Interface)情報を含むコマンドに基づいて、プログラムを作成し、作成したプログラムを実行するプログラム作成・実行方法であって、
前記プログラム作成・実行装置は、
前記REST API情報を含むコマンドのHTTPメソッドとパラメータの実行履歴情報データと、
前記実行履歴情報データを分析した分析結果情報データとを有し、
前記プログラム作成・実行装置は、前記分析結果情報データに基づいて、定期的に、前記REST API情報を含むコマンドと同じ機能を実現するAnsibleのPlaybookとAnsible上で実行されるAnsible実行プログラムとを作成するステップを有することを特徴とするプログラム作成・実行方法。
【請求項8】
前記HTTPメソッドは、ネットワーク装置の設定を行うメソッドであることを特徴とする請求項7記載のプログラム作成・実行方法。
【請求項9】
前記プログラム作成・実行装置は、さらに、前記REST API情報に含まれる項目に対しての閾値を保持する閾値情報データを有し、
前記AnsibleのPlaybookとAnsible上で実行されるAnsible実行プログラムとを作成するステップにおいて、一定期間内の前記API情報を含むコマンドに含まれるHTTPメソッドまたは前記ネットワーク装置の設定項目の使用回数をカウントし、前記HTTPメソッドまたは前記ネットワーク装置の設定項目の使用回数を、前記閾値情報データの前記HTTPメソッドまたは前記ネットワーク装置の設定項目に対しての閾値と比較し、前記HTTPメソッドまたは前記ネットワーク装置の設定項目の使用回数が前記閾値情報データの前記HTTPメソッドまたは前記ネットワーク装置の設定項目に対しての閾値以上のときに、前記API情報を含むコマンドと同じ機能を実現する設定ファイルとプログラムとを作成することを特徴とする請求項8記載のプログラム作成・実行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム作成・実行装置およびプログラム作成・実行方法に係り、特に、REST APIからプログラムを生成することにより、ネットワーク機器の設定を可能にして、ネットワークシステム構築の手間を軽減するのに好適なプログラム作成・実行装置およびプログラム作成・実行方法に関する。
【背景技術】
【0002】
近年、ネットワーク技術の進歩と企業の勤務意識の変化につれ、リモートワークが普及し、イントラネットからプライベートクラウド/パブリッククラウドへ接続する形態から、イントラネット外からもプライベートクラウド/パブリッククラウドへ接続する形態にネットワークの構成が変化してきている。それを実現するため、SASE(Secure Access Service Edge)の製品やサービスの利用が拡大している。SASEは、ネットワークセーフティの対象を社内などの特定のネットワーク以外にも拡張し、ネットワークとセキュリティの機能をクラウドで統合的に提供する技術の総称である。SASEに含まれる技術として、SD-WAN(Software Defined Wide Area Network)やSWG(Secure Web Gateway)等がある。SD-WANは、拠点間を繋ぐ物理的なWAN(Wide Area Network)の経路をソフトウェアにより柔軟に制御する技術である。一方、SWGは、インターネットへのゲートウェイの機能をイントラネットとインターネットの間の境界ではなくクラウド側で提供することにより、イントラネット内外からのプライベートクラウド/パブリッククラウドへのアクセスをセキュアに提供する技術である。SASEは複数の製品やサービスで構成され、単一の製品やサービスで実現できるわけではない。そのため、システムはより複雑化し、設定や運用の負荷が高くなっている。そこで、各製品・サービスは、それらをプログラムで制御できるよう、またそれぞれが連携できるよう、API(Application Programming Interface)を提供している。
【0003】
システム開発者にとっては、具体的に開発するシステムのネットワーク機器の設定などのパラメータ設定やシステム上で動作するプログラムを開発する必要があるが、システムが大規模になるほど開発労力がかかり、カスタマイズなどの保守にも膨大な工数がかかることになっていた。
【0004】
特許文献1には、システムのマイグレーションの開発を効率的に行うため、汎用パラメータを個別パラメータに整合するように更新する技術が開示されている。特許文献1に開示された技術によれば、汎用パラメータで構成された設定ファイルを用意しておき、案件に応じて汎用パラメータを個別パラメータに更新するだけで設定や情報取得が可能となる。
【0005】
一方、APIにより、簡潔に・効率的に情報のやりとりをシステムで行うため、REST API(Representational State Transfer Application Programming Interface)が提唱されている。REST APIは、APIの理念(統一インタフェース(Uniform Interface)、アドレス可能性(Addressability)、接続性(Connectability)、ステートレス性(Stateless)の原則を含む)であり、特定の規格を定めるものでないが、一般には、設定対象となる製品やサービスのURL(Uniform Resource Locator)に対し、パラメータを載せたHTTP(Hyper-Text Transfer Protocol)メッセージを送信することにより、設定や情報取得を行うように実装される。
【0006】
非特許文献1には、このREST APIの仕様書からWebクライアントのプログラムの一部を自動生成することができるエディタが開示されている。
【0007】
また、プログラム言語Pythonをベースとしたインフラ構築自動化ツールとして、Ansibleが提供されている(非特許文献2)。Ansibleは、IT機器の管理を効率化・自動化するオープンソースの構成管理ツールであり、これを使うことにより、IT機器の煩雑な設定作業が自動化されるため、管理者の負担を大幅に軽減できるとされる。Ansibleは、直観的な記述が可能なYAML形式の定義ファイル(Playbook)を使うため、設定にあたり高度なプログラミング知識も必要なく、導入しやすい構成管理ツールである。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2020-61019号公報
【非特許文献】
【0009】
【非特許文献1】“Swagger Editor”、SMARTBEAR、[online]、[令和5年2月18日検索]、<URL:https://swagger.io/tools/swagger-editor/>
【非特許文献2】:“Red Hat Ansible”、RedHat, Inc.、[online]、[令和5年2月18日検索]、<URL:https://www.ansible.com/>
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記REST APIにより機能を実行するためには、システム開発者は、REST APIをサポートするようなWebクライアントのプログラムを別途作成する必要がある。ここで、上記非特許文献1に開示された技術を用いれば、REST APIの仕様書からWebクライアントのプログラムの一部を自動生成することができる。しかしながら、そのように自動生成されるプログラムは、あくまでも単一の製品やサービスの設定や情報取得を可能とするプログラムの一部であり、複数の製品やサービスを統合的に管理する場合には、それを実現するプログラムを人手で作成する必要がある。
【0011】
一方、上記非特許文献2に示されたAnsibleを利用することにより、複数の製品やサービスをPlaybookと呼ばれる設定ファイルで管理することが可能である。例えば、ある製品やサービスを設定した結果、またはある製品やサービスから取得した情報に応じて、別の製品やサービスの設定を変更することが、同一のPlaybook内で定義可能である。しかし、必ずしもシステムがAnsibleに対応しているとは限らないため、そのようなときには、システム開発者は、Playbookやシステム固有の設定プログラムなどを個別に開発しなければならなかった。
【0012】
また、上記特許文献1のシステム構築パラメータに関する技術は、汎用パラメータを個別パラメータに整合するように更新することにより、システムのマイグレーションの開発を効率的に行うようにするというものであった。しかしながら、そもそも設定ファイルの作成は、人手で実施しておく必要があり、システムの汎用パラメータを取得するのに工数がかかる上に、製品やサービスが追加された場合、またはそれらの構成が変更された場合には、そのつど、設定ファイルを人手で作成または変更する必要がある。
【0013】
本発明の目的は、システムがREST APIにより設定されるときに、REST APIからシステムの設定ファイルとプログラムを生成することにより、システムを構成するネットワーク機器の設定を可能にして、ネットワークシステム構築の手間とシステム開発者の工数を軽減することができるようなプログラム作成・実行装置およびプログラム作成・実行方法を提供することにある。
【課題を解決するための手段】
【0014】
本発明のプログラム作成・実行装置の構成は、好ましくは、API(Application Programming Interface)情報を含むコマンドに基づいて、プログラムを作成し、作成したプログラムを実行するプログラム作成・実行装置であって、API情報を含むコマンドのメソッドとパラメータの実行履歴情報データと、実行履歴情報データを分析した分析結果情報データとを有し、分析結果情報データに基づいて、定期的に、API情報を含むコマンドと同じ機能を実現する設定ファイルとプログラムとを作成するようにしたものである。
【発明の効果】
【0015】
本発明によれば、システムがREST APIにより設定されるときに、REST APIからシステムの設定ファイルとプログラムを生成することにより、システムを構成するネットワーク機器の設定を可能にして、ネットワークシステム構築の手間とシステム開発者の工数を軽減することができるようなプログラム作成・実行装置およびプログラム作成・実行方法を提供することができる。
【図面の簡単な説明】
【0016】
図1】実施形態1に係るネットワークシステムの構成例を示すブロック図である。
図2】プログラム作成・実行装置の機能構成を示すブロック図である。
図3】通信経路提供装置の機能構成を示すブロック図である。
図4】セキュリティ提供装置の機能構成を示すブロック図である。
図5】プログラム作成・実行装置のハードウェア・ソフトウェア構成を示すブロック図である。
図6】通信経路提供装置のハードウェア・ソフトウェア構成を示すブロック図である。
図7】セキュリティ提供装置のハードウェア・ソフトウェア構成を示すブロック図である。
図8】プログラム作成・実行装置にREST APIを含むコマンドを実行させる一例を示す図である。
図9】プログラム作成・実行装置にAnsibleを実行させる一例を示す図である。
図10】分析結果情報データテーブルの一例を示す図である。
図11】閾値情報データテーブルの一例を示す図である。
図12】REST APIを含むコマンドの実行を分析して分析結果情報データを格納する一連の処理を示すシーケンス図である。
図13】PlaybookとAnsible実行プログラムを生成して、Ansibleの機能として実行する一連の処理を示すシーケンス図である。
図14】REST API実行履歴の分析をして、PlaybookとAnsible実行プログラムを生成する処理を示すフローチャートである。
図15】PlaybookとAnsible実行プログラムを生成する処理の詳細を示すフローチャートである。
図16】プログラム作成・実行装置で作成されるPlaybookの一例を示す図である。
図17】プログラム作成・実行装置で作成されるAnsible実行プログラムの一例を示す図である。
図18】プログラム作成ユーティリティ画面の一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態1について、図1ないし図18を用いて説明する。
【0018】
先ず、図1ないし図7を用いて実施形態1に係るネットワークシステムの構成について説明する。
【0019】
ネットワークシステムは、一つ以上の拠点300と一つ以上のデータセンタ400がインターネット1により接続された構成である。本実施形態では、ユーザが拠点300からデータセンタ400の提供するクラウドサービスを享受するためのSD WANの構成を前提とする形態を例にとって説明する。SD-WANとは、既に説明したように、ネットワークをソフトウェアで制御するSDN(Software Defined Networking)の技術をWANに適用し、拠点間接続やクラウド接続などにおいて柔軟なネットワーク構成やトラフィックコントロールなどを実現する技術やサービスをいう。
【0020】
拠点300には、一つ以上の通信経路提供装置20(図1では、20a、20b、20c、…と表記)、一つ以上のユーザ端末40(図1では、40a、40b、40c、…と表記)が設置されている。通信経路提供装置20は、例えば、SD-WANを実現するスイッチなどのネットワーク装置である。
【0021】
ユーザ端末40は、通信経路提供装置20及びインターネット1を介して、データセンタ400などの他のサイトとデータの送受信をする機器であり、例えば、PC(Personal Computer)、タブレットPC、スマートフォンなどの情報処理機器やセンサ等である。ユーザ端末40は、テキスト、音声、および、映像等のデータをインターネット1に接続された他のサイトのサーバ(図示せず)などに送受信する。例えば、図1では、ユーザ端末40aが通信経路提供装置20aを介して、インターネット1と接続された外部のサーバに対してテキスト、音声、および映像等のデータを送受信している。
【0022】
通信経路提供装置20は、IPsec(IP security)トンネル7(図1では、7a、7bと表記)という仮想的通信路を構築する手段により、インターネット1上に、別の拠点300やデータセンタ400への通信経路を提供する。ここで、IPsecとは、VPN(Virtual Private Network:仮想専用通信網)を実現するための通信規格であり、IPsecのトンネルモードでは、元のIPパケットのIPヘッダを暗号化し、新たなIPヘッダが付加され、IPパケットのデータグラムも暗号化することにより、IPパケット全体が暗号化される。また、本実施形態の通信経路提供装置20は、HTTPプロトコルの機能をサポートすることを仮定する。
【0023】
通信経路提供装置20は、拠点内のLAN(Local Area Network)3により接続されたユーザ端末40からのデータを受信すると、宛先に応じて、別拠点300やデータセンタ400へのIPsecトンネル7bにデータを転送する。または、データのトンネル化をせずに、インターネット1により直接データを、他のサイトに転送する。そして、別拠点300やデータセンタ400と接続されているIPsecトンネル7からユーザ端末40宛てのデータを受信すると、データをユーザ端末40へ転送する。また、インターネット1からユーザ端末40宛てのデータを受信すると、データをユーザ端末40へ転送する。
【0024】
データセンタ400は、プログラム作成・実行装置100、セキュリティ提供装置30、通信経路提供装置20、仮想端末50(図1では、50a、50bと表記)、クラウドサービスを提供するサーバ(図示せず)が、LAN5により接続された形態で設置されるサイトである。
【0025】
セキュリティ提供装置30は、例えば、通信のセキュリティ機能を有するネットワーク装置である。セキュリティ提供装置30は、送信されてくるデータを監視し、接続の許可・不許可を判定する機能を有する。セキュリティ提供装置30は、ユーザ端末40からIPecトンネル7を介してパケットを受信すると、接続の許可・不許可を判定し、接続の許可を判定した場合には、パケットをインターネット1を介して宛先へ転送し、接続の不許可を判定した場合には、パケットを宛先へ転送せずにそこで廃棄する。また、本実施形態のセキュリティ提供装置30は、HTTPプロトコルの機能をサポートすることを仮定する。
【0026】
プログラム作成・実行装置100は、REST APIに関するデータを収集し、PlaybookとAnsibleの実行プログラムを作成して、作成したPlaybookとAnsibleの実行プログラムを、Ansibleが動作する環境の下で、実行する装置である。本実施形態では、一つ以上の複数の通信経路提供装置20や一つ以上のセキュリティ提供装置30等を設定するプログラムを実行する例を説明する。プログラム作成・実行装置100は、図1の構成の通信経路提供装置20a、20bに対しては、IPsecトンネルの通信路を確立するために必要な設定等を実施し、セキュリティ提供装置30に対しては、接続の許可、不許可をする宛先の設定等を実施する。
【0027】
仮想端末50は、クラウドサービスの一環として、物理的な(ハードウェアで実現される)端末をソフトウェアにより、シミュレートして実現される端末である。プログラム作成・実行装置100は、 Ansible実行プログラムを実行することにより、仮想端末50に対しての設定を行うようにしてもよい。
【0028】
なお、拠点300、データセンタ400、ユーザ端末40、仮想端末50、通信経路提供装置20、セキュリティ提供装置30、プログラム作成・実行装置100、仮想端末50については、構成、種類、接続形態、およびそれらの構成数は、図1に示す例に限らず、適宜、他の態様としてもよい。例えば、プログラム作成・実行装置100は、拠点300に含まれてもよい。
【0029】
次に、図2ないし図4を用いて各コンポーネントの機能構成を説明する。
【0030】
プログラム作成・実行装置100は、図2に示されるように、機能構成として、ユーザインタフェース部105、プログラム作成部110、プログラム実行部120、記憶部130を有する。
【0031】
ユーザインタフェース部105は、外部からREST APIを含むコマンドと、Ansibleを実行するコマンドを受け付ける機能部である。
【0032】
プログラム作成部110は、REST APIの実行履歴情報データ71に基づいて、PlaybookとAnsible実行プログラムを作成する機能部である。プログラム作成部110は、サブ機能部として、実行履歴情報取得・分析部111、設定ファイル・実行コード生成部112を有する。
【0033】
実行履歴情報取得・分析部111は、REST APIに関する実行履歴情報を取得して、分析を行う機能部である。設定ファイル・実行コード生成部112は、REST APIに関する実行履歴情報に基づいて、PlaybookとAnsible実行プログラムのコードを生成する機能部である。
【0034】
プログラム実行部120は、プログラム作成・実行装置100上で動作するOS(Operating System)やアプリケーションプログラムを実行する機能部であり、特に、本実施形態では、Ansibleパッケージとその上で動作するPlaybookとAnsible実行プログラムを実行する。記憶部130は、プログラム作成・実行装置100で使用されるデータを記憶する機能部である。
【0035】
プログラム作成・実行装置100の記憶部130には、閾値情報データ70、実行履歴情報データ71、分析結果情報データ72が保持される。なお、各データの詳細は、後に説明する。
【0036】
通信経路提供装置20は、図3に示されるように、装置制御部21、記憶部24を有する。装置制御部21は、設定内容にしたがって、通信経路提供装置20を制御し通信を行う機能部である。装置制御部21は、サブ機能部として、設定内容受信部22、通信制御部23を有する。設定内容受信部22は、外部から通信経路提供装置20に対する設定内容の情報を受信する機能部である。通信制御部23は、設定内容にしたがって通信を制御する機能部である。記憶部24は、通信経路提供装置20で使用されるデータを記憶する機能部である。
【0037】
通信経路提供装置20の記憶部24には、装置設定情報データ73が保持される。装置設定情報データ73は、例えば、通信に使用される通信ポートのルーティングや仮想化などの通信経路に関する設定データである。
【0038】
セキュリティ提供装置30は、図4に示されように、図3に示した通信経路提供装置20と同様に、装置制御部31、記憶部34を有する。また、装置制御部31は、サブ機能部として、設定内容受信部32、通信制御部33を有する。各部の機能は、通信経路提供装置20と同様である。
【0039】
記憶部34に保持される装置設定情報データ74は、例えば、特定のIPアドレスのIPパケットをブロックするなどの設定データである。
【0040】
次に、図5ないし図7を用いて各コンポーネントのハードウェア・ソフトウェア構成を説明する。
【0041】
プログラム作成・実行装置100のハードウェア構成としては、例えば、図5に示されるPCのような一般的な情報処理装置で実現される。
【0042】
プログラム作成・実行装置100は、CPU(Central Processing Unit)150、主メモリ151、ネットワークI/F(InterFace)152、表示I/F153、入出力I/F154、補助記憶I/F155が、バスにより結合された形態になっている。
【0043】
CPU150は、プログラム作成・実行装置100の各部を制御し、主メモリ151に必要なプログラムをロードして実行する。なお、プログラム作成・実行装置100は複数のCPU、あるいは、実行コアを有してもよい。
【0044】
主メモリ151は、通常、RAMなどの揮発メモリで構成され、CPU150が実行するプログラム、参照するデータが記憶される。
【0045】
ネットワークI/F152は、LAN5と接続するためのインタフェースである。
【0046】
表示I/F153は、LCD(Liquid Crystal Display)などの表示装置180を接続するためのインタフェースである。
【0047】
入出力I/F154は、入出力装置を接続するためのインタフェースである。図5の例では、キーボード191とポインティングデバイスのマウス192が接続されている。
【0048】
補助記憶I/F155は、HDD(Hard Disk Drive)157やSSD(Solid State Drive)などの補助記憶装置を接続するためのインタフェースである。
【0049】
HDD157は、大容量の記憶容量を有しており、本実施形態を実行するためのプログラムが格納されている。プログラム作成・実行装置100には、ユーザインタフェースプログラム161、実行履歴情報取得・分析プログラム162、設定ファイル・実行コード生成プログラム163、Ansibleパッケージ171がインストールされており、プログラム作成・実行装置100が作成したPlaybook172と、Ansible実行プログラム173を保持する。
【0050】
ユーザインタフェースプログラム161、実行履歴情報取得・分析プログラム162、設定ファイル・実行コード生成プログラム163は、それぞれユーザインタフェース部105、実行履歴情報取得・分析部111、設定ファイル・実行コード生成部112の各機能を実現するプログラムである。
【0051】
Ansibleパッケージ171は、ベンダーが提供する、あるいは、OpenソフトウェアであるAnsibleのパッケージプログラムである。Playbook172は、Ansibleを実行するときのYAML形式の設定ファイルである。Ansible実行プログラム173は、プログラム作成・実行装置100が作成し、Ansible上で実行されるプログラムである。
【0052】
なお、HDD157には、OSやその他のアプリケーションプログラムがインストールされるが、図5では省略している。
【0053】
また、HDD157は、閾値情報データ70、実行履歴情報データ71、分析結果情報データ72が格納される。
【0054】
なお、プログラム作成・実行装置100で使用されるプログラムおよびデータの一部または全ては、予めHDD157に格納されていてもよいし、USBメモリのような非一時的記憶媒体から、または、外部の非一時的記憶装置を備えた情報処理装置からネットワーク経由で導入されてもよい。
【0055】
通信経路提供装置20は、ハードウェア構成として、図6に示されるようなインテリジェントな通信装置で実現される。
【0056】
通信経路提供装置20は、MPU(Micro Processing Unit)25、主メモリ26、ROM(Read Only Memory)27、不揮発メモリ28、パケット送受信ポート29が、バスにより結合された形態になっている。
【0057】
MPU25は、通信経路提供装置20の各部を制御し、ROM27に書き込まれたプログラムを実行する。主メモリ26には、プログラムやデータが保持される。ROM27には、設定内容受信プログラム51、通信制御プログラム52が書き込まれており、MPU25により実行される。設定内容受信プログラム51、通信制御プログラム52は、それぞれ設定内容受信部22、通信制御部23の各機能を実現するプログラムである。不揮発メモリ28は、フラッシュメモリなどの電源が消えても情報が保持される半導体メモリである。通信経路提供装置20の不揮発メモリ28には、装置設定情報データ73が格納される。パケット送受信ポート29は、IPパケットの送受信を行う入出力口となる機構である。
【0058】
セキュリティ提供装置30のハードウェア・ソフトウェア構成は、図7に示されるように、図6に示した通信経路提供装置20と同様である。
【0059】
次に、図8および図9を用いてプログラム作成・実行装置100にREST APIを含むコマンドを実行させる例、および、プログラム作成・実行装置100にAnsibleを実行させる例について説明する。
【0060】
本実施形態では、プログラム作成・実行装置100に実行させるREST APIを含むコマンドとして、通信経路提供装置20やセキュリティ提供装置30を設定する例を主に説明する。
【0061】
システム開発者は、図8に示されるように、ユーザインタフェースプログラム161が提供するシェル環境500から、図8に示されるようなコマンドを入力する。図8に示される例は、curlコマンドにより、httpメッセージをネットワーク装置に送信する例である。
【0062】
図8に示されるcurlコマンドは、HTTPメッセージを送信するコマンド501の“curl”の文字列に繋げて入力する。図8に示される例としては、curlコマンドの“-X”オプションとして、メソッド502の“POST”が指定される。メソッド502は、POST、GET、PUT、DELETE等を指定し、それぞれ設定項目505に対する設定、参照、更新、削除を意味する。次に、curlコマンドの“-d”オプションとして、メッセージ503が記述されている。curlコマンドの“-d”オプションは、メソッドがPOSTのときのパラメータを指定するオプションである。メッセージ503は、JSON(JavaScript Object Notation)形式で記載され、この例では、設定項目505に関連するパラメータの値である。
【0063】
アドレス504、設定項目505、設定項目識別子506は、curlコマンドのメソッドを送信するURL(Uniform Resource Locator、詳細な文法は、RFC 3986)の一部として表現される。
【0064】
アドレス504は、プロトコル表示とホストのアドレスを示す情報(本実施形態では、通信経路提供装置20やセキュリティ提供装置30を特定するアドレス)である。それ以下は、URLのリソースパスであり、設定項目505、設定項目識別子506となっている。本実施形態では、設定項目505は、通信経路提供装置20やセキュリティ提供装置30で設定が可能な項目を指定する。通信経路提供装置20に対する設定項目としては、IPsecトンネルの設定等が含まれる。セキュリティ提供装置30に対する設定項目としては、接続の許可・不許可をする宛先の設定等が含まれる。なお、設定項目の具体例は、後に図10により説明する。設定項目識別子506は、設定項目505が複数存在する場合に、その中から一つを特定するための値を指定する。
【0065】
このREST APIを含むコマンドが実行されると、プログラム作成・実行装置100のシェルのコマンド実行により、HTTPメッセージに変換され、通信経路提供装置20やセキュリティ提供装置30に送信される。また、プログラム作成・実行装置100は、実行した履歴を実行履歴情報データ71に格納する。通信経路提供装置20やセキュリティ提供装置30は、HTTPメッセージを設定内容受信部22で受信すると、通信制御部23の機能により、その装置を設定する。
【0066】
次に、図9を用いてプログラム作成・実行装置100にAnsibleを実行させる一例について説明する。
図9に示されるのは、通信経路提供装置20やセキュリティ提供装置30をAnsibleを用いて設定をする際に、シェルから入力する実行例を示している。
【0067】
Ansibleを実行する場合は、そのコマンド601“ansible-playbook”コマンドにPlaybookファイル名602(図9の例では、“set_ipsec.yaml”)を指定して実施する。
【0068】
このコマンドが実行されると、Playbookに指定された内容に基づいてAnsibleのプログラムが動作する。Ansibleのプログラム内にREST APIを実行する処理が記載されていれば、その処理が実行される。REST APIが実行されると、プログラム作成・実行装置100のプログラム実行部120がHTTPメッセージに変換し、その宛先(本実施形態では、通信経路提供装置20やセキュリティ提供装置30)に送信する。また、Ansibleのプログラム内にコマンドを実行する処理が記載されていれば、コマンドを実行する。
【0069】
次に、図10および図11を用いてプログラム作成・実行装置100で使用されるデータについて説明する。
【0070】
分析結果情報データ72は、図10に示される分析結果情報データテーブル720のような形式で表現される。分析結果情報データテーブル720は、REST APIの実行履歴の分析結果を示す情報を格納するテーブルであり、図10に示されるように、設定項目720a、設定項目使用回数720b、メソッド720c、パラメータ720d(図10の例では、三つのパラメータを有し、パラメータ1:720d1,パラメータ2:720d2,パラメータ3:720d3となっている)、設定項目識別子720e、アドレス720f、メソッド使用回数720gの各フィールドを有する。
【0071】
設定項目720aは、通信経路提供装置20やセキュリティ提供装置30で設定が可能な項目である。図10の例では、“Destination”,“ipsec”,“policy”が指定されている。設定項目使用回数720bは、設定項目720aに記述した設定項目が、一定期間(例えば、過去一月間)内に、REST APIで使用された回数である。メソッド720cは、図8で既に説明したように、POST、GET,PUT、DELETE等が有る。パラメータ720dは、設定項目720aに記述した設定項目に関連するパラメータの値である。設定項目識別子720eは、設定項目720aが、複数設定されている場合に、その中から一つを特定する値である。アドレス720fは、REST APIの宛先(本実施形態では、通信経路提供装置20やセキュリティ提供装置30)を特定するアドレスである。メソッド使用回数720gは、一定期間内に、設定項目720aに記述した設定項目毎に各メソッドが使用された回数をカウントした値である。
【0072】
なお、分析結果情報データテーブル720に含まれるフィールドは、これらに限定されず、また、これらのフィールドのいずれかを含まなくてもよいし、他のフィールドを含んでもよい。
【0073】
閾値情報データテーブル700は、項目ごとに、回数の閾値を格納するテーブルであり、図11に示されるように、対象項目700a、閾値700bの各フィールドを有する。対象項目700aには、使用回数を閾値と比較する対象に関する情報が格納される。図11の例では、「設定項目」、「メソッド」が指定されている。閾値700bには、対象項目700aに記載された対象に対応する閾値が格納される。閾値700bの値は、REST APIの項目の使用回数(図10の設定項目使用回数720b)が、この閾値に格納された値以上のときには、そのREST APIは変換されAnsible実行プログラムで実現されることを意味する。このようにするのは、使用回数が少ない設定項目、メソッドについて、Ansible実行プログラムを生成するのは、記憶容量の使用効率が悪くなるおそれがあり、使用回数が多い設定項目、メソッドは、システム運用者にとって、対応するAnsible実行プログラムが有用であると考えられるためである。
【0074】
なお、項目700aに指定される値は、「設定項目」、「メソッド」以外に設けてもよい。
【0075】
次に、図12ないし図15を用いてプログラム作成・実行装置100が、REST API実行履歴からAnsible設定ファイル(以下、単に「Playbook」ともいう)とAnsible実行プログラムを生成して、Ansibleの機能として実行する一連の処理について説明する。
【0076】
先ず、図12を用いてREST APIを含むコマンドの実行を分析して分析結果情報データを格納する一連の処理について説明する。
【0077】
ネットワークシステムの運用者90は、プログラム作成・実行装置100のユーザインタフェース部105により、通信経路提供装置20やセキュリティ提供装置30が提供するREST APIを含むコマンドを入力する(A01)。REST APIを含むコマンドには、図8に示したように、設定対象となる設定項目、設定項目に関連するパラメータ等が含まれる。プログラム作成・実行装置100は、コマンドの入力を受け付けて、コマンドを実行する(S01)ことにより、ネットワークシステムの運用者90が使用したREST APIをHTTPメッセージに変換し、通信経路提供装置20やセキュリティ提供装置30へ送信する(A02)。
【0078】
通信経路提供装置20やセキュリティ提供装置30は、HTTPメッセージを受信すると、その内容に基づき、自身の装置設定を実施する(S02)。そして、通信経路提供装置20やセキュリティ提供装置30は、その設定結果をプログラム作成・実行装置100へ応答する(A03)。プログラム作成・実行装置100のユーザインタフェース部105は、REST APIを含むコマンドを実行した結果を、ネットワークシステムの運用者90に対して表示する(S03)。また、コマンドの実行履歴を実行履歴情報データ71として格納する(S04)。
【0079】
一方、プログラム作成・実行装置100の実行履歴情報取得・分析部111は、定期的(例えば、一日に一回)に実行履歴情報データ71を参照し、実行履歴情報を取得する(S05)。取得すると、設定項目毎、メソッド毎に、それらが単位時間あたりに使用された回数をカウントし、パラメータの組み合わせを分析する(S06)。そして、その分析結果を分析結果情報データ72として格納する(S07)。
【0080】
次に、図13を用いて、PlaybookとAnsible実行プログラムを生成して、Ansibleの機能として実行する一連の処理について説明する。
プログラム作成・実行装置100のプログラム作成部110は、分析結果情報データ72から分析結果情報を読込む(S10)。そして、その分析結果情報に基づいて、PlaybookとAnsible実行プログラムを生成する(S11)。 PlaybookとAnsible実行プログラムを生成する処理の詳細は、後述する。
【0081】
ネットワークシステムの運用者90は、図9に示した“ansible-playbook”コマンド)のようなAnsibleのPlaybook実行コマンドを入力すると(A11)、ユーザインタフェース部105は、コマンドを実行して(S12)、プログラム実行部120は、Ansible処理を行う(S20)。
【0082】
Ansible処理の中で、Playbook172が実行され(S21)、Playbook172のタスクとして、Ansible実行プログラム173が実行される(S22)。
【0083】
Ansible実行プログラム173が実行されることにより、REST APIが生成され、REST APIはHTTPメッセージに変換されて通信経路提供装置20やセキュリティ提供装置30へ送信される(A13)。通信経路提供装置20やセキュリティ提供装置30は、HTTPメッセージを受信すると、その内容にもとづいて自身の装置設定を行う(S13)。そして、その設定結果をプログラム作成・実行装置100へ応答する(A14)。最後にプログラム作成・実行装置100のユーザインタフェース部105は、コマンドの実行結果を表示する(S14)。なお、処理の整合性が保たれる限り、各処理の実行順序を変更してもよい。
【0084】
なお、上記では、ネットワークシステムの運用者90が、Playbookを指定してAnsibleを実行し、通信経路提供装置20やセキュリティ提供装置30の設定を行う例を示したが、ネットワークシステムの運用者90は、生成されたPlaybookとAnsible実行プログラムを参考にしてPlaybookとAnsible実行プログラムを作成し、通信経路提供装置20やセキュリティ提供装置30の設定や情報取得に関して、プログラム作成の工数を低減する用途に用いることもできる。
【0085】
次に、図14および図15を用いてREST API実行履歴の分析をして、PlaybookとAnsible実行プログラムを生成する処理について説明する。
【0086】
プログラム作成・実行装置100のプログラム作成部110は、定期的に(例えば、1日に1回)、S102~S112の処理を繰り返し実行する(S101~S113、ループ処理L1)。
【0087】
ループ処理L1では、先ず、プログラム作成・実行装置100は、閾値情報データテーブル700の対象項目700aが「設定項目」である閾値700bの値を取得する(S102)。また、分析結果情報データテーブル720から分析結果情報も取得する(S103)。そして、プログラム作成・実行装置100は、設定項目使用回数720bの値と、対象項目700aが「設定項目」である閾値700bの値を比較して、設定項目使用回数720bの値が、閾値700bの値以上であるか否かを判定する(S104)。例えば、図11に示されるように、対象項目700aが「設定項目」である閾値700bの値が10であり、設定項目使用回数720bの値が100であれば、閾値700bの値以上であるため(S104:YES)、分析結果情報データテーブル720の設定項目720aに格納されている名称の文字列を、Ansible実行プログラムの設定項目名(図17により後述)、Playbookのタスク名(図16より後述)に設定する(S105)。対象項目700aが「設定項目」である閾値700bの値が10であり、設定項目使用回数182の値が10未満であるときには(S104:NO)、S101に戻り、分析結果情報データテーブル720の次のレコードについて同じ処理を繰り返す。
【0088】
次に、プログラム作成・実行装置100のプログラム作成部110は、S107~S112の処理を繰り返し実行する(S106~S111、ループ処理L2)。
【0089】
ループ処理L2では、S103で取得した分析結果情報データテーブル720のレコードのメソッド720cにおけるメソッド使用回数720gの値を参照し、その値と、閾値情報データテーブル700の対象項目700aが「メソッド」である閾値700bの値を取得し、メソッド使用回数720gの値と、閾値情報データテーブル700の対象項目700aが「メソッド」である閾値700bの値を比較して、メソッド使用回数720gの値が、閾値700bの値以上であるか否かを判定する(S107)。例えば、対象項目700aが「メソッド」である閾値700bの値が10であり、メソッド使用回数720gの値が50であれば、メソッド使用回数720gの値が以上であるため(S107:YES)、メソッド720cの値をメソッドリストに格納する(S108)。メソッドリストは、メソッドの情報を格納するプログラミング上のリストであり、後のステップのS112で参照される。同様の例で、メソッド使用回数720gの値が10未満であれば、閾値700bの値未満であるため(S107:NO)、S106に戻り、分析結果情報データテーブル720のレコードの同じ設定項目720aを有する次のメソッド720cにおけるメソッド使用回数720gについて同様の比較を実施する。
【0090】
次に、プログラム作成・実行装置100のプログラム作成部110は、分析結果情報データテーブル720のレコードのメソッド720cごとに、パラメータ720dの値を参照し、必ず使用されているパラメータがあれば、必須パラメータとして、それを必須パラメータリストに格納し、必ずしもいつも使用されているわけではないパラメータがあれば、オプションパラメータとして、それオプションパラメータリストに格納する(S109)。例えば、図10の例では、設定項目720aの値が、“Destination”、メソッド720cの値が、“POST”のレコードについては、パラメータ1:720d1が、必須パラメータになり、パラメータ2:720d2、パラメータ3:720d3がオプションパラメータになる。なお、必須パラメータリストとオプションパラメータリストを用いたPlaybookとAnsible実行プログラムの生成については、後に説明する。
【0091】
次に、プログラム作成・実行装置100は、メソッド720cの値のレコードごとに、設定項目識別子720eの値が格納されているか否かを確認し、設定項目識別子720eの値が格納されているときには、設定項目識別子720eの値より、設定項目識別子パラメータを作成する。同様に、メソッド720cの値のレコードごとに、アドレス720fの値より、アドレスパラメータを作成する(S110)。なお、設定項目識別子パラメータとアドレスパラメータを用いたPlaybookとAnsible実行プログラムの生成については、後に説明する。
【0092】
ループ処理L2を抜けて、プログラム作成・実行装置100のプログラム作成部110は、S105の設定項目名、タスク名、S108のメソッドリスト、S109の必須パラメータリスト、オプションパラメータリスト、S110の設定項目識別子パラメータ、アドレスパラメータに基づき、PlaybookとAnsible実行プログラムを生成する処理を実行する(S112)。PlaybookとAnsible実行プログラムを生成する処理を実行する処理の詳細については、図15を用いて後述する。
【0093】
次に、図15を用いてPlaybookとAnsible実行プログラムを生成する処理の詳細について説明する。
これは、図14のS112に該当する処理である。
【0094】
先ず、プログラム作成・実行装置100のプログラム作成部110は、図14のS105で設定された設定項目名を用いた名称のAnsible実行プログラムファイルを作成する(S201)。Ansible実行プログラムファイルには、 Ansible実行プログラムが記述される。また、図14のS105で設定されたタスク名を用いた名称のPlaybookファイルを作成する(S202)。Playbookファイルには、 Playbookが記述される。
【0095】
次に、プログラム作成・実行装置100のプログラム作成部110は、S204、S211~S242の処理を繰り返し実行する(S203~S205、ループ処理L3)。
【0096】
先ず、S108で設定されたメソッドリストを参照し、リスト内にメソッドが有る場合、メソッドの内容に応じて分岐処理を実施する(S204)。
【0097】
メソッドがPOST、PUTの場合、以下の処理をする。
始めに、プログラム作成・実行装置100のプログラム作成部110は、S109で設定した必須パラメータリスト、オプションパラメータリスト内にパラメータが有る場合、それらをAnsible実行プログラム内で宣言する。また、S110で設定した設定項目識別子パラメータが有る場合、設定項目識別子をAnsible実行プログラム内で宣言する。そして、S110で設定したアドレスパラメータのアドレスをプログラム内で宣言する。
【0098】
また、PlaybookがAnsibleで実行されたときに、パラメータをPlaybookから取得する処理を、Ansible実行プログラム内の実行文として記載する。そして、上記のアドレス、設定項目名、設定項目識別子をURLに設定し、上記の必須パラメータリスト、オプションパラメータリストを、ペイロードして設定する処理を記載し、それらのURLおよびペイロードを指定してHTTPメッセージを送信する処理を記載する(S211、S221)。
【0099】
次に、プログラム作成・実行装置100のプログラム作成部110は、S201で作成したAnsible実行プログラムファイル名と同一のタスク名をPlaybook内で定義する。そして、メソッド、必須パラメータリスト、オプションパラメータリスト(それらのパラメータリスト内にパラメータが有る場合)、設定項目識別子(設定項目識別子パラメータが有る場合)、アドレスパラメータのアドレスをタスクの実行時に必要となるパラメータとして宣言する(S212、S212)。
【0100】
メソッドがGETの場合には、S231、S232、メソッドがDELETEの場合には、S241、S242の処理を実行する。
【0101】
メソッドがGETのときのS231と、メソッドがDELETEのときのS241では、S211、S221と異なり、必須パラメータリスト、オプションパラメータリストにペイロードに設定する必要がないためその処理が省かれている。
【0102】
次に、図16および図17を用いてプログラム作成・実行装置で作成され、実行されるPlaybookとAnsible実行プログラムの具体例について説明する。
【0103】
プログラム作成・実行装置100のプログラム作成部110は、図16に示されるようなタスク名を用いた名称のPlaybookファイル800を作成する。図16では、Playbookは、yaml形式で記述されるため、拡張子のyamlをつけて、“Playbook_Destination.yaml”としている。また、Playbookファイル800に記述されるPlaybook内に、Ansible実行プログラムファイル名と同一のタスク名を、タスク名宣言文801により定義する。図17では、タスク名として、“Set_Destination”が定義されている。
【0104】
次に、メソッドリストを参照し、リスト内にメソッドが有る場合、Playbook内のタスクパラメータ定義部810に、Ansible実行プログラムに渡すパラメータを記載する。タスクパラメータ定義部810として、メソッド、必須パラメータリスト(必須パラメータリストに必須パラメータがあるとき)、オプションパラメータリスト(オプションリストにオプションパラメータがあるとき)、設定項目識別子(設定項目識別子リストに設定項目識別子があるとき)、アドレスが指定される。
【0105】
また、プログラム作成・実行装置100は、図17に示されるようなPlaybookで定義されたタスク名を用いた名称のAnsible実行プログラムファイル900を作成する。図17の例では、ファイル名は、プログラム言語Pythonにより記述されることを示す拡張子pyをつけた“Set_ Destination.py”となっている。
【0106】
Ansible実行プログラムファイル900に記述されたAnsible実行プログラムは、パラメータ宣言部911、パラメータ代入部912、設定項目代入部913、URL作成部914、ペイロード作成部920、HTTPメッセージ送信部921からなる。
【0107】
パラメータ宣言部911には、Ansibleプログラム関数内での変数が宣言されている。パラメータ代入部912では、Playbook実行時に、各変数の値がPlaybookから代入される。設定項目代入部913では、Playbook実行時に、設定項目の変数の値がPlaybookから代入される。
【0108】
URL作成部914は、パラメータ代入部912で値が設定されたアドレス、設定項目名、設定項目識別子を用いて、HTTPメッセージを送信する先のURLを作成する。ペイロード作成部920では、パラメータ代入部912で値が設定された必須パラメータリスト、オプションパラメータリストを用いて、HTTPメッセージのペイロードを作成する。
【0109】
HTTPメッセージ送信部921では、それぞれのメソッドごとに、URLと、ペイロード(メソッドにある場合)を指定して、HTTPメッセージを送信する。
【0110】
次に、図18を用いてプログラム作成・実行装置100が提供するユーザインタフェース画面の例について説明する。
プログラム作成ユーティリティ画面1000は、ネットワークシステムの運用者90に、 REST APIからPlaybookとAnsible実行プログラムを作成し、実行するときに用いられるユーティリティ画面である。
【0111】
プログラム作成ユーティリティ画面1000は、プログラム作成指定領域1010、ソフトウェア構成ツリー表示領域1020、ソフトウェアコード表示領域1030からなる。
【0112】
プログラム作成指定領域1010は、閾値入力リスト1011、優先設定項目入力欄1012からなる。
【0113】
閾値入力リスト1011には、リストにより指定された「設定項目」、または、「メソッド」の閾値(図11の閾値情報データテーブル700の閾値700bの値)が入力される。優先設定項目入力欄1012には、設定項目を表す文字列が入力され、ここに指定された設定項目(図18の例では、“ipsec”)では、使用回数によらず(図14に示されるS104では、使用回数が閾値以上の設定項目が対象であったことに留意)、PlaybookとAnsible実行プログラムを作成することを意味する。
【0114】
ソフトウェア構成ツリー表示領域1020には、ネットワーク設定の対象となる通信経路提供装置20、セキュリティ提供装置30に関連するPlaybookとAnsible実行プログラムがツリー形式に表示される。
【0115】
ソフトウェアコード表示領域1030には、ソフトウェア構成ツリー表示領域1020に表示されているPlaybook名、Ansible実行プログラム名を選択したときに、それらの具体的なコードが表示される。これらのPlaybook、Ansible実行プログラムを参照することにより、プログラム開発者は、開発労力が軽減される。
【0116】
以上、本実施形態によれば、ネットワークシステムの運用者90は、REST APIを含むコマンドの履歴情報により、通信経路提供装置20やセキュリティ提供装置30に対して設定するPlaybookとAnsible実行プログラムが自動的に生成されるため、それらを用いて複数の通信経路提供装置20やセキュリティ提供装置30を設定・運用することができる。また、製品やサービスが追加された場合、またはそれらの構成が変更された場合であっても、改めてプログラムや設定ファイルを開発するコストを軽減することができる。また、一定期間内において、メソッドとネットワーク機器の設定項目が閾値以上のREST APIを含むコマンドのみPlaybookとAnsible実行プログラムの生成の対象とする、すなわち、よく使われるコマンドのみを対象とするため、少ない使用回数のコマンドに対して、PlaybookとAnsible実行プログラムが生成されることはなく、記憶装置の容量の圧迫を防ぐことができる。
【符号の説明】
【0117】
1…インターネット、3,5…LAN、7…IPsecトンネル、
20…通信経路提供装置、21…装置制御部、22…設定内容受信部、23…通信制御部、24…記憶部、
30…セキュリティ提供装置、31…装置制御部、32…設定内容受信部、33…通信制御部、34…記憶部、
40…ユーザ端末、
50…仮想端末、
70…閾値情報データ、71…実行履歴情報データ、72…分析結果情報データ、73,74…装置設定情報データ、
90…運用者、
100…プログラム作成・実行装置、105…ユーザインタフェース部、110…プログラム作成部、111…実行履歴情報取得・分析部、112…設定ファイル・実行コード生成部、120…プログラム実行部、130…記憶部、
300…拠点、
400…データセンタ、
500…シェル環境、800…Playbookファイル、900…Ansible実行プログラムファイル、1000…プログラム作成ユーティリティ画面
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18