(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-22
(45)【発行日】2024-05-30
(54)【発明の名称】構成管理装置、構成管理方法、及び、構成管理プログラム
(51)【国際特許分類】
G06F 11/30 20060101AFI20240523BHJP
G06F 11/34 20060101ALI20240523BHJP
【FI】
G06F11/30 151
G06F11/34 138
G06F11/30 140G
(21)【出願番号】P 2020036459
(22)【出願日】2020-03-04
【審査請求日】2023-01-03
(73)【特許権者】
【識別番号】501158538
【氏名又は名称】三菱電機インフォメーションネットワーク株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】飯塚 剛
(72)【発明者】
【氏名】加藤 隆広
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2006-099300(JP,A)
【文献】特開2019-153202(JP,A)
【文献】香川 恵里奈 ほか,"オープンソースソフトウェアを対象とした設定マニュアル自動生成システムの開発",情報知識学会誌,情報知識学会,2012年,第22巻, 第3号,pp. 223-237,ISSN 0917-1436
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30-11/34
(57)【特許請求の範囲】
【請求項1】
機器を備える構築対象システムが備える前記機器の設定変更の有無を検出する設定変更検出部と、
前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出する変更内容抽出部と、
前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映する変更内容反映部と
を備える構成管理装置
であって、
前記構築対象システムの構成は、前記構築対象システムが備える前記機器が前記設定変更を実行することによって変更され、
前記設定変更検出部は、前記機器が前記設定変更を実行することによって前記構築対象システムの構成が変更される前の前記構築対象システムの構成を示す基準構成情報と、前記機器が前記設定変更を実行した場合に、構成が変更された前記構築対象システムの構成を示す確認用構成情報とを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを用いて前記設定変更を検出し、
前記設定変更検出部は、前記構築情報を用いて前記構築対象システムの設定ファイルをまとめた設定ファイルテーブルを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを、前記設定ファイルテーブルを用いて生成する構成管理装置。
【請求項2】
前記機器が操作された履歴を示す操作履歴を記録している操作履歴記録部を備え、
前記変更内容抽出部は、前記操作履歴を用いて前記変更内容を抽出する請求項
1に記載の構成管理装置。
【請求項3】
前記設定変更は、前記構築対象システムの構成を示す情報を含む設定ファイルを変更することによって実行され、
前記操作履歴は、前記構築対象システムが備える機器が操作された際に実行された操作を示す機器操作情報と、前記機器操作情報に対応する時刻の情報とを含み、
前記設定変更検出部は、前記設定ファイルが変更された時刻を含む情報を設定ファイル情報として管理しており、
前記変更内容抽出部は、前記設定ファイルが変更された時間帯において前記機器に対して実行された操作を、前記設定ファイル情報と、前記操作履歴とを用いて特定し、かつ、特定した操作を前記変更内容として抽出する請求項
2に記載の構成管理装置。
【請求項4】
前記変更内容抽出部は、前記構築対象システムが備える機器の設定を変更する可能性がある操作の情報を含む候補操作情報を有し、前記機器操作情報と、前記候補操作情報とを比較することによって前記設定変更を引き起こした操作を特定し、かつ、特定した操作に対応する情報を前記変更内容として抽出する請求項
3に記載の構成管理装置。
【請求項5】
前記変更内容反映部は、前記特定した操作に対応するファイルを生成し、生成したファイルを前記構築情報に反映する請求項
3又は
4に記載の構成管理装置。
【請求項6】
前記変更内容が反映された構築情報を変更構築情報とし、かつ、前記変更構築情報を用いて、前記構築対象システムを試験用構築対象システムとして構築する構築処理部と、
前記試験用構築対象システムの構成を示す試験用構成情報を生成し、前記確認用構成情報と、前記試験用構成情報との差異を構成差異として検出し、かつ、前記構成差異を前記変更構築情報に反映する構成差異検出部と
を備える請求項
1から
5のいずれか1項に記載の構成管理装置。
【請求項7】
機器を備える構築対象システムが備える前記機器の設定変更の有無を検出する設定変更検出部と、
前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出する変更内容抽出部と、
前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映する変更内容反映部と
を備える構成管理装置
であって、
前記構築対象システムの構成は、前記構築対象システムが備える前記機器が前記設定変更を実行することによって変更され、
前記設定変更検出部は、前記機器が前記設定変更を実行することによって前記構築対象システムの構成が変更される前の前記構築対象システムの構成を示す基準構成情報と、前記機器が前記設定変更を実行した場合に、構成が変更された前記構築対象システムの構成を示す確認用構成情報とを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを用いて前記設定変更を検出し、
前記構成管理装置は、さらに、
前記変更内容が反映された構築情報を変更構築情報とし、かつ、前記変更構築情報を用いて、前記構築対象システムを試験用構築対象システムとして構築する構築処理部と、
前記試験用構築対象システムの構成を示す試験用構成情報を生成し、前記確認用構成情報と、前記試験用構成情報との差異を構成差異として検出し、かつ、前記構成差異を前記変更構築情報に反映する構成差異検出部と
を備える構成管理装置。
【請求項8】
設定変更検出部が、機器を備える構築対象システムが備える前記機器の設定変更の有無を検出し、
変更内容抽出部が、前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出し、
変更内容反映部が、前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映する構成管理方法
であって、
前記構築対象システムの構成は、前記構築対象システムが備える前記機器が前記設定変更を実行することによって変更され、
前記設定変更検出部は、前記機器が前記設定変更を実行することによって前記構築対象システムの構成が変更される前の前記構築対象システムの構成を示す基準構成情報と、前記機器が前記設定変更を実行した場合に、構成が変更された前記構築対象システムの構成を示す確認用構成情報とを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを用いて前記設定変更を検出し、
前記設定変更検出部は、前記構築情報を用いて前記構築対象システムの設定ファイルをまとめた設定ファイルテーブルを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを、前記設定ファイルテーブルを用いて生成する構成管理方法。
【請求項9】
コンピュータに、
機器を備える構築対象システムが備える前記機器の設定変更の有無を検出させ、
前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出させ、
前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映させる構成管理プログラム
であって、
前記構築対象システムの構成は、前記構築対象システムが備える前記機器が前記設定変更を実行することによって変更され、
前記コンピュータに、
前記機器が前記設定変更を実行することによって前記構築対象システムの構成が変更される前の前記構築対象システムの構成を示す基準構成情報と、前記機器が前記設定変更を実行した場合に、構成が変更された前記構築対象システムの構成を示す確認用構成情報とを生成させ、かつ、前記基準構成情報と、前記確認用構成情報とを用いて前記設定変更を検出させ、
前記構築情報を用いて前記構築対象システムの設定ファイルをまとめた設定ファイルテーブルを生成させ、かつ、前記基準構成情報と、前記確認用構成情報とを、前記設定ファイルテーブルを用いて生成させる構成管理プログラム。
【請求項10】
設定変更検出部が、機器を備える構築対象システムが備える前記機器の設定変更の有無を検出し、
変更内容抽出部が、前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出し、
変更内容反映部が、前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映する構成管理方法
であって、
前記構築対象システムの構成は、前記構築対象システムが備える前記機器が前記設定変更を実行することによって変更され、
前記設定変更検出部は、前記機器が前記設定変更を実行することによって前記構築対象システムの構成が変更される前の前記構築対象システムの構成を示す基準構成情報と、前記機器が前記設定変更を実行した場合に、構成が変更された前記構築対象システムの構成を示す確認用構成情報とを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを用いて前記設定変更を検出し、
構築処理部が、前記変更内容が反映された構築情報を変更構築情報とし、かつ、前記変更構築情報を用いて、前記構築対象システムを試験用構築対象システムとして構築し、
構成差異検出部が、前記試験用構築対象システムの構成を示す試験用構成情報を生成し、前記確認用構成情報と、前記試験用構成情報との差異を構成差異として検出し、かつ、前記構成差異を前記変更構築情報に反映する構成管理方法。
【請求項11】
コンピュータに、
機器を備える構築対象システムが備える前記機器の設定変更の有無を検出させ、
前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出させ、
前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映させる構成管理プログラム
であって、
前記構築対象システムの構成は、前記構築対象システムが備える前記機器が前記設定変更を実行することによって変更され、
前記コンピュータに、
前記機器が前記設定変更を実行することによって前記構築対象システムの構成が変更される前の前記構築対象システムの構成を示す基準構成情報と、前記機器が前記設定変更を実行した場合に、構成が変更された前記構築対象システムの構成を示す確認用構成情報とを生成させ、かつ、前記基準構成情報と、前記確認用構成情報とを用いて前記設定変更を検出させ、
前記変更内容が反映された構築情報を変更構築情報とさせ、かつ、前記変更構築情報を用いて、前記構築対象システムを試験用構築対象システムとして構築させ、
前記試験用構築対象システムの構成を示す試験用構成情報を生成させ、前記確認用構成情報と、前記試験用構成情報との差異を構成差異として検出させ、かつ、前記構成差異を前記変更構築情報に反映させる構成管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、構成管理装置、構成管理方法、及び、構成管理プログラムに関する。
【背景技術】
【0002】
構築情報を用いることによって、システムを自動構築する手法が用いられることがある。構築情報は、IT(Information Technology)システム等のシステムを構築するために用いられる情報である。
【0003】
特許文献1は、構築情報に基づいてシステムを自動構築する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術によれば、ユーザが構築情報を変更せず、かつ、構築対象システムが備える機器をユーザが操作することによって構築対象システムの構成を変更した場合に、構築対象システムの構成と、構築情報との間で不整合が生じるという課題がある。
【0006】
本開示は、ユーザが構築情報を変更せず、かつ、構築対象システムが備える機器をユーザが操作することによって構築対象システムの構成を変更した場合に、構築対象システムの構成と、構築情報との間で不整合が生じないようにすることを目的とする。
【課題を解決するための手段】
【0007】
本開示に係る構成管理装置は、
機器を備える構築対象システムが備える前記機器の設定変更の有無を検出する設定変更検出部と、
前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出する変更内容抽出部と、
前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映する変更内容反映部と
を備える。
【0008】
前記構築対象システムの構成は、前記構築対象システムが備える前記機器が前記設定変更を実行することによって変更され、
前記設定変更検出部は、前記機器が前記設定変更を実行することによって前記構築対象システムの構成が変更される前の前記構築対象システムの構成を示す基準構成情報と、前記機器が前記設定変更を実行した場合に、構成が変更された前記構築対象システムの構成を示す確認用構成情報とを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを用いて前記設定変更を検出する。
【0009】
前記設定変更検出部は、前記構築情報を用いて前記構築対象システムの設定ファイルをまとめた設定ファイルテーブルを生成し、かつ、前記基準構成情報と、前記確認用構成情報とを、前記設定ファイルテーブルを用いて生成する。
【0010】
本開示に係る構成管理装置は、前記機器が操作された履歴を示す操作履歴を記録している操作履歴記録部を備え、
前記変更内容抽出部は、前記操作履歴を用いて前記変更内容を抽出する。
【0011】
前記設定変更は、前記構築対象システムの構成を示す情報を含む設定ファイルを変更することによって実行され、
前記操作履歴は、前記構築対象システムが備える機器が操作された際に実行された操作を示す機器操作情報と、前記機器操作情報に対応する時刻の情報とを含み、
前記設定変更検出部は、前記設定ファイルが変更された時刻を含む情報を設定ファイル情報として管理しており、
前記変更内容抽出部は、前記設定ファイルが変更された時間帯において前記機器に対して実行された操作を、前記設定ファイル情報と、前記操作履歴とを用いて特定し、かつ、特定した操作を前記変更内容として抽出する。
【0012】
前記変更内容抽出部は、前記構築対象システムが備える機器の設定を変更する可能性がある操作の情報を含む候補操作情報を有し、前記機器操作情報と、前記候補操作情報とを比較することによって前記設定変更を引き起こした操作を特定し、かつ、特定した操作に対応する情報を前記変更内容として抽出する。
【0013】
前記変更内容反映部は、前記特定した操作に対応するファイルを生成し、生成したファイルを前記構築情報に反映する。
【0014】
本開示に係る構成管理装置は、
前記変更内容が反映された構築情報を変更構築情報とし、かつ、前記変更構築情報を用いて、前記構築対象システムを試験用構築対象システムとして構築する構築処理部と、
前記試験用構築対象システムの構成を示す試験用構成情報を生成し、前記確認用構成情報と、前記試験用構成情報との差異を構成差異として検出し、かつ、前記構成差異を前記変更構築情報に反映する構成差異検出部と
を備える。
【0015】
本開示に係る構成管理方法は、
設定変更検出部が、機器を備える構築対象システムが備える前記機器の設定変更の有無を検出し、
変更内容抽出部が、前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出し、
前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映する。
【0016】
本開示に係る構成管理プログラムは、コンピュータに、
機器を備える構築対象システムが備える前記機器の設定変更の有無を検出させ、
前記設定変更が有る場合に、前記設定変更の内容を変更内容として抽出させ、
前記構築対象システムを構築することに用いられる構築情報に前記変更内容を反映させる。
【発明の効果】
【0017】
本開示に係る構成管理装置100は、設定変更検出部140と、変更内容抽出部150と、変更内容反映部160とを備える。設定変更検出部140は、構築対象システム90が備える機器の設定変更の有無を検出する。変更内容抽出部150は、設定変更が有る場合に、設定変更の内容を変更内容として抽出する。変更内容反映部160は、構築対象システム90の構成を示す情報を含む構築情報111であって、構築対象システム90を構築することに用いられる構築情報111に変更内容を反映する。
従って、本開示によれば、ユーザが構築情報111を変更せず、かつ、構築対象システム90が備える機器をユーザが操作することによって構築対象システム90の構成を変更した場合に、構築対象システム90の構成と、構築情報111との間で不整合が生じないようにすることができる。
【図面の簡単な説明】
【0018】
【
図1】実施の形態1に係る構成管理装置100の構成例。
【
図2】実施の形態1に係る構成管理装置100のハードウェア構成例。
【
図3】実施の形態1に係る構成管理装置100の動作を示すフローチャート。
【
図4】実施の形態1の変形例に係る構成管理装置100のハードウェア構成例。
【
図5】実施の形態2に係る構成管理装置100の構成例。
【
図6】実施の形態2に係る設定ファイルテーブル143の例。
【
図7】構築対象システム90の概略を示すファイルの例。
【
図10】構築対象システム90が導入しているソフトウェアパッケージの情報の取得の例。
【
図12】実施の形態2に係る構成管理装置100の動作を示すフローチャート。
【
図13】実施の形態3に係る構成管理装置100の構成例。
【
図14】実施の形態3に係る構成管理装置100の動作の概略を説明する図。
【
図15】実施の形態3に係る構成管理装置100の動作を示すフローチャート。
【
図16】
図15のフローチャートに示される構成管理装置100の動作を説明する図。
【
図17】実施の形態3に係る構成管理装置100の動作を示すフローチャート。
【
図18】
図17のフローチャートに示される構成管理装置100の動作を説明する図。
【
図20】実施の形態3に係る構成管理装置100の動作の概略を説明する図。
【
図21】実施の形態3に係る変更内容反映部160の動作を説明する図。
【
図22】実施の形態3に係る変更内容反映部160の動作を説明する図。
【
図23】実施の形態3に係る変更内容反映部160の動作を説明する図。
【
図24】実施の形態4に係る構成管理装置100の構成例。
【
図25】実施の形態4に係る構成管理装置100の動作を示すフローチャート。
【発明を実施するための形態】
【0019】
実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【0020】
実施の形態1.
以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
【0021】
まず、構成管理装置100を簡単に説明する。構成管理装置100は、構築対象システム90の構成を管理する。構築対象システム90の構成は、構築対象システム90の構成の少なくとも一部を指す。各構築対象システム90の構成は、互いに異なっていても良い。構成管理装置100は、複数の構築対象システム90の構成を管理しても良い。
【0022】
構築対象システム90は、典型的には、IaC(Infrastructure as Code)に基づいて運用することができるシステムである。構築対象システム90は、典型的には、コンピュータ等の機器を備えるシステムである。機器は、特に断りがない限り、構築対象システム90が備える機器を指す。構築対象システム90は、具体例として、サーバと、ストレージと、ネットワークとから構成されるシステムである。構築対象システム90は、IT(Information Technology)システムであっても良く、データセンタが有するサーバであっても良く、また、ハードウェアと、仮想化基盤とを備えるシステムであっても良い。仮想化基盤は、具体例として、VMware(登録商標)である。仮想化基盤は、ハードウェアに対応する仮想化環境であっても良い。なお、ハードウェアに言及する場合、特に断りがない限り、構築対象システム90が備えるハードウェアを指す。
構築対象システム90は、構築情報111を用いて構築対象システム90を構築することができる。構築情報111は、具体例として、機器にインストールされているソフトウェアの情報、機器に登録されているユーザの情報、又は、機器のディレクトリ構成の情報である。ソフトウェアは、OS(Operating System)と、デバイスドライバと、ファームウェアと、ミドルウェアと、アプリケーションプログラムとを含む。構築情報111を用いて構築対象システム90を構築することには、冪等性がある。
構築情報111は、構築対象システム90の構築を指示する情報を含み、かつ、構築対象システム90を構築することに用いられる。構築情報111は、構築対象システム90の構成を示す情報を含んでも良い。構築情報111は、具体例として、パラメータファイル、又は、Ansible(登録商標)のPlaybookである。構築情報111は、複数のファイルから成っても良い。
ユーザは、機器を操作することによって、機器の設定を変更することもできる。ユーザは、特に断りがない限り、構築対象システム90の使用者である。使用者には、システムの構築者と、システムの運用者とが含まれる。使用者は、ロボット又はコンピュータであっても良い。
設定変更は、構築対象システム90が備える少なくとも一部の機器の設定が変更されることである。設定変更には、構築情報111を変更すること、又は、直接設定を実行することによって機器の設定を変更することがある。直接設定は、構築情報111を変更せず、かつ、構築対象システム90が備える機器を操作することによって機器の設定を変更することである。ユーザが直接設定を実行することにより、構築対象システム90の機器の設定変更が実現される。ユーザが構築対象システム90を操作し、かつ、設定変更を実行していない場合、構成管理装置100は、ユーザが設定変更を実行していないと判断しても良い。
直接設定において、ユーザは構築情報111を変更せず、かつ、ユーザは構築対象システム90が備える機器等を操作する。直接設定において、ユーザはファイルを構築対象システム90が備える機器に入力しても良い。設定変更は、具体例として、ソフトウェアをインストール又はアップデートするコマンドをユーザが実行すること、コンフィグレーションファイルをユーザが変更すること、機器に登録されているユーザが変更されること、又は、ディレクトリ構成をユーザが変更することである。
機器が設定変更を実行すると、構築対象システム90の構成が変更される。設定変更が構築対象システム90の構成の変更に相当する場合もある。機器が設定変更を実行することは、典型的には、機器がユーザの指示に従って機器の構成を変更することである。
【0023】
図1は、本実施の形態に係る構成管理装置100の構成例を示している。構成管理装置100は、本図に示すように、構築情報管理部110と、構築処理部120と、設定変更検出部140と、変更内容抽出部150と、変更内容反映部160とを備える。
【0024】
構築情報管理部110は、構築情報111を受け付け、かつ、構築情報111を管理する。構築情報管理部110は、具体例として、バージョン管理ツールを有する。バージョン管理ツールは、具体例として、Subversion又はGitである。
【0025】
構築処理部120は、構築情報111を用いて構築対象システム90を構築する。構築処理部120は、構築対象システム90を構築する指示をしても良い。
【0026】
設定変更検出部140は、構築対象システム90が備える機器の設定変更の有無を検出する。
【0027】
変更内容抽出部150は、設定変更が有る場合に、設定変更の内容を変更内容として抽出する。変更内容は、設定変更が実行されることによって構成が変更される前における変更構築対象システム90の構成と、設定変更に対応する構築対象システム90の構成との差分である。設定変更に対応する構築対象システム90は、機器が設定変更を実行した後における構築対象システム90である。なお、構築対象システム90の構成は、機器が設定変更を実行することによって変更される。
【0028】
変更内容反映部160は、構築情報111に変更内容を反映する。変更内容を反映することには、設定変更に対応するコマンドを構築情報111に追加することが含まれる。
【0029】
図2は、本実施の形態に係る構成管理装置100のハードウェア構成例を示している。構成管理装置100は、コンピュータ10から成る。構成管理装置100は、複数のコンピュータ10から成っても良い。
【0030】
コンピュータ10は、本図に示すように、プロセッサ11と、メモリ12と、補助記憶装置13と、入出力IF(Interface)14と、通信装置15と等のハードウェアを備えるコンピュータである。これらのハードウェアは、信号線19を介して互いに接続されている。
【0031】
プロセッサ11は、演算処理を行うIC(Integrated Circuit)であり、かつ、コンピュータが備えるハードウェアを制御する。プロセッサ11は、具体例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、又はGPU(Graphics Processing Unit)である。
構成管理装置100は、プロセッサ11を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ11の役割を分担する。
【0032】
メモリ12は、典型的には、揮発性の記憶装置である。メモリ12は、主記憶装置又はメインメモリとも呼ばれる。メモリ12は、具体例として、RAM(Random Access Memory)である。メモリ12に記憶されたデータは、必要に応じて補助記憶装置13に保存される。
【0033】
補助記憶装置13は、典型的には、不揮発性の記憶装置である。補助記憶装置13は、具体例として、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又はフラッシュメモリである。補助記憶装置13に記憶されたデータは、必要に応じてメモリ12にロードされる。
【0034】
入出力IF14は、入力装置及び出力装置が接続されるポートである。入出力IF14は、具体例として、USB(Universal Serial Bus)端子である。入力装置は、具体例として、キーボード及びマウスである。出力装置は、具体例として、ディスプレイである。
【0035】
通信装置15は、レシーバ及びトランスミッタである。通信装置15は、具体例として、通信チップ又はNIC(Network Interface Card)である。
【0036】
補助記憶装置13は、構成管理プログラムを記憶している。構成管理プログラムは、構成管理装置100が備える各部の機能をコンピュータに実現させるプログラムである。構成管理プログラムは、メモリ12にロードされて、プロセッサ11によって実行される。構成管理装置100が備える各部は、ソフトウェアにより実現される。
補助記憶装置13は、OS(Operating System)を記憶している。OSの少なくとも一部は、メモリ12にロードされて、プロセッサ11によって実行される。つまり、プロセッサ11は、OSを実行しながら、構成管理プログラムを実行する。
【0037】
構成管理プログラムを実行する際に用いられるデータと、構成管理プログラムを実行することによって得られるデータとは、メモリ12、補助記憶装置13、プロセッサ11内のレジスタ、又はプロセッサ11内のキャッシュメモリ等の記憶装置に適宜記憶される。
【0038】
構成管理装置100の各部がデータを受け付ける場合、入出力IF14を介してデータを受け付けても良く、また、通信装置15を介してデータを受け付けても良い。
【0039】
構成管理プログラムは、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていても良い。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。構成管理プログラムは、プログラムプロダクトとして提供されても良い。
【0040】
***動作の説明***
構成管理装置100の動作手順は、構成管理方法に相当する。また、構成管理装置100の動作を実現するプログラムは、構成管理プログラムに相当する。
【0041】
図3は、実施の形態1に係る構成管理装置100の動作の一例を示すフローチャートである。本図を参照して、構成管理装置100の動作を説明する。
構成管理装置100は、具体例として、構成管理装置100に構築情報111をユーザが入力すること契機として本フローチャートの処理を開始する。
【0042】
(ステップS101:構築情報受付処理)
構築情報管理部110は、構築情報111を受け付ける。
【0043】
(ステップS102:構築情報管理処理)
構築情報管理部110は、構築情報111を管理する。構築情報管理部110は、具体例として、記憶装置が記憶している構築情報111を更新する、又は、バージョン管理ツールに構築情報111を登録する。
【0044】
(ステップS103:構築処理)
構築処理部120は、構築情報管理部110が管理している構築情報111を用いて構築対象システム90を構築する。構築処理部120は、構築情報111を構築対象システム90に送信し、かつ、構築対象システム90に対して構築情報111を用いて構築対象システム90を構築するよう指示しても良い。
構築処理部120は、構築情報111の一部のみを用いても良い。構築処理部120は、具体例として、最新の構築情報111と、1つ前のバージョンの構築情報111との差分のみを用いて構築対象システム90を構築する。
構築処理部120は、どのようなタイミングで構築対象システム90を構築しても良い。構築処理部120は、具体例として、構築情報111が変更される度に構築対象システム90を構築しなくても良い。
また、構成管理装置100は、構築対象システム90を構築せずに次のステップに進んでも良い。
【0045】
(ステップS104:待機処理)
設定変更検出部140は、直接設定を検出するまで待機する。直接設定が実行された場合、構成管理装置100は、ステップS105に進む。
設定変更検出部140は、どのような手法で直接設定を検出しても良い。
【0046】
(ステップS105:設定変更検出処理)
設定変更検出部140は、設定変更の有無を検出する。設定変更検出部140は、ユーザが操作した機器又はユーザが変更したファイルを特定しても良い。
構成管理装置100は、設定変更検出部140が設定変更を検出した場合、ステップS106に進む。構成管理装置100は、それ以外の場合、ステップS104に進む。
【0047】
(ステップS106:変更内容抽出処理)
変更内容抽出部150は、変更内容を抽出する。変更内容抽出部150は、どのような手法により変更された内容を検出しても良い。
変更内容抽出部150は、差分のみを抽出しても良い。
【0048】
(ステップS107:変更内容反映処理)
変更内容反映部160は、変更内容抽出部150が抽出した内容を構築情報111に反映する。
構成管理装置100は、ステップS102に進む。
【0049】
***実施の形態1の効果の説明***
以上のように、本実施の形態によれば、構築対象システム90が備える機器をユーザが操作することによって設定変更を実行した場合に、設定変更に対応する変更内容を構築情報111に自動的に反映することができる。そのため、本実施の形態によれば、構築対象システム90の構成と、構築情報111とを自動的に整合させることができる。従って、本実施の形態によれば、構築対象システム90を運用するコストを削減することができる。
また、構成管理装置100は、構築対象システム90がCI(Continuous Integration)又はCD(Continuous Delivery)を実現することを補助することができる。
【0050】
***他の構成***
<変形例1>
図4は、本変形例に係る構成管理装置100のハードウェア構成例を示している。
構成管理装置100は、本図に示すように、プロセッサ11とメモリ12と補助記憶装置13との少なくとも1つに代えて、処理回路18を備える。
処理回路18は、構成管理装置100が備える各部の少なくとも一部を実現するハードウェアである。
処理回路18は、専用のハードウェアであっても良く、メモリ12に格納されるプログラムを実行するプロセッサ11であっても良い。
【0051】
処理回路18が専用のハードウェアである場合、処理回路18は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(ASICはApplication Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
構成管理装置100は、処理回路18を代替する複数の処理回路を備えても良い。複数の処理回路は、処理回路18の役割を分担する。
【0052】
構成管理装置100において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェア又はファームウェアで実現されても良い。
【0053】
処理回路18は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
プロセッサ11とメモリ12と補助記憶装置13と処理回路18とを、総称して「プロセッシングサーキットリー」という。つまり、構成管理装置100の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
【0054】
他の実施形態に係る構成管理装置100についても、本変形例と同様である。
【0055】
実施の形態2.
以下、前述した実施の形態と異なる点について、図面を参照しながら説明する。
【0056】
***構成の説明***
図5は、本実施の形態に係る構成管理装置100の構成例を示している。構成管理装置100の基本的な構成は、実施の形態1に係る構成管理装置100の構成と同様である。
【0057】
設定変更検出部140は、本図に示すように、基準構成情報141と、確認用構成情報142と、設定ファイルテーブル143とを有する。
設定変更検出部140は、基準構成情報141と、確認用構成情報142とを用いて設定変更を検出する。設定変更検出部140は、基準構成情報141と、確認用構成情報142とを、構築対象システム90の構成を示す情報を用いて生成する。
【0058】
基準構成情報141は、機器が設定変更を実行することによって構築対象システム90の構成が変更される前の構築対象システム90の構成を示す。基準構成情報141は、典型的には、設定ファイルテーブル143を用いて生成された情報である。基準構成情報141は、構築対象システム90の設定が変更されたか否かを確認することに用いられる。
【0059】
確認用構成情報142は、構築対象システム90が備える機器が設定変更を実行した場合に、設定変更後の構築対象システム90の構成を示す。構築情報111を用いて構築対象システム90が構築された場合、典型的には、構築された構築対象システム90の構成は確認用構成情報142が示すものとなる。確認用構成情報142は、典型的には、設定ファイルテーブル143を用いて生成された情報である。確認用構成情報142は、基準構成情報141との差分を確認することに用いられる。
【0060】
設定ファイルテーブル143は、設定ファイル112をまとめたものである。設定ファイルテーブル143には、典型的には、ファイル名と、ファイルの場所とが登録されている。設定ファイル112は、構築対象システム90の構成を示す情報を含み、かつ、構築対象システム90の構成を示す情報を含むファイルである。機器が設定ファイル112を変更又は実行することによって、機器の構成が変更されても良い。設定変更は、典型的には、設定ファイル112の変更によって実行される。設定ファイル112は、構築対象システム90の設定を示す。構築対象システム90は、設定ファイル112を有する。設定ファイル112は、複数のファイルから成っても良い。
設定ファイルテーブル143は、ユーザが変更する可能性がないファイルの情報を含まなくても良い。設定ファイルテーブル143は、テーブル形式のデータでなくても良い。
設定変更検出部140は、設定ファイルテーブル143に登録するために情報を登録する。
【0061】
図6は、設定ファイルテーブル143の例を示している。以下、本図を具体的に説明する。
「システム名」欄は、構築対象システム90の名称を示す。
「機器名」欄は、構築対象システム90が備える機器の名称を示す。
「格納場所」欄は、設定ファイル112が格納されている場所を示す。格納場所は、典型的には、ディレクトリである。格納場所は、構築対象システム90が備えるOSがLinux(登録商標)である場合、具体例として、「/etc/」又は「/usr/」である。
「ファイル名」欄は、格納場所のファイルの名称を示す。格納場所のファイルは、格納場所と格納場所よりも下の階層とに格納されているファイルである。設定変更検出部140は、ファイル名に対応するファイルを用いて、基準構成情報141と、確認用構成情報142とを生成する。
【0062】
設定変更検出部140は、構築対象システム90の設定とは関係のないファイルの情報を確認用構成情報142に登録しなくても良い。「比較除外」欄は、そのようなファイルの格納場所を示している。本例において、設定変更検出部140は、「/usr/tmp/」のファイル全ての情報を、基準構成情報141と、確認用構成情報142とに含めない。
【0063】
「バージョン」欄は、ソフトウェアのバージョン情報を示す。ファイルがソフトウェアパッケージ等である場合、設定変更検出部140は、ファイルのバージョン情報等を基準構成情報141と、確認用構成情報142とに含めても良い。
【0064】
「タイムスタンプ」欄は、ファイルが最後に更新された時刻を示す。
「権限」欄は、ファイルを変更すること又はファイルを実行すること等ができるユーザに対応する情報を示す。本図の「権限」欄の表示は、Linux(登録商標)システムにおける表示に倣っている。
「ハッシュ値」欄は、ファイルのハッシュ値を示す。ハッシュ値は、ファイルの内容の具体例である。
設定変更検出部140は、設定ファイル112の属性情報又はファイルの内容を基準構成情報141と、確認用構成情報142とに登録しても良い。属性情報は、具体例として、タイムスタンプ又は権限である。
【0065】
図7は、構築対象システム90の概略を示すファイルの例を示している。本例において、システムの名称と、各システムが備える機器の名称との情報がファイルに含まれている。systemAと、systemBとは、それぞれ構築対象システム90の名称である。web01と、web02とは、それぞれsystemAが備える機器の名称である。app01と、app02とは、systemBが備える機器の名称である。
設定変更検出部140は、具体例として、このようなファイルを参照することによってシステム名と、機器名とを取得する。
構築対象システム90の概略を示すファイルは、具体例として、Ansible(登録商標)のインベントリファイルである。
【0066】
図8は、ユーザ情報を示すファイルの例を示している。「/home/xxx/」は、ユーザxxxのホームディレクトリの場所である。
設定変更検出部140は、具体例として、このようなファイルから格納場所を取得する。
ユーザ情報を示すファイルは、具体例として、Ansible(登録商標) Playbook等のYAML(YAML Ain’t Markup Language)ファイルである。
【0067】
図9は、ソフトウェアパッケージの情報を取得する例を示している。「ypkg-3.2.1.rpm」は、ソフトウェアパッケージの名称である。「/etc/ypkg/ypkg.conf」と、「/usr/lib/ypkg/ypkg.so」とは、ソフトウェアパッケージの設定に関係があるファイルの格納場所及びファイル名である。
設定変更検出部140は、具体例として、パッケージ管理ツールを用いて、ソフトウェアパッケージの属性情報を取得する。パッケージ管理ツールは、具体例として、RPM(RPM Package Manager)である。
設定変更検出部140は、ソフトウェアパッケージの情報の代わりに、ソフトウェアの更新情報又は差分(パッチ)情報を用いても良い。
【0068】
設定変更検出部140は、具体例として、構築対象システム90が導入しているソフトウェアパッケージの一覧と、各ソフトウェアパッケージのファイルの場所及び名称とを取得する。設定変更検出部140は、構築対象システム90が起動していない場合、構築対象システム90又は構築対象システム90をコピーしたシステムを起動する。
図10は、構築対象システム90が導入しているソフトウェアパッケージ一覧の情報を取得する例を示している。本図は、RPMによってソフトウェアパッケージ一覧を取得したときの表示を示している。「/etc/ypkg.conf」と「/usr/lib/ypkg/ypkg.so」とは、ソフトウェアパッケージの設定に関するファイルの格納場所及び名称である。また、本例には、各ソフトウェアパッケージのバージョン情報と、権限と、タイムスタンプとが含まれている。
設定変更検出部140は、具体例として、このようにして、格納場所と、ファイル名と、属性情報とを取得する。
【0069】
図11は、格納場所の情報を含む取得の例を示している。「/etc/」は、格納場所である。passwdと、shadowと、ypkg.confとは、それぞれ格納場所のファイルのファイル名である。また、本例には、各格納場所のファイルの、権限と、タイムスタンプと、ハッシュ値とが含まれている。
設定変更検出部140は、具体例として、このようなファイルから、属性情報と、内容とを取得し、かつ、属性情報と、内容とを設定ファイルテーブル143に登録する。
【0070】
***動作の説明***
図12は、構成管理装置100の動作の一例を示すフローチャートである。本実施の形態と、実施の形態1との差異を主に説明する。
【0071】
(ステップS201:設定ファイルテーブル受付処理)
設定変更検出部140は、設定ファイルテーブル143を受け付ける。
設定変更検出部140は、構築対象システム90の構成を示す情報が記録されたファイルを特定し、かつ、特定したファイルを用いて設定ファイルテーブル143を生成しても良い。設定変更検出部140は、構築情報111から取得した情報を用いて設定ファイルテーブル143を生成しても良い。
【0072】
(ステップS202:基準構成情報生成処理)
設定変更検出部140は、構築対象システム90と設定ファイルテーブル143とを用いて基準構成情報141を生成する。設定変更検出部140は、具体例として、構築対象システム90から、設定ファイルテーブル143に示されるファイルをコピーすることによって基準構成情報141を生成しても良く、また、設定ファイルテーブル143に示されるバージョン、タイムスタンプ、権限、及びハッシュ値と同様に取得して基準構成情報141を生成しても良い。基準構成情報141は、複数のファイルから成っても良い。
基準構成情報141が既に生成されている場合、設定変更検出部140は、基準構成情報141と、確認用構成情報142との差分を用いて基準構成情報141を更新しても良い。設定変更検出部140は、確認用構成情報142を基準構成情報141としても良い。
設定変更検出部140は、設定ファイルテーブル143の一部のみを用いて基準構成情報141を生成しても良い。
【0073】
(ステップS203:確認用構成情報生成処理)
設定変更検出部140は、設定ファイルテーブル143を用いて、確認用構成情報142を生成する。設定変更検出部140は、構築対象システム90から、設定ファイルテーブル143に示されるファイルをコピーすることによって確認用構成情報142を生成しても良く、また、設定ファイルテーブル143に示されるバージョン、タイムスタンプ、権限、及びハッシュ値と同様に取得して確認用構成情報142を生成しても良い。設定変更検出部140は、設定ファイルテーブル143の一部のみを用いて確認用構成情報142を生成しても良い。
設定変更検出部140は、直接設定に対応する全ての処理を構築対象システム90が実行した後で前述の処理を実行しても良い。設定変更検出部140は、どのようなタイミングで前述の処理を実行しても良い。設定変更検出部140は、具体例として、直接設定が実行される度に本ステップの処理を実行しなくても良い。設定変更検出部140が前述の処理を実行せずに、構成管理装置100はステップS104に戻っても良い。
【0074】
(ステップS204:設定変更検出処理)
設定変更検出部140は、基準構成情報141と、確認用構成情報142とを用いて、機器の設定変更の有無を検出する。設定変更検出部140は、ユーザが変更したファイルを検出しても良い。
設定変更検出部140が設定変更を検出することができない場合、構成管理装置100は、ステップS104に進む。本場合は、具体例として、ユーザが設定ファイルテーブル143に登録されていないファイルを操作した場合、又は、ユーザが設定ファイル112を変更し、その後、ユーザが変更した設定ファイル112を変更前の状態に戻した場合である。それ以外の場合、構成管理装置100は、ステップS205に進む。
【0075】
(ステップS205:変更内容抽出処理)
変更内容抽出部150は、ステップS204で検出された設定変更に対応する変更内容を抽出する。変更内容抽出部150は、具体例として、基準構成情報141と、確認用構成情報142との差分を抽出する。
【0076】
(ステップS206:変更内容反映処理)
変更内容反映部160は、ステップS205で抽出された変更内容を構築情報111に反映する。
構成管理装置100は、ステップS102及びステップS202に進む。
【0077】
構成管理装置100は、本フローチャートの処理を実行している途中で設定ファイルテーブル143を受け付けた場合、実行している処理を中断して本フローチャートの処理を最初から実行しても良い。
【0078】
***実施の形態2の効果の説明***
以上のように、本実施の形態に係る構成管理装置100は、基準構成情報141と、確認用構成情報142と、設定ファイルテーブル143とを用いることによって、設定変更を検出する。そのため、本実施の形態によれば、設定変更を構築情報111に反映し損ねにくい。
【0079】
***他の構成***
<変形例2>
構成管理装置100は、ステップS104において、ユーザが直接設定を実行した場合であっても、設定ファイルテーブル143に含まれるファイルが更新されていない場合、次のステップに進まなくても良い。
本変形例において、具体例として、ステップS104において、設定変更検出部140は、設定ファイルテーブル143に示されているタイムスタンプを参照して、次のステップに進むか否かを判断する。
【0080】
実施の形態3.
以下、主に実施の形態2と異なる点について、図面を参照しながら説明する。
【0081】
***構成の説明***
図13は、本実施の形態に係る構成管理装置100の構成例を示している。構成管理装置100は、本図に示すように、操作履歴記録部170を備える。
【0082】
設定変更検出部140は、設定ファイル情報を管理する。設定ファイル情報は、設定ファイルが変更された時刻を含む情報である。
【0083】
変更内容抽出部150は、操作履歴を用いて変更内容を抽出しても良い。操作履歴は、操作履歴記録部170が記録しているものである。
変更内容抽出部150は、候補操作情報を有していても良い。候補操作情報は、機器の設定を変更する可能性がある操作の情報を含む。操作情報テーブル151は、候補操作情報の具体例である。
変更内容抽出部150は、機器操作情報と、候補操作情報とを比較することによって前記設定変更を引き起こした操作を特定し、かつ、特定した操作に対応する情報を前記変更内容として抽出する。機器操作情報は、機器が操作された際に実行された操作を示す情報である。
変更内容抽出部150は、設定ファイルが変更された時間帯において機器に対して実行された操作を、設定ファイル情報と、操作履歴とを用いて特定し、かつ、特定した操作を変更内容として抽出しても良い。
【0084】
操作情報テーブル151は、設定ファイル112と、各設定ファイル112を更新する操作との対応を示す。操作情報テーブル151には、設定ファイル112のいずれかを変更する可能性がある操作が登録されている。
操作情報テーブル151の例は、
図18に示されている。本例は、構築対象システム90が備える各機器が有するOSが、Linux(登録商標)である場合におけるものである。
【0085】
変更内容反映部160は、変更内容抽出部150が特定した操作に対応するファイルを生成し、生成したファイルを構築情報111に反映しても良い。変更内容反映部160は、操作に対応するファイルをコピーしても良い。
【0086】
操作履歴記録部170は、構築対象システム90が備える各機器が操作された履歴を示す操作履歴を記録している。操作履歴は、構築対象システム90が備える各機器に対してユーザが実行した操作の履歴を示す。操作履歴は、操作ログと呼ばれることもある。操作履歴記録部170は、直接設定に対応する操作を示す操作履歴のみを管理しても良い。直接設定に対応する操作は、直接設定においてユーザが実行した操作である。操作履歴に言及する場合、特に断りがない限り、操作履歴記録部170が管理している操作履歴を指す。
操作履歴は、機器操作情報と、機器操作情報に対応する時刻の情報とを含んでも良い。
【0087】
***動作の説明***
図14は、構成管理装置100の動作の概略を説明する図である。本図を参照して、構成管理装置100の動作の概略を説明する。
【0088】
構成管理装置100は、設定ファイル112が変更されたことを検出する。次に、構成管理装置100は、検出した設定ファイル112と、操作履歴とを用いてユーザが変更した内容を抽出する。次に、構成管理装置100は、抽出した内容を構築情報111に反映する。
【0089】
図15は、構成管理装置100の動作の一例を示すフローチャートである。本図を参照して、構成管理装置100の動作を説明する。
構成管理装置100は、実施の形態2におけるステップS205に代えて、本フローチャートの処理を実行する。
【0090】
(ステップS301:変更時刻特定処理)
変更内容抽出部150は、設定ファイル112の設定変更時刻を特定する。設定変更時刻は、具体例として、ステップS204で検出されたファイルのタイムスタンプである。
【0091】
(ステップS302:操作履歴検索処理)
変更内容抽出部150は、設定変更時刻をキーにして操作履歴を検索することにより、設定変更時刻においてユーザが実行した操作を特定する。
変更内容抽出部150は、ステップS302で特定した操作によって変更される設定の内容を抽出しても良い。変更される設定の内容は、特定した操作を実行することによって変更される機器の設定である。
【0092】
図16は、本フローチャートの処理の例を具体的に説明する図である。本図を参照して、本処理を具体的に説明する。
変更内容抽出部150は、ステップS301において、「/etc/shadow」の設定変更時刻が2019年11月1日の12:00であることを特定する。「/etc/shadow」は、ステップS204で検出されたファイルである。
次に、変更内容抽出部150は、ステップS302において、操作履歴記録部170を検索し、2019年11月1日の12:00に実行された操作を特定する。本図において、2019年11月1日の12:00に実行された操作は、「echo “xxx:ABC” | chpasswd」である。
【0093】
図17は、構成管理装置100の動作の別の例を示すフローチャートである。本図を参照して、構成管理装置100の動作を説明する。本例において、変更内容抽出部150は、操作情報テーブル151を利用する。
【0094】
(ステップS311:操作情報テーブル生成処理)
変更内容抽出部150は、設定ファイル112を更新する可能性のある操作を、操作情報テーブル151に登録する。
変更内容抽出部150は、定期的に操作情報テーブル151に登録されているファイルを更新しても良い。この際、変更内容抽出部150は、機械学習を用いても良い。
変更内容抽出部150は、操作情報テーブル151を生成せず、かつ、ユーザが入力した操作情報テーブル151を受け付けても良い。
【0095】
(ステップS312:操作候補リスト生成処理)
変更内容抽出部150は、ステップS204で検出されたファイルをキーにして操作情報テーブル151を検索し、かつ、検索した結果を用いて操作候補リスト152を生成する。操作候補リスト152は、ステップS204で検出されたファイルを更新する可能性がある操作の一覧を示すリストである。
変更内容抽出部150が操作候補リスト152を生成することができなかった場合、構成管理装置100は、ステップS104に戻る。
【0096】
(ステップS313:操作履歴検索処理)
変更内容抽出部150は、操作候補リスト152に含まれる各操作をキーにして操作履歴を検索し、かつ、検索した結果を用いて直接設定に対応する操作を特定する。変更内容抽出部150は、直接設定に対応する操作を抽出する精度を高めるために、ステップS204で検出されたファイルのタイムスタンプと、操作履歴のタイムスタンプとの少なくとも一方を利用しても良い。
変更内容抽出部150は、具体例として、直接設定に対応する操作の候補を示す情報を活用しても良い。変更内容抽出部150は、特定した操作によって変更される設定の内容を抽出しても良い。
変更内容抽出部150は、特許文献2で示されるようなパターンチェックに基づく方法により、操作履歴等から直接設定に対応する操作を抽出しても良い。
【0097】
図18は、本フローチャートの処理の例を具体的に説明する図である。本図を参照して、本処理を具体的に説明する。
【0098】
変更内容抽出部150は、ステップS312において、「/etc/shadow」をキーとして、操作情報テーブル151を検索する。「/etc/shadow」は、ステップS204で検出されたファイルである。変更内容抽出部150は、「/etc/shadow」に対応する操作である「chpasswd,newusers,passwd,useradd,userdel,usermod,…」を操作候補リスト152とする。
次に、変更内容抽出部150は、ステップS313において、操作候補リスト152に含まれている各操作をキーとして、操作履歴を検索する。操作履歴は、操作履歴記録部170が管理しているものである。本例において、変更内容抽出部150は、「chpasswd」を操作履歴から特定した。「chpasswd」は、操作候補リスト152に含まれている。
操作履歴記録部170は、「/etc/shadow」のタイムスタンプと、操作履歴内の操作のタイムスタンプとが一致する場合に、操作履歴内の操作を直接設定に対応する操作であると判断しても良い。
【0099】
なお、操作履歴記録部170は、操作履歴を管理する処理を常時実行しても良い。操作履歴記録部170は、具体例として、ユーザが構築対象システム90の機器を操作した場合、ユーザの操作を操作履歴に追加する。
【0100】
構成管理装置100は、前述のように、ユーザがCLI(Command line interface)操作によって構築対象システム90の構成を変更する場合に対応することができても良い。また、構成管理装置100は、GUI(Graphical User Interface)操作、ソフトウェアパッケージ、又は、設定ファイルの変更により構築対象システム90の設定をユーザが変更する場合に対応することができても良い。構成管理装置100は、これらを組み合わせて構築対象システム90の構成をユーザが変更する場合に対応することができても良い。
【0101】
図19は、Linux(登録商標)システムに対応する直接設定の例を説明する表である。
「直接設定」欄は、直接設定に対応する操作又は直接設定において構築対象システム90に入力するファイル等を示す。
「構築処理」欄は、ユーザが直接設定を実行する際に採用する具体的な手段を示す。
「操作履歴」欄は、直接設定に対応する操作履歴の種類を示す。
「ファイル形式/ツール例」欄は、直接設定に対応するファイルの形式又はツールを示す。構築処理部120は、具体例として、本欄に記載されているファイル又はツールを用いて構築対象システム90を構築する。
構築情報管理部110は、本表に示す情報を構築情報111として管理しても良い。構築情報管理部110が本表に示すような情報を管理することにより、構成管理装置100は、機器と、変更内容と、入力ファイルと、ユーザの操作と等が様々であっても、対応することができる。
変更内容反映部160は、ステップS206において、以下で説明する処理を実行しても良い。
【0102】
図20は、構成管理装置100の動作の概略を説明する図である。本図を参照して、構成管理装置100の動作の概略を説明する。
本図の左側に示されているCLI操作又はGUI操作等は、直接設定に対応する操作の例である。ユーザがこのような直接設定を実行することにより設定変更を実行した場合、構築情報管理部110が管理している構築情報111に反映される。
次に、構築処理部120は、変更された構築情報111を用いて構築対象システム90を構築する。
【0103】
図21は、ユーザがCLI操作又はGUI操作を用いて直接設定を実行した場合において、変更内容反映部160が構築情報111を生成する例を説明する図である。本図を参照して、変更内容反映部160の動作を説明する。本例において、構築情報管理部110は、構築情報111を操作の種類に分類して管理している。なお、
図21から
図23までにおいて、
図6等と同様のシステム名と機器名と等を用いている。
「echo “xxx:ABC” | chpasswd」は、ユーザがCLI操作によりsystemAのweb01に対して実行した直接設定である。変更内容反映部160は、systemAのweb01に対応する構築情報111に本操作を取り込む。
「button.click」は、ユーザがGUI操作によりsystemAのweb02に対して実行した直接設定である。変更内容反映部160は、systemAのweb02に対応する構築情報111に本操作を取り込む。変更内容反映部160は、本操作によって変更された構築対象システム90の構成を構築情報111に取り込んでも良い。
【0104】
図22は、ユーザが直接設定において設定ファイル又はソフトウェアパッケージを変更した場合において、変更内容反映部160が構築情報111を生成する例を説明する図である。本図を参照して、変更内容反映部160の動作を説明する。本例において、構築情報管理部110は、設定ファイルとソフトウェアパッケージとに構築情報111を分類して管理している。なお、設定ファイル又はソフトウェアパッケージを変更することには、設定ファイル又はソフトウェアパッケージを導入することと、設定ファイル又はソフトウェアパッケージを削除することとが含まれる。
本例において、ユーザは、systemAのweb01が管理するユーザパスワードを変更したものとする。変更内容反映部160は、「/etc/passwd」ファイルの情報と、「/etc/shadow」ファイルの情報とを、systemAのweb01に対応する構築情報111に取り込む。これらのファイルは、ユーザが直接設定を実行することによって変更されたファイルである。変更内容反映部160は、典型的には、これらのファイルのコピーを構築情報111に取り込む。
また、本例において、ユーザは、systemAのweb02にソフトウェアパッケージ「ypkg-3.2.1.rpm」をインストールしたものとする。変更内容反映部160は、「ypkg-3.2.1.rpm」ファイル、又は、「/etc/ypkg/ypkg.conf」ファイルと「/usr/lib/ypkg/ypkg.so」ファイルとを、systemAのweb02に対応する構築情報111に取り込む。これらのファイルは、ユーザが「ypkg-3.2.1.rpm」をsystemAのweb02にインストールしたことによって生成されたファイルである。変更内容反映部160は、ソフトウェアパッケージのバージョン情報又はビルド番号を構築情報111に取り込んでも良い。
【0105】
図23は、変更内容反映部160が直接設定に対応する操作を、設定スクリプト又は構築記述に変換することによって構築情報111を生成する例を示している。本図を参照して、変更内容反映部160の動作を説明する。本例において、構築情報管理部110は、設定スクリプトと構築記述とに構築情報111を分類して管理している。設定スクリプトは、構築対象システム90を構築することに用いられるスクリプトファイルの情報である。構成管理装置100は、設定スクリプトを実行することにより構築対象システム90を構築することができる。構築記述は、構築対象システム90の構築を指示する情報である。構築記述は、ファイルにまとめられていても良い。
本例において、ユーザは、systemAのweb01に対して「echo “xxx:ABC”| chpasswd」という処理を実行させたものとする。変更内容反映部160は、本処理に対応するシェルスクリプトファイルを生成し、かつ、生成したファイルをsystemAのweb01に対応する構築情報111に取り込む。変更内容反映部160は、本処理に対応する記述を既存のシェルスクリプトファイルに追加しても良い。
また、本例において、ユーザは、systemAのweb02に対しても本処理を実行させたものとする。変更内容反映部160は、本処理に対応するAnsible(登録商標) Playbookファイルを生成し、かつ、生成したファイルをsystemAのweb02に対応する構築情報111に取り込む。
【0106】
***実施の形態3の効果の説明***
以上のように、本実施の形態によれば、操作情報テーブル151を用いることにより、直接設定を検出する。変更内容抽出部150は、操作情報テーブル151を適宜更新しても良い。
従って、本実施の形態によれば、設定変更に対応する操作を検出又は抽出し損ねにくい。
【0107】
***他の構成***
<変形例3>
構成管理装置100は、操作履歴記録部170を備えず、かつ、構築対象システム90が備える各機器が管理している操作履歴を用いても良い。
【0108】
<変形例4>
ユーザがファイルを入力することによって直接設定を実行した場合、変更内容抽出部150は、入力されたファイルを分析して変更内容を抽出しても良い。
本変形例において、具体例として、変更内容抽出部150はステップS302又はステップS313において、ファイルを入力する操作を特定し、変更内容反映部160は入力されたファイルに記述されているコマンドを構築情報111に反映する。
【0109】
<変形例5>
構成管理装置100は、設定変更が実行され、その後の設定変更によって先に実行された設定変更が帳消しされた場合に対応することができても良い。
本変形例において、具体例として、変更内容抽出部150は前述の2つの操作をなかったものとみなしても良く、また、変更内容反映部160は操作を分析することによって前述の2つの操作を特定し、2つの操作に対応する設定変更を構築情報111に反映しなくても良い。
【0110】
実施の形態4.
以下、主に実施の形態2と異なる点について、図面を参照しながら説明する。
【0111】
***構成の説明***
図24は、本実施の形態に係る構成管理装置100の構成例を示している。構成管理装置100は、構成差異検出部180を備える。
【0112】
構築処理部120は、変更内容が反映された構築情報111を用いて、構築対象システム90を試験用構築対象システムとして構築する。試験用構築対象システムは、設定変更された構築対象システム90と異なる構築対象システム90であっても良い。
【0113】
構成差異検出部180は、本図に示すように、確認用構成情報142と、試験用構成情報145とを有する。構成差異検出部180は、確認用構成情報142を設定変更検出部140から受け取る。試験用構成情報145は、試験用構築対象システムの構成を示す。
構成差異検出部180は、試験用構成情報145を生成し、確認用構成情報142と、試験用構成情報145との差異を構成差異として検出し、かつ、構成差異を変更構築情報に反映する。変更構築情報は、変更内容が反映された構築情報111である。
【0114】
***動作の説明***
図25は、構成管理装置100の動作の一例を示すフローチャートである。本図を参照して、構成管理装置100の動作を説明する。
【0115】
(ステップS401:試験用構築処理)
構築処理部120は、構築情報111を用いて構築対象システム90を構築する。本ステップにおいて構築した構築対象システム90を試験用構築対象システムと呼ぶ。当該構築情報111は、変更内容が反映されたものである。以下、本フローチャートの説明において、特に断りがない限り同様である。
構築処理部120は、直接設定が実行された構築対象システム90とは異なる構築対象システム90を構築しても良い。
構成管理装置100は、構築処理部120が構築対象システム90を構築することが完了したら、次のステップに進む。
【0116】
(ステップS402:試験用構成情報生成処理)
構成差異検出部180は、試験用構築対象システムを参照して試験用構成情報145を生成する。
構成差異検出部180は、ステップS203と同様の処理を実行する。
【0117】
(ステップS403:構成差異検出処理)
構成差異検出部180は、確認用構成情報142と、試験用構成情報145とを比較することにより、構成差異を検出する。構成差異は、確認用構成情報142と、試験用構成情報145との差異である。
構成差異検出部180が構成差異を検出した場合、構成管理装置100は、ステップS404に進む。それ以外の場合、構成管理装置100は、ステップS406に進む。
なお、構成差異検出部180は、設定変更検出部140が生成した確認用構成情報142を用いる。
【0118】
(ステップS404:構成差異抽出処理)
構成差異検出部180は、ステップS403で検出された構成差異の内容を抽出する。構成差異検出部180は、ステップS205と同様の処理を実行する。
【0119】
(ステップS405:構成差異反映処理)
構成差異検出部180は、ステップS404で抽出された構成差異の内容を構築情報111に反映する。構成差異検出部180は、具体例として、実施の形態3に係る変更内容反映部160と同様の処理を実行する。
【0120】
(ステップS406:構築情報管理処理)
構築情報管理部110は、ステップS102と同様の処理を実行する。
【0121】
***実施の形態4の効果の説明***
以上のように、本実施の形態によれば、構成差異検出部180は、確認用構成情報142と、試験用構成情報145とを比較することにより構成差異を検出し、かつ、構成差異の内容を構築情報111に反映する。
従って、本実施の形態によれば、実施の形態1から3までのいずれかの構成管理装置100によって生成された構築情報111と、変更内容が反映された構築対象システム90との間に不整合が生じている場合に、当該不整合を解消することができる。
【0122】
***他の実施の形態***
前述した各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【0123】
また、実施の形態は、実施の形態1から4で示したものに限定されるものではなく、必要に応じて種々の変更が可能である。フローチャート等を用いて説明した手順は、適宜変更されても良い。
【符号の説明】
【0124】
10 コンピュータ、11 プロセッサ、12 メモリ、13 補助記憶装置、14 入出力IF、15 通信装置、18 処理回路、19 信号線、90 構築対象システム、100 構成管理装置、110 構築情報管理部、111 構築情報、112 設定ファイル、120 構築処理部、140 設定変更検出部、141 基準構成情報、142 確認用構成情報、143 設定ファイルテーブル、145 試験用構成情報、150 変更内容抽出部、151 操作情報テーブル、152 操作候補リスト、160 変更内容反映部、170 操作履歴記録部、180 構成差異検出部。