(57)【要約】      （修正有）【課題】仮想マシンのＯＳやソフトウェア毎の設定ファイルなどに自動的に設定を投入することができる仮想マシン設定投入システム、仮想マシン設定投入方法及びプログラムを提供する。【解決手段】仮想マシン設定投入システムは、仮想マシンのＯＳやソフトウェア毎のプロキシやネットワークなどの変数情報を保持しておき、起動される仮想マシンの環境変数に応じた変数情報を用いて設定コマンドを仮想マシンに投入する。【選択図】図１
2019057206.tif 000002
【特許請求の範囲】
【請求項１】
ホストマシンに起動する仮想マシンの構成情報を保持する仮想マシンイメージ構成情報管理部と、
前記ホストマシンに起動する仮想マシンの構成情報及び環境変数に対する設定コマンドを保持する設定方法管理部と、
前記ホストマシンに仮想マシンが起動するときに、前記仮想マシンに設定されている環境変数を取得し、前記仮想マシンイメージ構成情報管理部から前記仮想マシンの構成情報を取得し、前記設定方法管理部から前記環境変数及び前記構成情報に対応する設定コマンドを取得して前記仮想マシンに投入する設定投入部と、
を備える仮想マシン設定投入システム。
【請求項２】
仮想マシンのイメージ及び仮想マシンイメージを構築する命令である仮想マシンイメージ構築ファイルから前記構成情報を作成して前記仮想マシンイメージ構成情報管理部に保持させる仮想マシンイメージ構成情報作成部をさらに備えることを特徴とする請求項１に記載の仮想マシン設定投入システム。
【請求項３】
前記ホストマシンから前記環境変数の内、ホストマシンに関する環境変数を取得し、前記設定投入部へ通知するホストマシン設定管理部をさらに備えることを特徴とする請求項１に記載の仮想マシン設定投入システム。
【請求項４】
前記ホストマシンに起動している仮想マシンの前記構成情報及び前記設定コマンドを管理し、前記仮想マシンの状態が変更されたときに変更内容を前記設定投入部へ通知する仮想マシン設定管理部と、
前記ホストマシンの状態が変更されたときに前記ホストマシンに関する環境変数の変更内容を前記設定投入部へ通知するホストマシン設定更新通知部と、
をさらに備え、
前記設定投入部は、前記仮想マシン設定管理部及び前記ホストマシン設定更新通知部のいずれか一方から通知された前記更新内容に基づいて前記設定方法管理部から新たな設定コマンドを取得して前記仮想マシンに投入する
ことを特徴とする請求項１に記載の仮想マシン設定投入システム。
【請求項５】
ホストマシンに起動する仮想マシンの構成情報を仮想マシンイメージ構成情報管理部に保持し、
前記ホストマシンに起動する仮想マシンの構成情報及び環境変数に対する設定コマンドを設定方法管理部に保持し、
前記ホストマシンに仮想マシンが起動するときに、前記仮想マシンに設定されている環境変数を取得し、前記仮想マシンイメージ構成情報管理部から前記仮想マシンの構成情報を取得し、前記設定方法管理部から前記環境変数及び前記構成情報に対応する設定コマンドを取得して前記仮想マシンに投入する、
仮想マシン設定投入方法。
【請求項６】
コンピュータを、請求項１から４のいずれかに記載の仮想マシン設定投入システムとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータ上で仮想マシンに設定を自動的に投入するためのシステム、方法、及びプログラムに関する。
【背景技術】
【０００２】
あらかじめ作成した情報を元に仮想マシンのイメージを構築する技術が存在する。例えばＤｏｃｋｅｒと呼ばれる仮想マシン（ここで仮想マシンはコンテナを含む、実マシン上に動的に構成される独立したソフトウェア実行環境一般の概念を示す）のデプロイメントを自動化するソフトウェアでは、Ｄｏｃｋｅｒｆｉｌｅと呼ばれるファイルから命令を読み込むことでイメージを構築する（例えば、特許文献１を参照。）。
【０００３】
この時、例えばコンテナが起動後に利用するネットワークにおけるプロキシなどの環境情報はコンテナを配置するケース毎に異なるため、Ｄｏｃｋｅｒｆｉｌｅには記述せずにコンテナ利用者がコンテナの起動時にコンテナ内環境変数として設定する。これはプロキシ設定にかぎらずＤＮＳ設定などでも同様である。このように、仮想マシンイメージの構築時には設定ができず、仮想マシンの利用環境に応じて個別に設定が必要となる設定情報が存在する（例えば、非特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５０４６９８９号  平成２４年１０月１０日  特願２００８−３３３１１日本電信電話株式会社  ＜中野  雄介＞＜山登  庸次＞＜大西  浩行＞  プログラムコンポーネント起動システム、および、プログラムコンポーネント起動方法
【非特許文献】
【０００５】
【非特許文献１】Ｍｉｃｒｏ  Ｓｅｒｖｉｃｅｓ  −  Ｊａｖａ（登録商標）  ｔｈｅ  Ｕｎｉｘ  ｗａｙ，  ３３ｒｄ  Ｄｅｇｒｅｅ  Ｃｏｎｆｅｒｅｎｃｅ，  Ｍａｒｃｈ  ２０１２
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、仮想マシンの利用者は仮想マシンの利用時にプロキシやネットワークなどの環境設定について理解している必要があった。例えば物理マシンの設定をシステムで自動的に行っていたり仮想マシンの利用者とインフラ管理者が異なる場合、仮想マシンの利用者は仮想マシンの動作に必要な環境設定を理解していない可能性がある。また、仮想マシン内で動作するソフトウェアによっては、例えば実行元の環境変数に設定されたプロキシ情報を利用せずに、ソフトウェア独自の設定ファイルに記述されたプロキシ等の環境情報を読み込む場合がある。その場合には環境変数として設定されたプロキシなどの環境情報を利用できず、仮想マシン上のソフトウェアがネットワークを利用できないことがあり、仮想マシンの利用者がソフトウェア毎に設定ファイル内のプロキシなどの環境情報を書き込む必要があった。環境情報を書き込むためには、仮想マシンの利用者はその内部で動作する各種ソフトウェアの設定方法を理解している必要があり、仮想マシンを容易に利用ができない、という課題があった。また、設定方法を理解していても、仮想マシンの利用者が仮想マシンの利用環境に応じて仮想マシン内の各種ソフトウェアの設定を変更する必要があり手間がかかるという課題もある。
【０００７】
本発明は、このような課題を解決するため、仮想マシンのＯＳ（オペレーティングシステム）やソフトウェア毎の設定ファイルなどに自動的に設定を投入することができる仮想マシン設定投入システム、仮想マシン設定投入方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る仮想マシン設定投入システムは、仮想マシンのＯＳやソフトウェア毎のプロキシやネットワークなどの変数情報を保持しておき、起動される仮想マシンの環境変数に応じた変数情報を用いて設定コマンドを仮想マシンに投入することとした。
【０００９】
具体的には、本発明に係る仮想マシン設定投入システムは、
ホストマシンに起動する仮想マシンの構成情報を保持する仮想マシンイメージ構成情報管理部と、
前記ホストマシンに起動する仮想マシンの構成情報及び環境変数に対する設定コマンドを保持する設定方法管理部と、
前記ホストマシンに仮想マシンが起動するときに、前記仮想マシンに設定されている環境変数を取得し、前記仮想マシンイメージ構成情報管理部から前記仮想マシンの構成情報を取得し、前記設定方法管理部から前記環境変数及び前記構成情報に対応する設定コマンドを取得して前記仮想マシンに投入する設定投入部と、
を備える。
【００１０】
また、本発明に係る仮想マシン設定投入方法は、
ホストマシンに起動する仮想マシンの構成情報を仮想マシンイメージ構成情報管理部に保持し、
前記ホストマシンに起動する仮想マシンの構成情報及び環境変数に対する設定コマンドを設定方法管理部に保持し、
前記ホストマシンに仮想マシンが起動するときに、前記仮想マシンに設定されている環境変数を取得し、前記仮想マシンイメージ構成情報管理部から前記仮想マシンの構成情報を取得し、前記設定方法管理部から前記環境変数及び前記構成情報に対応する設定コマンドを取得して前記仮想マシンに投入する。
【００１１】
仮想マシンの起動とともに保持されている変数情報から設定コマンドが投入されるので、仮想マシンの利用者がソフトウェア毎に設定ファイル内のプロキシなどの環境情報を書き込む必要がなくなる。つまり、仮想マシンの利用者がその内部で動作する各種ソフトウェアの設定方法を理解している必要はなく、また、仮想マシンの利用環境に応じて仮想マシン内の各種ソフトウェアの設定を変更する必要もないので、仮想マシンの利用者は仮想マシンを容易に利用することができる。
【００１２】
従って、本発明は、仮想マシンのＯＳやソフトウェア毎の設定ファイルなどに自動的に設定を投入することができる仮想マシン設定投入システム及び仮想マシン設定投入方法を提供することができる。
【００１３】
本発明に係る仮想マシン設定投入システムは、仮想マシンのイメージ及び仮想マシンイメージを構築する命令である仮想マシンイメージ構築ファイルから前記構成情報を作成して前記仮想マシンイメージ構成情報管理部に保持させる仮想マシンイメージ構成情報作成部をさらに備える。
【００１４】
仮想マシンの利用者は、仮想マシンイメージ構成管理部に仮想マシンイメージの構成を手動で登録する必要がなくなり手間が削減される。
【００１５】
本発明に係る仮想マシン設定投入システムは、前記ホストマシンから前記環境変数の内、ホストマシンに関する環境変数を取得し、前記設定投入部へ通知するホストマシン設定管理部をさらに備える。
【００１６】
仮想マシンの利用者は、仮想マシンがホストマシンと同じ環境変数を持てば良い場合などに仮想マシン起動時に環境変数の設定を省略することができ、手間が削減できる。また、ホストマシンの設定を流用してネットワーク設定を行うことで、ネットワーク設定などが不明でも、仮想マシンの利用者は容易に仮想マシンを利用することができる。
【００１７】
本発明に係る仮想マシン設定投入システムは、
前記ホストマシンに起動している仮想マシンの前記構成情報及び前記設定コマンドを管理し、前記仮想マシンの状態が変更されたときに変更内容を前記設定投入部へ通知する仮想マシン設定管理部と、
前記ホストマシンの状態が変更されたときに前記ホストマシンに関する環境変数の変更内容を前記設定投入部へ通知するホストマシン設定更新通知部と、
をさらに備え、
前記設定投入部は、前記仮想マシン設定管理部及び前記ホストマシン設定更新通知部のいずれか一方から通知された前記更新内容に基づいて前記設定方法管理部から新たな設定コマンドを取得して前記仮想マシンに投入する
ことを特徴とする。
【００１８】
仮想マシン設定管理部により、仮想マシン起動後に新しいソフトウェアをインストールもしくはアンインストールした場合でも設定が自動で反映されサービスを継続できる。また、ホストマシン設定更新通知部により、２つ以上のプロキシ設定の異なるネットワークと切替を行っている場合でも、ホストマシン側のネットワークが切り替わりに追随するため、仮想マシンの利用者はネットワーク設定を意識することなく、サービスを継続することができる。
【００１９】
本発明に係るプログラムは、コンピュータを、前記仮想マシン設定投入システムとして機能させるためのプログラムである。本発明に係る仮想マシン設定投入システムは、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００２０】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００２１】
本発明は、仮想マシンのＯＳやソフトウェア毎の設定ファイルなどに自動的に設定を投入することができる仮想マシン設定投入システム、仮想マシン設定投入方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係る仮想マシン設定投入システムを説明する構成図である。
【図２】本発明に係る仮想マシン設定投入システムを説明する構成図である。
【図３】本発明に係る仮想マシン設定投入システムを説明する構成図である。
【図４】本発明に係る仮想マシン設定投入システムを説明する構成図である。
【発明を実施するための形態】
【００２３】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００２４】
（実施形態１）
図１は、本実施形態の仮想マシン設定投入システムを説明する構成図である。本仮想マシン設定投入システムは、仮想マシンイメージを管理し、要求に応じて指定されたホストコンピュータ上に仮想マシンを起動する。
【００２５】
本仮想マシン設定投入システムは、
ホストマシン１００に起動する仮想マシン５０の構成情報を保持する仮想マシンイメージ構成情報管理部１１と、
ホストマシン１００に起動する仮想マシン５０の構成情報及び環境変数に対する設定コマンドを保持する設定方法管理部１２と、
ホストマシン１００に仮想マシン５０が起動するときに、仮想マシン５０に設定されている環境変数を取得し、仮想マシンイメージ構成情報管理部１１から仮想マシン５０の構成情報を取得し、設定方法管理部１２から前記環境変数及び前記構成情報に対応する設定コマンドを取得して仮想マシン５０に投入する設定投入部１３と、
を備える。
【００２６】
以下、各機能部について詳しく説明する。
【００２７】
設定方法管理部１２は、ＯＳやソフトウェア毎の設定ファイルのパスや設定用の変数および変数の設定方法を管理する。
ここでの管理とは、外部から仮想マシン設定投入システムに入力された情報あるいは外部から取得した情報をＤＢ（データベース）等に保存し、要求に応じてＤＢ等から読み出し提供することである。情報には実行可能なユーザ権限情報や設定適用範囲の情報を含めても良い。
また、プロキシサーバの情報は優先度、ユーザ、又はソフトウェアで選択が可能であり、定期的にプロキシサーバに対して疎通確認を行い、プロキシサーバへの通信状態を保存してもよい。また、外部の管理サーバに問合せを行い、利用可能なプロキシサーバの情報を取得してもよい。
【００２８】
仮想マシンイメージ構成情報管理部１１は、仮想マシンイメージの構成情報を管理する。ここで仮想マシンイメージの構成情報とは、仮想マシンのＯＳ種別やバージョン、または、仮想マシンにインストールされた、あるいは仮想マシン上で動作するプログラムの種別やプログラムのバージョンである。
【００２９】
設定投入部１３は、設定方法管理部１２と仮想マシンイメージ構成管理部１１の情報を照らし合わせ、起動した仮想マシンに対して設定コマンドの投入を行う。この時、仮想マシンは物理マシン上で起動する場合もあるし、仮想マシン上で起動する場合もある。
【００３０】
なお、仮想マシン起動部１４は、仮想マシン５０を起動する機能部であり、仮想マシン起動時に仮想マシンの利用者に指示された環境変数の設定などを行う。また、仮想マシンイメージ１５は、仮想マシンのイメージファイル（ＶＭイメージ、コンテナイメージなど）である。
【００３１】
図１にしたがって、各機能部の挙動を詳細に説明する。
［ステップＳ１１］
仮想マシンイメージの作成者は仮想マシンイメージ１５を作成する。
［ステップＳ１２］
仮想マシンイメージの作成者は仮想マシンイメージの構成情報を仮想マシンイメージ構成管理部１１に登録する。
例えば、仮想マシンイメージの作成者は、“ＶＭＩｍａｇｅ０１”という名前で仮想マシンイメージを構築した時、“ＶＭＩｍａｇｅ０１”という仮想マシンイメージを用いて起動する仮想マシンのＯＳ種別は“ｕｂｕｎｔｕ”であり、バージョンは“１６．０４”であり、“ｃｕｒｌ“というソフトウェア種別のバージョン“７．５４．０”がインストールされている、という情報を登録する。ここで名前とは仮想マシンイメージファイル名あるいはタグや仮想マシンイメージが保存されているファイルパスなど、仮想マシンイメージを特定できる情報のことを指す。ステップＳ１２は仮想マシンイメージの作成前に行っても良いし作成後に行っても良い。
［ステップＳ１３］
仮想マシンの利用者は、仮想マシン起動部１４により仮想マシンイメージ１５を取得する。
［ステップＳ１４］
仮想マシンの利用者は、仮想マシン３０を起動する。この時、仮想マシンの利用者は、仮想マシン５０に設定する環境変数などを指定する。
例えば、仮想マシンとしてコンテナを起動する際にｄｏｃｋｅｒを用いた場合、仮想マシンの利用者は、
“ｄｏｃｋｅｒ  ｒｕｎ  −ｅ  ｈｔｔｐ＿ｐｒｏｘｙ＝ｈｔｔｐ：／／ｐｒｏｘｙ．ｃｏ．ｊｐ：１２３４５”
のようにして−ｅオプションにより環境変数ｈｔｔｐ＿ｐｒｏｘｙを設定することができる。
［ステップＳ１５］
仮想マシン起動部１４は、設定投入部１３に対して起動した仮想マシンイメージの通知、設定された環境変数、及び仮想マシン５０上でアプリケーションを実行するユーザ名などの情報を通知する。ステップＳ１５は仮想マシン起動部１４が直接行うのではなく、仮想マシン起動部１４が動作した事をイベントとして起動するスクリプトプログラム等が実行しても良いし、設定投入部１３があらかじめ仮想マシン起動部１４の動作を監視しておき、当該情報を取得しても良い。
［ステップＳ１６］
設定投入部１３は、ステップＳ１５で取得した情報を元に仮想マシンイメージ構成管理部１１に問い合わせを行い、起動した仮想マシン５０の構成情報を取得する。
例えば、“ＶＭＩｍａｇｅ０１”が起動された場合、設定投入部１３は、ＯＳが“ｕｂｕｎｔｕ１６．０４”であり、“ｃｕｒｌ”というソフトウェアのバージョン“７．５４．０”がインストールされている、という構成情報を取得する。
［ステップＳ１７］
設定投入部１３は、ステップＳ１６で取得した構成情報およびステップＳ１４で設定された環境変数の情報を元に設定方法管理部１２に問い合わせを行い、仮想マシン５０に投入する設定コマンドを取得する。
例えば、ｃｕｒｌではｈｔｔｐプロキシの設定ファイルのパスは“〜／．ｃｕｒｌｒｃ”であり、設定ファイル内に“ｐｒｏｘｙ＝ｈｔｔｐ：／／ｐｒｏｘｙ．ｃｏ．ｊｐ：１２３４５”のように記述される。この場合、設定方法管理部１２は、環境変数ｈｔｔｐ＿ｐｒｏｘｙの設定に対応するｈｔｔｐプロキシの設定コマンドとして、
“ｅｃｈｏ  ｐｒｏｘｙ＝“＄｛ＰＲＯＸＹ  ｝：＄｛ＰＲＯＸＹ＿ＰＯＲＴ｝”  ＞  〜／．ｃｕｒｌｒｃ”（ＰＲＯＸＹ、ＰＲＯＸＹ＿ＰＯＲＴは変数）
を保持しており、設定投入部１３からの問い合わせに対して上記設定コマンドを回答する。この時、設定コマンドが複数通りある可能性もあり、その場合、設定方法管理部１２は任意のアルゴリズムで選択をしていずれかを回答すれば良い。例えば、ユーザ権限情報とユーザ情報を比較し、ユーザ情報の権限が同一、もしくは、ユーザ情報よりも低い権限レベルの設定コマンドを選択するアルゴリズムや、設定コマンドの適用範囲を比較し、より広い範囲に反映される設定コマンドを優先的に選択するアルゴリズムが例示できる。
また、例えば複数のプロキシサーバが利用可能な場合、ソフトウェア毎に異なるプロキシサーバを設定することで負荷分散を行ってもよい。
仮想マシンの各ソフトウェアに対する設定コマンドは、仮想マシンの利用者が作成して設定方法管理部１２に保持させても良いし、既に作成されているものや一般的なものを仮想マシンの利用者が設定方法管理部１２に保持させても良い。例えば、前述のように仮想マシンの起動にｄｏｃｋｅｒを用いる場合、仮想マシン起動時のｈｔｔｐプロキシの設定は−ｅオプションで指定されることが一般的であり、またｃｕｒｌのｈｔｔｐプロキシの設定ファイルのパスは“〜／．ｃｕｒｌｒｃ”内に“ｐｒｏｘｙ＝”の形で記述されることは一般的に知られている。このため、設定コマンドは仮想マシン利用者でなくとも作成可能である。例えば、設定方法管理部１２は、仮想マシンの利用者の間で設定コマンドを共通化し、ある仮想マシン利用者が過去に登録した設定コマンドを他の仮想マシン利用者が利用可能としても良い。また、ｃｕｒｌなどのコマンドの開発者が設定コマンドを設定方法管理部１２に登録しておき、仮想マシン利用者がそれらを利用しても良い。
［ステップＳ１８］
設定投入部１３は、取得した設定コマンドを用いて起動した仮想マシン５０のソフトウェアに設定を投入する。
【００３２】
以上のように本実施形態の仮想マシン設定投入システムは、仮想マシン起動時に仮想マシンの利用者が個別に設定を行うことなく仮想マシン内のソフトウェア毎の設定を行うことができる。
【００３３】
（実施形態２）
図２は、本実施形態の仮想マシン設定投入システムを説明する構成図である。本実施形態の仮想マシン設定投入システムは実施形態１の機能部の他に、仮想マシンイメージ構成情報作成部１６を備える。
【００３４】
仮想マシンイメージ構成情報作成部１６は、仮想マシンイメージ構築ファイルや仮想マシンイメージから仮想マシンの構成情報を作成する。具体的には、仮想マシンイメージ構成情報作成部１６は、仮想マシンのイメージ１５及び仮想マシンイメージを構築する命令である仮想マシンイメージ構築ファイル１７から前記構成情報を作成して仮想マシンイメージ構成情報管理部１１に保持させる。
【００３５】
［ステップＳ２１］
仮想マシンイメージ構築ファイル１７は、仮想マシンイメージ１５を構築するための命令を記述するファイルである。Ｏｚ  ｔｄｌ：  ｔｅｍｐｌａｔｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅや  Ｄｏｃｋｅｒｆｉｌｅなどが例示できる。例えばＤｏｃｋｅｒｆｉｌｅであれば、
“ＦＲＯＭ  ｕｂｕｎｔｕ：ｔｒｕｓｔｙ
ＲＵＮ  ａｐｔ−ｇｅｔ  ｕｐｄａｔｅ  ＆＆  ａｐｔ−ｇｅｔ  −ｙ  ｕｐｇｒａｄｅ
ＲＵＮ  ａｐｔ−ｇｅｔ  −ｙ  ｉｎｓｔａｌｌ  ｃｕｒｌ”
という記述がされている。
仮想マシンイメージの作成者は、仮想マシンイメージ構築ファイル１７を利用して仮想マシンイメージ１５を作成する。
［ステップＳ２２］
仮想マシンイメージ構成情報作成部１６は、仮想マシンイメージ構築ファイル１７と作成された仮想マシンイメージ１５を読み取ることで、仮想マシンのＯＳやインストールされているソフトウェア等の情報である仮想マシンイメージの構成情報を作成する。例えば上のＤｏｃｋｅｒｆｉｌｅであればＯＳが“ｕｂｕｎｔｕ：ｔｒｕｓｔｙ”であり、ｃｕｒｌがインストールされることが分かる。ただし、“ｕｂｕｎｔｕ：ｔｒｕｓｔｙ”は仮想マシンイメージ作成の元となる仮想マシンイメージのタグであり正確にはＯＳの種別やバージョン情報は取得できない。そのため、あらかじめ“ｕｂｕｎｔｕ：ｔｒｕｓｔｙ”に対応するイメージのＯＳ種別が“ｕｂｕｎｔｕ”でありバージョンが“１４．０４”であることを別のＤＢに保持しておきそれを読み取っても良い。また、仮想マシンイメージ構成情報作成部１６が仮想マシン５０を実際に起動してＯＳ情報を取得するコマンドなどを利用してＯＳ種別やバージョンを取得しても良い。ｃｕｒｌも同様にバージョンなどを取得するために仮想マシンイメージ構成情報作成部１６が“ａｐｔ−ｇｅｔ  ｉｎｓｔａｌｌ  ｃｕｒｌ”を実行してインストールされるバージョンを調べても良いし、仮想マシンを起動してインストールされているｃｕｒｌのバージョンを調べても良い。例えばｃｕｒｌのバージョンは“−−ｖｅｒｓｉｏｎ”オプションを指定してｃｕｒｌを実行することで調べることができる。
［ステップＳ２３］
仮想マシンイメージ構成情報作成部１６は得られた仮想マシンイメージの構成情報を仮想マシンイメージ構成管理部１１に登録する。
［他のステップ］
ステップＳ１３からＳ１８は、実施形態１で説明した通りである。
【００３６】
以上のように本実施形態の仮想マシン設定投入システムは、仮想マシンイメージ構成情報作成部１６が仮想マシンイメージの構成情報を仮想マシンイメージ構築ファイル１７や仮想マシンイメージ１５から作成し、仮想マシンイメージ構成管理部１１に登録することができる。仮想マシンイメージ構成情報作成部１６の存在で、仮想マシンイメージの作成者は、仮想マシンイメージ構成管理部１１に仮想マシンの構成情報を手動で登録する必要がなくなり、手間が削減される。
【００３７】
（実施形態３）
図３は、本実施形態の仮想マシン設定投入システムを説明する構成図である。本実施形態の仮想マシン設定投入システムは実施形態１の機能部の他に、ホストマシン設定管理部１８を備える。具体的には、本実施形態の仮想マシン設定投入システムは、ホストマシン１００から環境変数の内、ホストマシン１００に関する環境変数を取得し、設定投入部１３へ通知するホストマシン設定管理部１８をさらに備える。
【００３８】
［ステップＳ３１］
ホストマシン設定管理部１８は、仮想マシン５０が起動されるホストマシン１００の環境変数などを取得し、管理する。ホストマシン設定管理部１８は、環境変数を定期的に取得しても良いし、環境変数などが変更されたことをイベントとして更新情報を取得するなどしても良い。
［ステップＳ３２］
設定投入部１３は、仮想マシン５０の起動後にホストマシン設定管理部１８に問い合わせを行い、ホストマシン１００の環境変数などの設定状況を取得する。ステップＳ３２で設定投入部１３は、例えばホストマシン１００の環境変数ｈｔｔｐ＿ｐｒｏｘｙが“ｈｔｔｐ：／／ｐｒｏｘｙ．ｃｏ．ｊｐ：１２３４５”に設定されていることを知る。したがって、設定投入部１３は仮想マシンイメージ構成管理部１１への問い合わせ結果からｃｕｒｌコマンドの設定が必要である場合、設定方法管理部１２にｃｕｒｌコマンドに対するｈｔｔｐプロキシの設定コマンドの問い合わせを行うことができる。つまり、本実施形態の仮想マシン設定投入システムは、仮想マシン起動時に環境変数が設定されるのではなく、ホストマシンの環境変数の設定情報を元に仮想マシンに環境変数を設定することができる。
［他のステップ］
ステップＳ１３からＳ１８は、実施形態１で説明した通りである。
【００３９】
以上のように本実施形態の仮想マシン設定投入システムは、例えば、仮想マシンがホストマシンと同じ環境変数を持てば良い場合などに、仮想マシン起動時に環境変数の設定をするという仮想マシンの利用者の手間を省略することができる。また、本実施形態の仮想マシン設定投入システムがホストマシンの設定を流用してネットワーク設定を行うため、ネットワーク設定などが不明であっても仮想マシン利用者は容易に仮想マシンを利用することができる。
【００４０】
（実施形態４）
図４は、本実施形態の仮想マシン設定投入システムを説明する構成図である。本実施形態の仮想マシン設定投入システムは実施形態１の機能部の他に、仮想マシン設定管理部１９とホストマシン設定更新通知部２０を備える。
【００４１】
具体的には、本実施形態の仮想マシン設定投入システムは、ホストマシン１００に起動している仮想マシン５０の前記構成情報及び前記設定コマンドを管理し、仮想マシン５０の状態が変更されたときに変更内容を設定投入部１３へ通知する仮想マシン設定管理部１９と、
ホストマシン１００の状態が変更されたときにホストマシン１００に関する環境変数の変更内容を設定投入部１３へ通知するホストマシン設定更新通知部２０と、
をさらに備える。
そして、設定投入部１３は、仮想マシン設定管理部１９及びホストマシン設定更新通知部２０のいずれか一方から通知された前記更新内容に基づいて設定方法管理部１２から新たな設定コマンドを取得して仮想マシン５０に投入する。
【００４２】
［ステップＳ４１］
仮想マシン設定管理部１９は、仮想マシン５０にインストールされたＯＳやソフトウェアなどの構成情報や、仮想マシン起動時に設定投入部１３によって投入された設定コマンドを管理する。これらの情報は、仮想マシン５０の状態が変更（ソフトウェアのインストール、アンインストール等）されたことをイベントとして更新する。
［ステップＳ４２］
ホストマシン設定更新通知部２０は、ホストマシン１００の環境変数などの設定の更新を検知し、通知する。更新の検知は定期的に更新情報の有無を確認することによって検知しても良いし、環境変数などが変更されたことをホストマシン側がイベントとして管理してホストマシン設定更新通知部２０に更新情報を送信するなどしても良い。
［ステップＳ４３］
仮想マシン５０の状態の変化を検知した際に、仮想マシン設定管理部１９は設定投入部１３に対して更新情報の通知を行う。設定投入部１３は更新情報を用いて設定方法管理部１２に問い合わせを行い、設定コマンドが不足している場合は不足している設定コマンドを仮想マシン５０に対して投入する。設定コマンドが不要であれば設定コマンドを削除する。
【００４３】
仮想マシン設定管理部１９の動作によって、仮想マシン起動後に新しいソフトウェアをインストールもしくはアンインストールした場合でも設定コマンドが自動で更新されサービスを継続できる。
【００４４】
［ステップＳ４４］
また、同様にホストマシン設定更新通知部２０は、ホストマシンの設定の変化を検知した際に、設定投入部１３に対して更新情報の通知を行い、設定投入部１３は更新情報を用いて設定方法管理部１２に問い合わせを行い、設定コマンドが不足している場合は不足している設定コマンドを仮想マシン５０に対して投入する。設定コマンドが不要であれば設定を削除する。
【００４５】
ホストマシン設定更新通知部２０の動作によって、例えば２つ以上のプロキシ設定の異なるネットワークと切替を行っており、ホストマシン側のネットワークが切り替わりに追随して設定コマンドが自動で更新される。このため、仮想マシンの利用者はネットワーク設定を意識することなく、サービスを継続することができる。
【００４６】
ここで、「設定コマンドが不足している場合は不足している設定コマンドを仮想マシンに対して投入する」とは、例えばホストマシンにプロキシ設定が設定されていなかったが更新によってホストマシンにプロキシ設定が投入された場合、仮想マシンに対してプロキシ設定を追加で投入することである。また、「設定コマンドが不要であれば設定コマンドを削除する」とは、例えばホストマシンに設定されていたプロキシ設定が更新によって削除された場合、仮想マシンからプロキシ設定を削除することである。
【００４７】
（発明の要旨）
（１）仮想マシンイメージ構成管理部１１が、仮想マシンイメージと仮想マシンの構成情報を保持しておくこと。
（２）設定方法管理部１２が、仮想マシンを構成するソフトウェアの設定コマンドを保持しておくこと。
（３）設定投入部１３が仮想マシンイメージ構成管理部１１の情報と設定方法管理部１２の情報を照らし合わせ、仮想マシン内のソフトウェア毎に必要となる設定コマンドを自動的に投入すること。
（４）仮想マシンイメージ構成情報作成部１６が、仮想マシンイメージ構築ファイル１７や仮想マシンイメージ１５から仮想マシンの構成情報を取得すること。
一般的に仮想マシンイメージ構成ファイル１７は仮想マシンイメージ１５の構築にのみ用いられ、イメージファイルの構築後は利用されない。構築後のイメージファイルだけではどのようなソフトウェアがインストールされているのかは分からないが、本機能部により仮想マシンイメージ１５の構成情報を取得し、仮想マシンイメージ構成管理部１１に登録しておくことで仮想マシンの構成情報を自動的に作成、保持することができる。
（５）ホストマシン設定管理部１８が、ホストマシン１００の設定を取得し、設定投入部１３はホストマシン設定管理部１８に問い合わせを行うこと。仮想マシンへの設定コマンド投入時にホストマシンの環境変数などの設定コマンドを取得でき、仮想マシンに投入可能となる。
（６）ホストマシン設定更新通知部２０が、ホストマシンの設定更新を他の機能部に通知すること。ホストマシンの設定更新に応じて仮想マシンへの設定コマンドを変更することが可能となる。
【００４８】
（発明の効果）
（１）仮想マシンにインストールされているソフトウェア毎に個別の設定が必要な場合も自動で設定を入れることができ、仮想マシンの使用者の手間が削減される。
（２）ソフトウェア毎の設定コマンドが不明な場合でも仮想マシンの使用者は仮想マシンを容易に利用できる。
（３）仮想マシンの使用者は仮想マシンの構成情報を容易に作成することができる。
（４）ホストマシンの設定を引き継ぐことでネットワークの設定方法など自動で引き継ぐことができ、仮想マシンの使用者の手間が削減される。またネットワーク設定が不明な場合であっても仮想マシンの使用者は容易に仮想マシンを利用できる。
（５）仮想マシン起動後に新しいソフトウェアをインストールもしくはアンインストールした場合でも設定が自動で反映される。またホストマシンの状態変更が自動で反映される。
【符号の説明】
【００４９】
１１：仮想マシンイメージ構成情報管理部
１２：設定方法管理部
１３：設定投入部
１４：仮想マシン起動部
１５：仮想マシンイメージ
１６：仮想マシンイメージ構成情報作成部
１７：仮想マシンイメージ構築ファイル
１８：ホストマシン設定管理部
１９：仮想マシン設定管理部
２０：ホストマシン設定更新通知部
５０：仮想マシン
６０：ホストマシン環境変数
１００：ホストマシン
【図１】
2019057206.tif 000003
【図２】
2019057206.tif 000004
【図３】
2019057206.tif 000005
【図４】
2019057206.tif 000006