(57)【要約】      （修正有）【課題】冪等性（ある処理や操作を何度行ってもその結果が変わらないこと）を保証しつつ自システムの設定を行う手段を提供する情報処理装置を提供する。【解決手段】冪等性保証機能付き情報処理装置１００は、自装置で稼働する対象システム４００において、冪等性を保証しつつ所望のシステム状態へ改変するシステム改変部２００を備える。判定部２０１は、既にシステム状態が達成されているか否かを判定する。改変実行部２０２は、システム状態が達成されていない場合、システム状態への改変を実行する。【選択図】図６
2019175039.tif 000002
【特許請求の範囲】
【請求項１】
自装置で稼働するシステムについて、冪等性を保証しつつ所望のシステム状態へ改変するシステム改変部、
を備える冪等性保証機能付き情報処理装置。
【請求項２】
前記システム改変部は、
自装置において、既に前記システム状態が達成されているか否かを判定する判定部と、
前記判定部が、前記システム状態が達成されていないと判定すると、前記システム状態への改変を実行する改変実行部と、
を備える請求項１に記載の冪等性保証機能付き情報処理装置。
【請求項３】
前記システム改変部の実行指示を受け付けるインタフェース部、
をさらに備える請求項２に記載の冪等性保証機能付き情報処理装置。
【請求項４】
前記インタフェース部は、シェルまたはＡＰＩ（Application Programming Interface）である、
請求項３に記載の冪等性保証機能付き情報処理装置。
【請求項５】
前記改変は、ファイルの作成であって、
前記判定部は、前記ファイルが存在するか否かを判定し、
前記改変実行部は、前記判定部が前記ファイルは存在しないと判定した場合、前記ファイルの作成を実行する、
請求項２から請求項４の何れか１項に記載の冪等性保証機能付き情報処理装置。
【請求項６】
前記改変は、プロセスの稼働状態を目標とする稼働状態に制御することであって、
前記判定部は、前記プロセスが目標とする稼働状態か否かを判定し、
前記改変実行部は、前記判定部が前記プロセスは目標とする稼働状態はないと判定した場合、前記プロセスを目標とする稼働状態に制御する、
請求項２から請求項５の何れか１項に記載の冪等性保証機能付き情報処理装置。
【請求項７】
前記システム改変部は、
前記システムに備わるコマンドであって、前記システム状態に改変する機能を有する前記コマンドに対して、冪等性を保証する機能を追加した前記コマンドのラッパーである、
請求項１から請求項６の何れか１項に記載の冪等性保証機能付き情報処理装置。
【請求項８】
情報処理装置で稼働するシステムについて、冪等性を保証しつつ所望のシステム状態へ改変するシステム改変手段を、前記システムが備える前記改変を実行する機能を有するコマンドのラッパーとして、前記システムに実装するステップと、
前記システム改変手段を実行して、前記システムの状態を改変するステップと、
を有するシステム設定方法。
【請求項９】
コンピュータで稼働する所定のシステムの一部を構成するプログラムであって、
前記コンピュータを、
前記システムに対する設定の内容を受け付ける手段、
前記設定の内容を、冪等性を保証しつつ、前記システムに反映させる手段、
として機能させるためのプログラム。
【請求項１０】
コンピュータで稼働するシステムが備える、前記システムの状態を改変する機能を有するコマンドをラップするプログラムであって、
前記コンピュータを、
前記システムにおいて、所望のシステム状態が達成されているか否かを判定する手段、
前記判定の結果、前記システム状態が達成されていないと判定された場合に、前記コマンドを実行する手段、
として機能させ、
前記システムが備える外部インタフェースを介して、呼び出され実行されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冪等性保証機能付き情報処理装置、システム設定方法及びプログラムに関する。
【背景技術】
【０００２】
クラウドコンピューティングや仮想マシンの普及などにより、システム構築を高速かつ数多く行うことが求められている。また、ＩａＣ（Infrastructure as Code）と呼ばれるインフラストラクチャの管理手法が注目を集めている。このような流れの中、システムの設定を自動化する構成管理ツール（例えば、Ａｎｓｉｂｌｅ、Ｃｈｅｆなど）が提供されている。システムの設定を自動化するためには、設定の対象となるシステム（対象システム）の初期状態に依存することなく、対象システムを所望のシステム状態へ改変する必要がある。その為、構成管理ツールは、冪等性を保証する機能を有している。ここで、冪等性とは、ある処理や操作を何度行っても、その実行結果が変わらないことをいう。冪等性を保証するため、構成管理ツールは、例えば、対象システムが目標とする状態となっていない場合にのみ、システムの改変を行う機能を有している。この機能により、例えば、対象システムにおいて設定済みの項目に対して、何度も設定を行ったときに生じうる問題（例えば、適切な設定を上書きしてしまう等）を避けることができる。
【０００３】
なお、特許文献１には、仮想マシンを用いたテスト環境を管理するシステムが開示されている。この管理システムでは、複数のテスト項目から構成されるテストシナリオに従ってテストを実行する場合、あるテスト項目Ｘの実行結果についての冪等性を保証する仮想マシンのスナップショットイメージを作成する。これにより、テスト項目Ｘの次に実施するテスト項目Ｙを実行するためにテスト環境を整える必要がなくなり、テスト項目Ｙの実施に要するコストを低減し、効率的にテストシナリオを実施することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２１８７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的に対象システムの設定を自動化するためには、上記の構成管理ツールを導入するか、自分で対象システムの設定を改変するプログラムを作成する必要がある。しかし、構成管理ツールを導入する場合、ツールの使い方を習得するためのコストを必要としたり、ツールの機能や仕様による制限を受けたりする可能性がある。また、自分で冪等性を保証するプログラムを作成するには非常に手間がかかる。なお、特許文献１には冪等性を保証しつつ、システム設定を行う技術は開示されていない。
【０００６】
そこでこの発明は、上述の課題を解決する冪等性保証機能付き情報処理装置、システム設定方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、冪等性保証機能付き情報処理装置は、自装置で稼働するシステムについて、冪等性を保証しつつ所望のシステム状態へ改変するシステム改変部、を備える。
【０００８】
本発明の一態様によれば、システム設定方法は、情報処理装置で稼働するシステムについて、冪等性を保証しつつ所望のシステム状態へ改変するシステム改変手段を、前記システムが備える標準的なコマンドのラッパーとして、前記システムに実装するステップと、前記システム改変手段を用いて、前記システムの設定を改変するステップと、を有する。
【０００９】
本発明の一態様によれば、プログラムは、コンピュータで稼働する所定のシステムの一部を構成するプログラムであって、前記コンピュータを、前記システムに対する設定の内容を受け付ける手段、前記設定の内容を、冪等性を保証しつつ、前記システムに反映させる手段、として機能させる。
【００１０】
本発明の一態様によれば、プログラムは、コンピュータで稼働するシステムが備える前記システムの状態を改変する機能を有するコマンドをラップするプログラムであって、前記コンピュータを、前記システムにおいて、所望のシステム状態が達成されているか否かを判定する手段、前記判定の結果、前記システム状態が達成されていないと判定された場合に前記コマンドを実行する手段、として機能させ、前記プログラムは、前記システムが備える外部インタフェースを介して、呼び出され実行される。
【発明の効果】
【００１１】
本発明の制御システム、冪等性保証機能付き情報処理装置、システム設定方法及び冪等性保証機能付きプログラムによれば、冪等性を保証しつつ、システムの設定を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態による設定システムの一例を示すブロック図である。
【図２】本発明の一実施形態による設定処理の第１のフローチャートである。
【図３】本発明の一実施形態による設定処理の第２のフローチャートである。
【図４】本発明の一実施形態による設定システムの他の例を示すブロック図である。
【図５】本発明の一実施形態による情報処理装置の最小構成を示すブロック図である。
【図６】本発明の一実施形態による情報処理装置の一例を示すブロック図である。
【図７】本発明の各実施形態における情報処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
＜実施形態＞
以下、一実施形態に係る冪等性保証機能付き情報処理装置について図１〜図３を参照して説明する。
図１は、本発明の一実施形態による設定システムの一例を示すブロック図である。
図示するように設定システム１は、制御装置１０と、情報処理装置１００とを含む。制御装置１０と情報処理装置１００とはネットワークを介して通信可能に接続されている。
本実施形態では、情報処理装置１００で稼働するＯＳ（operating system）２０を、設定対象のシステム（対象システム）とする。また、ＯＳ２０の構成管理を行う場面を例として、設定ファイルの配備やサービスの稼働状態について、冪等性を保証しつつ、設定する機能を説明する。
【００１４】
制御装置１０は、ＯＳ２０に対する設定処理を制御するコンピュータである。制御装置１０は、対象システムを所望の目標状態とする命令コードを記述したシェルスクリプト１１を含む。制御装置１０は、情報処理装置１００にシェルスクリプト１１を送信し、ＯＳ２０上でシェルスクリプト１１を実行する。
【００１５】
情報処理装置１００は、ＯＳ２０と、シェル２１と、ファイル作成コマンドラッパー２２と、サービス制御コマンドラッパー２３とを含んで構成される。情報処理装置１００は、例えば、サーバ装置である。
ＯＳ２０は、情報処理装置１００のオペレーティングシステムである。ＯＳ２０は、冪等性を保証しつつ、ＯＳ２０を所望のシステム状態とするためのシステム改変手段をユーザに提供する。例えば、ＯＳ２０は、設定ファイルを作成するためのファイル作成コマンド、サービスの稼働状態を制御するためのサービス制御コマンドなどのシステム改変手段を有している。これらのシステム改変手段は、ＯＳ２０に備わる標準的なコマンドであるが、これらのコマンドの実行にあたり、冪等性は保証されない。ＯＳ２０は、これらの標準的なコマンドに冪等性を保証する機能を追加したラッパーを備え、これをユーザに提供する。ファイル作成コマンドラッパー２２およびサービス制御コマンドラッパー２３は、このようなラッパーの一例である。
【００１６】
シェル２１は、ＯＳ２０で標準コマンドや上記のラッパーを実行するための外部インタフェースである。シェル２１は、シェルスクリプト１１の実行環境を提供する。制御装置１０は、シェル２１上でシェルスクリプト１１を実行する。
【００１７】
ファイル作成コマンドラッパー２２は、ＯＳ２０の標準的なコマンドであるファイル作成コマンド２２１をラップした実行形式のファイルである。ファイル作成コマンドラッパー２２は、ファイルの作成に対して冪等性を保証する機能を有する。ファイル作成コマンドラッパー２２は、その実行に際し、ファイルの配備場所（ＰＡＴＨ）、ファイル名などのコマンド引数を受け取る。ファイル作成コマンドラッパー２２は、内部でファイル作成コマンド２２１を実行する。そのとき、ファイル作成コマンドラッパー２２は、受け取ったコマンド引数を、ファイル作成コマンド２２１に引数として与え、ファイル作成コマンド２２１を実行する。
【００１８】
ユーザは、冪等性を保証しつつ、特定の設定ファイルαを作成したい場合、ファイル作成コマンド２２１ではなく、ファイル作成コマンドラッパー２２を実行する。つまり、特定のファイルαが存在することを目標状態としてシステムの設定を行うためには、シェルスクリプト１１にファイル作成コマンドラッパー２２の実行を指示する命令コードを記述し、そのコマンド引数に設定ファイルαのファイル名などを指定する。ファイル作成コマンドラッパー２２の処理内容については、後に図２を用いて説明する。
【００１９】
サービス制御コマンドラッパー２３は、ＯＳ２０の標準的なコマンドであるサービス制御コマンド２３１をラップした実行形式のファイルである。サービス制御コマンドラッパー２３は、サービス、即ちＯＳ２０において常駐して動作するプロセスの稼働状態（起動中、停止中など）の制御に対して冪等性を保証する機能を提供する。サービス制御コマンドラッパー２３は、その実行に際し、制御対象のサービス名や、起動・停止などの稼働状態を指定するコマンド引数を受け取る。サービス制御コマンドラッパー２３は、内部でサービス制御コマンド２３１を実行する。そのとき、サービス制御コマンドラッパー２３は、受け取ったコマンド引数を、サービス制御コマンド２３１に引数として与え、サービス制御コマンド２３１を実行する。
【００２０】
ユーザは、冪等性を保証しつつ、特定のサービスの稼働状態を目標状態に制御したい場合、サービス制御コマンド２３１ではなく、サービス制御コマンドラッパー２３を実行する。つまり、特定の稼働状態を目標状態としてシステムの設定を行うためには、シェルスクリプト１１にサービス制御コマンドラッパー２３の実行を指示する命令コードを記述し、その引数にサービス名と目標とするサービスの稼働状態を指定する。
【００２１】
次にファイル作成コマンドラッパー２２が実行するファイル作成処理の内容について説明する。図２は、本発明の一実施形態による設定処理の第１のフローチャートである。
シェルスクリプト１１には、ファイル名をコマンド引数に指定してファイル作成コマンドラッパー２２の実行を指示する命令コードが記載されている。制御装置１０は、ＯＳ２０上でシェルスクリプト１１を実行する。すると、シェル２１が、ファイル作成コマンドラッパー２２を実行する。ファイル作成コマンドラッパー２２は、まずコマンド引数で指定されたファイルが存在するか否かを確認する（ステップＳ１１）。コマンド引数で指定されたファイルが既に存在する場合（ステップＳ１１；Ｙｅｓ）、ファイル作成コマンドラッパー２２は、正常終了を示す終了コードを返却してファイル作成処理を終了する（ステップＳ１２）。一方、コマンド引数で指定されたファイルが存在しない場合（ステップＳ１１；Ｎｏ）、ファイル作成コマンドラッパー２２は、渡されたコマンド引数を指定してファイル作成コマンド２２１を実行する（ステップＳ１３）。これにより、所望のファイルが作成される。次にファイル作成コマンドラッパー２２は、ファイル作成コマンド２２１の実行の結果出力される終了コードを自身の終了コードとして返却する（ステップＳ１４）。
ファイル作成コマンドラッパー２２を用いると、既に存在する設定ファイルの上書きを回避しつつ、確実に設定ファイルを作成し、所望の設定ファイルの配備状態を実現することができる。
【００２２】
次にサービス制御コマンドラッパー２３が実行するサービス制御の処理内容について説明する。図３は、本発明の一実施形態による設定処理の第２のフローチャートである。
シェルスクリプト１１には、サービス名と目標状態とをコマンド引数に指定してファイル作成コマンドラッパー２２の実行を指示する命令コードが記載されている。制御装置１０は、ＯＳ２０上でシェルスクリプト１１を実行する。すると、シェル２１が、サービス制御コマンドラッパー２３を実行する。サービス制御コマンドラッパー２３は、コマンド引数で指定されたサービスがＯＳ２０に存在するか否かを確認する（ステップＳ２１）。サービスが存在する場合（ステップＳ２１；Ｙｅｓ）、サービス制御コマンドラッパー２３は、続いてサービスの稼働状態がコマンド引数で指定された状態であるか否かを確認する（ステップＳ２２）。サービスの稼働状態が目標状態と同じ状態である場合（ステップＳ２２；Ｙｅｓ）、サービス制御コマンドラッパー２３は、正常終了を示す終了コードを返却して処理を終了する（ステップＳ２３）。一方、サービスが存在しない場合（ステップＳ２１；Ｎｏ）、またはサービスは存在するがサービスの稼働状態が異なる場合（ステップＳ２２；Ｎｏ）、サービス制御コマンドラッパー２３は、渡されたコマンド引数を指定してサービス制御コマンド２３１を実行する（ステップＳ２４）。例えば、あるサービスβが稼働した状態が目標状態の場合、サービス制御コマンド２３１はサービスβを起動する。これにより、所望のサービスの稼働状態が実現される。サービス制御コマンドラッパー２３は、サービス制御コマンド２３１の実行の結果出力される終了コードを自身の終了コードとして返却する（ステップＳ２５）。なお、サービスが存在しない場合（当該サービスの実行モジュールがインストールされていない）にもサービス制御コマンド２３１を実行する理由は、存在しないサービスが指定された際にサービス制御コマンド２３１がエラーとして返却する終了コードを、自身の終了コードとして返却するためである。
サービス制御コマンドラッパー２３を用いると、例えば、サービスを多重起動する等の目標状態と異なるシステム状態となることを回避しつつ、サービスの稼働状態を制御することができる。
【００２３】
図１〜図３では、ＯＳ２０が提供する標準コマンドをラップすることにより、冪等性を保証する例を挙げた。標準コマンドのラッパーは、図２、図３で説明したように目標状態を引数として与えて実行する実行形式ファイルであってもよい。または、ＯＳ２０が提供する標準コマンド自体を改造してもよい。あるいは、標準コマンドの実行により呼び出されるシステムコールを改造してもよい。このように冪等性保証機能は、様々なレイヤに実装することができる。
【００２４】
本実施形態では、冪等性を保証するシステム改変手段（例えば、標準コマンドのラッパー）を対象システム側に実装する。実装の方法は、ＯＳ２０のインストール時に追加的にインストールされるようにしてもよいし、ＯＳ２０の一部として組み込んでもよい。さらに対象システム側に実装した冪等性保証機能付きのシステム改変手段を、実行することができる外部インタフェースをユーザに提供する。ユーザは、外部インタフェースを通じて、冪等性保証機能付きのシステム改変手段を実行することにより、システム設定を行うにあたり、冪等性を意識する必要が無い。例えば、システム設定用のプログラムを作成する際にも、冪等性を担保するための処理コードを記述する作業から解放され、プログラム作成に要する時間や手間を大幅に削減することができる。また、Ａｎｓｉｂｌｅなどの構成管理ツールを導入しなくても、対象システムが備えるシステム改変手段を利用して、比較的容易にシステム設定を自動化するプログラムを作成することができる。
【００２５】
図４は、本発明の一実施形態による設定システムの他の例を示すブロック図である。
図４に、ＡＰＩ（Application Programming Interface）を、冪等性保証機能付きのシステム改変手段の外部インタフェースとしてユーザに提供する例を示す。図１と同様の構成については説明を省略する。図示するように設定システム１ａは、制御装置１０と、情報処理装置１００ａとを含む。情報処理装置１００ａは、ＯＳ２０ａと、ＡＰＩ２１ａと、ポート有効化ＡＰＩラッパー２２ａと、通報先追加ＡＰＩラッパー２３ａとを含んで構成される。情報処理装置１００ａは、例えば、Ｌ２スイッチ等のネットワーク装置である。
【００２６】
ＯＳ２０は、ポート有効化ＡＰＩ２２１ａと通報先追加ＡＰＩ２３１ａを備えている。ポート有効化ＡＰＩ２２１ａは、引数で指定されるポートを有効にする処理を行う。通報先追加ＡＰＩは、例えばＯＳ２０ａで、システム管理者に通報すべきエラー等が発生した場合に、エラーの発生を通報すべき通報先の情報（例えば、メールアドレス等）を設定する。これらのシステム改変手段は、ＯＳ２０ａに備わるＡＰＩ、あるいは、ＯＳ２０ａにインストールしたミドルウェアやアプリケーションが備えるＡＰＩである。ＯＳ２０ａは、これらのＡＰＩに冪等性を保証する機能を追加したラッパーを備える。ポート有効化ＡＰＩラッパー２２ａおよび通報先追加ＡＰＩラッパー２３ａは、そのようなラッパーの一例である。
【００２７】
ＡＰＩ２１ａは、ＯＳ２０ａで上記のラッパーを実行するための外部インタフェースである。ポート有効化ＡＰＩラッパー２２ａは、ポート有効化ＡＰＩ２２１ａのラッパーである。ポート有効化ＡＰＩラッパー２２ａは、ポート有効化ＡＰＩ２２１ａと同様の引数を受け取る。引数には、例えば、ポート番号が指定される。ポート有効化ＡＰＩラッパー２２ａは、例えば、引数で指定されたポートが既に有効であれば、そのまま正常終了コードを返却し、引数で指定されたポートが有効でなければ、引数にそのポート番号を指定し、ポート有効化ＡＰＩ２２１ａを実行する。そして、ポート有効化ＡＰＩラッパー２２ａは、ポート有効化ＡＰＩ２２１ａの実行結果を、自身の終了コードとしてＯＳ２０ａに返却する。
ポート有効化ＡＰＩラッパー２２ａを用いることにより、冪等性を保証しつつ、通信ポートの設定を行うことができる。
【００２８】
通報先追加ＡＰＩラッパー２３ａは、通報先追加ＡＰＩ２３１ａのラッパーである。通報先追加ＡＰＩラッパー２３ａは、通報先追加ＡＰＩ２３１ａと同様の引数を受け取る。引数には、例えば、通報先のメールアドレスが指定される。通報先追加ＡＰＩラッパー２３ａは、例えば、引数で指定されたメールアドレスが既に設定されていれば、そのまま正常終了コードを返却し、引数で指定されたメールアドレスが未設定であれば、引数にそのメールアドレスを指定し、通報先追加ＡＰＩ２３１ａを実行する。そして、通報先追加ＡＰＩラッパー２３ａは、通報先追加ＡＰＩ２３１ａの実行結果を、自身の終了コードとしてＯＳ２０ａに返却する。
通報先追加ＡＰＩラッパー２３ａを用いることにより、冪等性を保証しつつ、通報先の追加を行うことができる。
【００２９】
図４を用いて説明したように、システムが備えるＡＰＩのラッパーを作成して、このラッパーを起動するＡＰＩを外部インタフェースとしてユーザに提供してもよい。ＡＰＩの場合も、ＡＰＩのラッパーが冪等性を保証するので、ユーザは、構成管理ツールを利用することなく、システム設定用のプログラムを作成し、これを実行することでシステム設定を自動化できる。また、システム設定用のプログラムを作成する際に冪等性を意識しながらコードを記述する必要が無いので、少ない労力でプログラムを作成することができる。また、上記の実施形態では、ファイルの作成、プロセスの状態制御、通信ポートの有効化、通報先追加をシステム設定の例として挙げたが、冪等性保証機能を有したシステム改変手段はこれに限定されない。例えば、ユーザの追加、ディレクトリの作成、ファイルやディレクトリへの権限の設定、ファイアウォールの設定（開放する通信ポートの設定）など、システム設定に必要な各処理を実行するコマンドについて、上記したようなラッパーを実装することができる。
【００３０】
また、上記の実施形態では、対象システムを、ＯＳ２０、２０ａとしたが、ＯＳ２０等上で稼働するミドルウェアやアプリケーションを対象システムとし、それらの実行環境の設定を、冪等性保証機能付きのシステム改変手段によって実行するようにしてもよい。その場合、ＯＳ２０等が提供する標準コマンドだけではなく、ミドルウェアやアプリケーションが提供するコマンドやＡＰＩに対してラッパーを作成して対象システムに実装するようにしてもよい。また、例えば、ルータなどの通信装置や、ディスクアレイなどのストレージ装置など、シェルやＡＰＩなどの外部インタフェースによって、システム設定処理の実行が可能な任意の装置（コンピュータを備える装置）を対象システムとし、本実施形態のシステム設定方法を適用することができる。
【００３１】
図５は、本発明の一実施形態による情報処理装置の最小構成を示すブロック図である。
図５に示すように情報処理装置１００は、少なくともシステム改変部２００を備える。
ここで、情報処理装置１００は、サーバ、通信装置、ストレージ装置などコンピュータを備え、そのコンピュータ上で稼働するシステムの設定を必要とする装置である。システム改変部２００は、情報処理装置１００で稼働するシステムについて、冪等性を保証しつつ所望のシステム状態（目標状態）へ改変する機能を有する。システム改変部２００は、例えば、上記実施形態のファイル作成コマンドラッパー２２、サービス制御コマンドラッパー２３、ポート有効化ＡＰＩラッパー２２ａ、通報先追加ＡＰＩラッパー２３ａ等である。システム改変部２００は、実行指示を受けると、実際に改変が必要か否かを自らチェックし、改変が必要な場合にのみ改変を行う。これにより、当該システム設定における冪等性が保証される。なお、システム状態には、設定ファイル、ディレクトリ構成、インストールされたモジュール、接続されているハードウェア等のリソース構成、プロセスやサービスなどの稼働状態、他装置との通信状態などを含む。
【００３２】
図６は、本発明の一実施形態による情報処理装置の一例を示すブロック図である。
図６に示すように情報処理装置１００は、対象システム４００を備える。上記のＯＳ２０は、対象システム４００の一例である。
対象システム４００は、システム改変部２００と、インタフェース部３００と、を備える。システム改変部２００は、判定部２０１と、改変実行部２０２とを備える。
判定部２０１は、対象システム４００において、所望のシステム状態が達成されているか否かを判定する。図２のステップＳ１１の処理、図３のステップＳ２１およびステップＳ２２の処理は、判定部２０１の一例である。
改変実行部２０２は、判定部２０１が所望のシステム状態が達成されていないと判定した場合、所望のシステム状態への改変を実行する。図２のステップＳ１３の処理、図３のステップＳ２４の処理は、改変実行部２０２の一例である。
インタフェース部３００は、システム改変部２００への実行指示を受け付ける外部インタフェースである。シェル２１、ＡＰＩ２１ａは、インタフェース部３００の一例である。
本実施形態では、冪等性保証機能を有したシステム改変部２００を対象システム４００側に実装し、インタフェース部３００を通じてシステム改変部２００をユーザへ提供する。これによりユーザは、構成管理ツールを利用することなく、対象システム４００の標準的な外部インタフェース（インタフェース部３００）を用いて、所望のシステム状態を列挙した命令コードを記述したスクリプト等を作成し、これを実行することで、冪等性を保証しながら対象システムの設定を自動化することができる。
【００３３】
また、一つの実施形態では、システム改変部２００は、情報処理装置１００で稼働する所定のシステム（例えばＯＳ２０、２０ａ）の一部を構成するプログラムであって、情報処理装置１００を、ＯＳ２０等に対する設定の内容を受け付ける手段（例えば、ファイル作成コマンドラッパー２２およびそのコマンド引数）、その設定の内容を、冪等性を保証しつつ、前記システムに反映させる手段（判定部２０１および改変実行部２０２）、として機能させるためのプログラムである。
【００３４】
また、システム改変部２００は、対象システム４００に実装され、対象システム４００が備える外部インタフェースを介して、呼び出され実行されるプログラムである。つまり、ユーザが、図２や図３の処理内容を記述したプログラムを作成し、このプログラムを対象システム４００上で実行するのではなく、本実施形態の場合、既に図２や図３の処理内容が記述されたシステム改変部２００が対象システム４００に実装されているので、ユーザは、このシステム改変部２００を、外部インタフェースを介して呼び出して実行するプログラムを作成し、これを対象システム４００上で実行する。
【００３５】
図７は、本発明の各実施形態における情報処理装置のハードウェア構成の一例を示す図である。
コンピュータ９００は、ＣＰＵ９０１、主記憶装置９０２、補助記憶装置９０３、入出力インタフェース９０４、通信インタフェース９０５を備える。上述の情報処理装置１００、１００ａは、コンピュータ９００に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置９０３に記憶されている。ＣＰＵ９０１は、プログラムを補助記憶装置９０３から読み出して主記憶装置９０２に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ９０１は、プログラムに従って、記憶領域を主記憶装置９０２に確保する。また、ＣＰＵ９０１は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置９０３に確保する。
【００３６】
なお、少なくとも１つの実施形態において、補助記憶装置９０３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、入出力インタフェース９０４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ９００に配信される場合、配信を受けたコンピュータ９００が当該プログラムを主記憶装置９０２に展開し、上記処理を実行しても良い。また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置９０３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００３７】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【符号の説明】
【００３８】
１、１ａ・・・設定システム
１０・・・制御装置
１１・・・シェルスクリプト
２０・・・ＯＳ
２１・・・シェル
２２・・・ファイル作成コマンドラッパー
２２１・・・ファイル作成コマンド
２３・・・サービス制御コマンドラッパー
２３１・・・サービス制御コマンド
２１ａ・・・ＡＰＩ
２２ａ・・・ポート有効化ＡＰＩラッパー
２２１ａ・・・ポート有効化ＡＰＩ
２３ａ・・・通報先追加ＡＰＩラッパー
２３１ａ・・・通報先追加ＡＰＩ
１００、１００ａ・・・情報処理装置
４００・・・対象システム
２００・・・システム改変部
３００・・・インタフェース部
２０１・・・判定部
２０２・・・改変実行部
３００・・・インタフェース部
９００・・・コンピュータ
９０１・・・ＣＰＵ
９０２・・・主記憶装置
９０３・・・補助記憶装置
９０４・・・入出力インタフェース
９０５・・・通信インタフェース
【図１】
2019175039.tif 000003
【図２】
2019175039.tif 000004
【図３】
2019175039.tif 000005
【図４】
2019175039.tif 000006
【図５】
2019175039.tif 000007
【図６】
2019175039.tif 000008
【図７】
2019175039.tif 000009