このドキュメントでは、mcdc CLI が提供するさまざまなゲスト検出方法を実行する手順について説明します。
概要
ゲスト検出を使用すると、仮想マシン(VM)インスタンスや物理サーバーなど、マシン上で実行されているアプリケーションに関するデータをスキャンして収集できます。また、マシン構成、ハードウェア、ネットワーク、さらにオープンファイル、サービス、プロセスに関するデータも収集します。
Azure で実行されている VM やオンプレミスで実行されているマシンなど、移行センター ディスカバリー クライアント CLI がインベントリ 検出をサポートしていないプラットフォームで実行されているマシンや、VMware と AWS で実行されている VM の完全な評価で、ゲスト検出を実行できます。ゲスト検出は、ゲスト コレクション スクリプトを使用してマシンに関するデータを収集し、そのデータを Linux マシンのゲスト コレクション tar ファイルまたは Windows マシンの ZIP ファイルに書き込みます。
mcdc CLI をホストしているマシンが、スクリプトをターゲット マシンにアップロードして実行し、結果をダウンロードします。スクリプトは、ターゲット マシンでローカルに実行することも、リモートで実行することもできます。インフラストラクチャに応じて、次の方法で mcdc CLI を使用できます。
- VMware にデプロイされた Linux VM と Windows VM の場合、
mcdcCLI はdiscover vsphereコマンドによるリモート実行をサポートしています。 mcdcCLI でアクセス可能な Linux マシンでは、discover sshコマンドを使用して SSH でリモート検出を実行できます。mcdcCLI からアクセス可能な Windows マシンでは、discover wmiコマンドを使用して Windows Management Instrumentation(WMI)でリモート検出を実行できます。mcdcCLI への接続がない Linux マシンと Windows マシンの場合、ゲスト コレクション スクリプトをローカルにダウンロードして実行した後、mcdcCLI をホストするマシンに収集したデータを手動でインポートします。
ゲスト コレクション スクリプトは、一連のコマンドを実行して移行元のマシンに関する情報を収集します。また、マシン上の複数のファイルからも情報を収集します。
準備
mcdcCLI をダウンロードして実行するための要件を確認します。- ゲスト コレクション スクリプトをダウンロードして実行するための要件を確認します。
mcdcCLI をダウンロードする手順を完了します。
VMware ツールを使用してリモートでデータを収集する
vSphere でホストされている VM の場合、mcdc CLI は VMware ツールを使用して、Linux VM と Windows VM の両方にリモートで収集スクリプトをデプロイして実行できます。VMware ツールを使用する場合、mcdc CLI ツールは次の処理を行います。
- 収集スクリプトを VM にアップロードします。
- VM でスクリプトを実行する
- 結果をダウンロードしてインポートします。
リモートでデータを収集するには、次の 2 組の認証情報が必要です。
- vSphere に接続するために
mcdcCLI に渡される vCenter Server ユーザー名には、VM に対する次の権限が必要です。- ゲスト オペレーションの変更
- ゲスト オペレーション プログラムの実行
- ゲスト オペレーション クエリ
- VM のユーザー認証情報:
- Windows の場合は、管理者権限が必要です。
- Linux の場合、root アクセス権は必要ありませんが、root アクセス権を使用すると、
mcdcCLI は完全な評価に必要なデータを収集できます。
VMware ツールを使用してデータを収集する手順は次のとおりです。
mcdcCLI をホストする Linux VM にログインします。mcdcCLI をダウンロードしたディレクトリに移動します。- VM の電源がオンになっていることを確認します。
ゲスト検出を実行します。
Linux
./mcdc discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID
Windows
mcdc.exe discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID
以下を置き換えます。
- VCENTER_USER: vCenter Server ユーザー
- VM_USER: VM ユーザー
- VM_ID: VM の名前または MOREF
プロンプトが表示されたら、VCENTER_USER と VM_USER のパスワードを入力します。
VMware ツールを使用して複数の vSphere VM から同時にデータを収集するには、次の操作を行います。
mcdcCLI をホストする Linux VM にログインします。mcdcCLI をダウンロードしたディレクトリに移動します。- すべての VM の電源が入っていることを確認します。
ゲスト検出を実行します。
Linux
./mcdc discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS
Windows
mcdc.exe discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS
TIMEOUT_IN_SECONDS は秒単位のタイムアウトに置き換えます。
必要に応じて、
--os-familyフラグを使用して検出を Windows VM または Linux VM のみに制限するか、--max-parallelismフラグを使用して並列処理のレベルを変更します。プロンプトが表示されたら、VCENTER_USER と VM_USER のパスワードを入力します。
また、VMware についてはインベントリ検出の実行で説明しているように、
--pathフラグを使用して検出範囲を特定の VM にスコープすることもできます。
この収集したデータはオンラインで移行センターでエクスポートして評価することも、オフライン評価を実行することもできます。
SSH 経由でリモートからデータを収集する
mcdc CLI をホストしているマシンに、ターゲット Linux マシン(Windows マシンはサポートされていません)への SSH アクセス権がある場合、mcdc CLI は、SSH 経由でターゲット マシンに接続してデータを収集できます。
SSH を使用する場合、mcdc CLI は次の処理を行います。
- 収集スクリプトをマシンにアップロードします。
mcdcCLI に渡されたマシンユーザー認証情報を使用して、マシンでスクリプトを実行します。結果をダウンロードしてインポートします。
サポートされている SSH モード
Linux マシンで mcdc CLI を使用している場合は、次の 2 つのモードで SSH を実行できます。
デフォルト:
mcdcCLI マシンのsshバイナリと構成を使用します。デフォルト モードでは、~/.ssh/configや~/.ssh/known_hostsなど、ホストするワークステーションのローカル SSH 構成ファイルがデフォルトで使用されます。プロンプトが表示されたらパスワードを入力します。または、
sshpassを使用してコマンドラインでパスワードまたは秘密鍵ファイルのパスフレーズを渡します。次に例を示します。sshpass -p password mcdc discover ssh IP_ADDRESSIP_ADDRESS は、マシンの IP アドレスに置き換えます。
組み込み: 内蔵型のライブラリを使用します。このモードを使用すると、デフォルト モードが正常に動作しない場合に、組み込みの SSH クライアントを使用できます。ただし、デフォルトではローカル SSH 構成ファイルは使用されません。
-iオプションを使用して、SSH 秘密鍵ファイルを指定できます。
Windows マシンで mcdc CLI を使用している場合は、埋め込みモードのみがサポートされます。
コレクションを実行する
SSH 経由でデータを収集する手順は次のとおりです。
mcdcCLI をホストしている Linux マシンにログインします。mcdcCLI をダウンロードしたディレクトリに移動します。データを収集します。
Linux
./mcdc discover ssh IP_HOSTNAME
Windows
mcdc.exe discover ssh IP_HOSTNAME
データベース アセットを検出して収集するには、
--db-engineフラグを使用します。Linux
./mcdc discover ssh IP_HOSTNAME --db-engine=DB_ENGINE
Windows
mcdc.exe discover ssh IP_HOSTNAME --db-engine=DB_ENGINE
次のように置き換えます。
- IP_HOSTNAME: マシンの IP ホスト名。
- DB_ENGINE: 収集するデータベース エンジン。サポートされている値は
sqlserver、mysql、postgresqlです。
mcdcCLI を呼び出すユーザーの SSH 秘密鍵ファイルは、SSH 認証に使用されます。プロンプトが表示されたら、Linux マシン上のアカウントのユーザー名を入力します。収集スクリプトはこれらの認証情報を使用して実行されます。
mcdcCLI を呼び出したユーザーの SSH 秘密鍵がユーザー名でのマシンの認証に失敗した場合でも、パスワードの入力を求められます。
SSH を使用する場合の追加シナリオ
コマンドの変更が必要になる可能性があるシナリオを次に示します。
デフォルト モードでマシンユーザーを指定するには、
-uフラグを使用します。Linux
./mcdc discover ssh -u USER IP_HOSTNAME
Windows
mcdc.exe discover ssh -u USER IP_HOSTNAME
USER は、マシンのユーザーに置き換えます。
プロンプトが表示されたら、ユーザーのパスワードを入力します。
詳細モードを指定するには、
-vフラグを使用します。Linux
./mcdc discover ssh -u USER -v IP_HOSTNAME
Windows
mcdc.exe discover ssh -u USER -v IP_HOSTNAME
SSH 秘密鍵ファイルを指定するには、
-iフラグを使用します。たとえば、.ssh/my_private_keyを指定する場合:Linux
./mcdc discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME
Windows
mcdc.exe discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME
コマンドラインでパスワードを指定するには、埋め込みモードを使用します。
Linux
./mcdc discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME
Windows
mcdc.exe discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME
コマンドの埋め込み形式では、デフォルトでローカル SSH 構成ファイルが使用されないため、コマンドで指定したユーザーが SSH を介してマシンにアクセスできることと、マシンで収集スクリプトを実行する権限を持っていることを確認します。
埋め込みモードで SSH 秘密鍵ファイルを指定するには、
-iフラグを使用します。Linux
./mcdc discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME
Windows
mcdc.exe discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME
mcdcCLI コマンドでは、ほとんどの SSH フラグを指定できます。次に、-aまたは--ssh-argsフラグを使用して、これらのフラグをsshコマンドに渡します。たとえば、socks プロキシを使用するには:Linux
./mcdc discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME
Windows
mcdc.exe discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME
この収集したデータはオンラインで移行センターでエクスポートして評価することも、オフライン評価を実行することもできます。
WMI 経由でリモートでデータを収集する
WMI をサポートするターゲット Windows マシンでゲスト検出を実行する場合は、mcdc CLI をホストしている Windows マシンで mcdc discover wmi コマンドを使用します。WMI コレクションは、mcdc CLI の Windows バージョンでのみサポートされています。
WMI を使用する場合、mcdc CLI は次の処理を行います。
- 収集スクリプトをマシンにアップロードします。
mcdcCLI に渡されたマシンユーザー認証情報を使用して、マシンでスクリプトを実行します。結果をダウンロードしてインポートします。
WMI 経由でデータを収集する手順は次のとおりです。
mcdcCLI をホストしている Windows マシンにログインします。mcdcCLI をダウンロードしたディレクトリに移動します。データの収集:
mcdc.exe discover wmi IP_HOSTNAMEIP_HOSTNAME は、マシンの IP ホスト名に置き換えます。
プロンプトが表示されたら、認証情報を入力します。
個々の Linux マシンでデータを収集する
Linux マシンでゲスト収集をローカルに実行するには、mcdc-linux-collect.sh スクリプトを実行します。次に、スクリプトによって生成された ZIP ファイルを mcdc CLI をホストするマシンにコピーし、discover import コマンドを使用してインポートできます。
通常は、sudo オプションを指定してスクリプトを実行します。必要に応じて、mcdc CLI を実行するユーザーの権限を使用してスクリプトを実行できます。ただし、スクリプトによっては、必要なデータをすべて収集できない場合があります。
- マシンにログインします。
- ゲスト収集スクリプトをダウンロードしたディレクトリに移動します。
マシンで収集スクリプトを実行します。
sudo ./mcdc-linux-collect.shこのスクリプトは、
mcdc-collect-MACHINE_NAME-TIMESTAMP.tarという名前の tar ファイルを現在のディレクトリに出力します。タイムスタンプの形式はYYYY-MM-DD-hh-mmです。クリックしてゲスト コレクションの tar ファイル形式を表示する
tar ファイルの形式は次のとおりです。
collect.log # Log output of the script files # Directory containing files with their full path from root. For example: |- etc/fstab |- etc/hostname |- etc/network/interfaces |- ... commands # Output of commands run by the script: |- dpkg |- netstat |- ps |- ... found_paths # Text file with the list of installation directories machinename # Text file with machine name ostype # Text file with operating system type (Linux) timestamp # Text file with collection timestamp version # Text file with the version of the script
必要に応じて、引数
--outputを渡して、tar ファイルを保存するパスを指定できます。収集したデータをターゲット マシンからホストマシンにコピーします。
収集したデータをホストマシンにインポートします。
Linux
./mcdc discover import PATH_TO_TAR
Windows
mcdc.exe discover import PATH_TO_TAR
PATH_TO_TAR は、YAML ファイルのパスに置き換えます。
この収集したデータはオンラインで移行センターでエクスポートして評価することも、オフライン評価を実行することもできます。
個々の Windows マシンでデータを収集する
Windows マシンでゲスト収集をローカルに実行するには、mcdc-windows-collect.ps1 スクリプトを実行します。次に、スクリプトによって生成された ZIP ファイルを mcdc CLI をホストするマシンにコピーし、discover import コマンドを使用してインポートできます。
- マシンにログインします。
- [管理者として実行] オプションを使用して PowerShell を開きます。
mcdcCLI をダウンロードしたディレクトリに移動します。マシンで収集スクリプトを実行します。
powershell -ExecutionPolicy ByPass -File .\mcdc-windows-collect.ps1このスクリプトは、
mcdc-collect-MACHINE_NAME-TIMESTAMP.zipという名前の ZIP ファイルを現在のディレクトリに出力します。必要に応じて、出力パスを含めて別の場所を指定できます。
.\mcdc-windows-collect.ps1 PATH_FOR_OUTPUT.zip収集したデータをホストマシンにインポートします。
Linux
./mcdc discover import PATH_TO_TAR
Windows
mcdc.exe discover import PATH_TO_TAR
PATH_TO_TAR は、YAML ファイルのパスに置き換えます。
収集したデータをエクスポートして、移行センターでオンラインで評価することも、オフライン評価を実行することもできます。
次のステップ
- IP 範囲のスキャンを実行する方法を確認する。
- 収集したデータを Migration Center にエクスポートする方法を確認する。