このドキュメントでは、mcdc
CLI が提供するさまざまなゲスト検出方法を実行する手順について説明します。
概要
ゲスト検出を使用すると、仮想マシン(VM)インスタンスや物理サーバーなど、マシン上で実行されているアプリケーションに関するデータをスキャンして収集できます。また、マシン構成、ハードウェア、ネットワーク、オープンファイル、サービス、プロセスに関するデータも収集します。
Azure で実行されている VM やオンプレミスで実行されているマシンなど、移行センター ディスカバリー クライアント CLI がインベントリ 検出をサポートしていないプラットフォームで実行されているマシンや、VMware と AWS で実行されている VM の完全な評価で、ゲスト検出を実行できます。ゲスト検出は、ゲスト コレクション スクリプトを使用してマシンに関するデータを収集し、そのデータを Linux マシンのゲスト コレクション tar ファイルまたは Windows マシンの ZIP ファイルに書き込みます。
mcdc
CLI をホストしているマシンがスクリプトをターゲット マシンにアップロードし、実行して結果をダウンロードします。スクリプトは、ターゲット マシンでローカルに実行することも、リモートで実行することもできます。インフラストラクチャに応じて、次の方法で mcdc
CLI を使用できます。
- VMware にデプロイされた Linux VM と Windows VM の場合、
mcdc
CLI はdiscover vsphere
コマンドによるリモート実行をサポートしています。 mcdc
CLI でアクセス可能な Linux マシンの場合は、discover ssh
コマンドを使用して SSH でリモート検出を実行できます。mcdc
CLI からアクセスできる Windows マシンの場合は、discover wmi
コマンドを使用して Windows Management Instrumentation(WMI)を使用してリモート検出を実行できます。mcdc
CLI への接続がない Linux マシンと Windows マシンの場合、ゲスト コレクション スクリプトをローカルにダウンロードして実行した後、mcdc
CLI をホストするマシンに収集したデータを手動でインポートします。
ゲスト コレクション スクリプトは、一連のコマンドを実行して移行元のマシンに関する情報を収集します。また、マシン上の複数のファイルからも情報を収集します。
準備
mcdc
CLI をダウンロードして実行するための要件を確認します。- ゲスト コレクション スクリプトをダウンロードして実行するための要件を確認します。
mcdc
CLI をダウンロードする手順を完了します。
VMware ツールを使用してリモートでデータを収集する
vSphere でホストされている VM の場合、mcdc
CLI は VMware ツールを使用して、Linux VM と Windows VM の両方にリモートで収集スクリプトをデプロイして実行できます。VMware ツールを使用する場合、mcdc
CLI ツールは次の処理を行います。
- 収集スクリプトを VM にアップロードします。
- VM でスクリプトを実行する
- 結果をダウンロードしてインポートします。
リモートでデータを収集するには、次の 2 組の認証情報が必要です。
- vSphere に接続するために
mcdc
CLI に渡される vCenter Server ユーザー名には、VM に対する次の権限が必要です。- ゲスト オペレーションの変更
- ゲスト オペレーション プログラムの実行
- ゲスト オペレーション クエリ
- VM のユーザー認証情報:
- Windows の場合は、管理者権限が必要です。
- Linux の場合、root アクセス権は必要ありませんが、root アクセス権を使用すると、
mcdc
CLI は完全な評価に必要なデータを収集できます。
VMware ツールを使用してデータを収集する手順は次のとおりです。
mcdc
CLI をホストしている Linux VM にログインします。mcdc
CLI をダウンロードしたディレクトリに移動します。- 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 から同時にデータを収集するには、次の操作を行います。
mcdc
CLI をホストしている Linux VM にログインします。mcdc
CLI をダウンロードしたディレクトリに移動します。- すべての 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 または Linux VM のみに制限するか、--max-parallelism
フラグを使用して並列処理のレベルを変更します。プロンプトが表示されたら、VCENTER_USER と VM_USER のパスワードを入力します。
また、VMware についてはインベントリ検出の実行で説明しているように、
--path
フラグを使用して検出範囲を特定の VM にスコープすることもできます。
この収集したデータはオンラインで移行センターでエクスポートして評価することも、オフライン評価を実行することもできます。
SSH 経由でリモートからデータを収集する
mcdc
CLI をホストしているマシンに、ターゲット Linux マシン(Windows マシンはサポートされていません)への SSH アクセス権がある場合、mcdc
CLI は、SSH 経由でターゲット マシンに接続してデータを収集できます。
SSH を使用する場合、mcdc
CLI は次の処理を行います。
- 収集スクリプトをマシンにアップロードします。
mcdc
CLI に渡されたマシンユーザー認証情報を使用して、マシンでスクリプトを実行します。結果をダウンロードしてインポートします。
サポートされている SSH モード
Linux マシンで mcdc
CLI を使用している場合は、次の 2 つのモードで SSH を実行できます。
デフォルト:
mcdc
CLI マシンのssh
バイナリと構成を使用します。デフォルト モードでは、~/.ssh/config
や~/.ssh/known_hosts
など、ホストするワークステーションのローカル SSH 構成ファイルがデフォルトで使用されます。プロンプトが表示されたらパスワードを入力します。または、
sshpass
を使用してコマンドラインでパスワードまたは秘密鍵ファイルのパスフレーズを渡します。次に例を示します。sshpass -p password mcdc discover ssh IP_ADDRESS
IP_ADDRESS は、マシンの IP アドレスに置き換えます。
組み込み: 内蔵型のライブラリを使用します。このモードを使用すると、デフォルト モードが正常に動作しない場合に、埋め込み SSH クライアントを使用できます。ただし、デフォルトではローカル SSH 構成ファイルは使用されません。
-i
オプションを使用して、SSH 秘密鍵ファイルを指定できます。
Windows マシンで mcdc
CLI を使用している場合、埋め込みモードのみがサポートされます。
コレクションを実行する
SSH 経由でデータを収集する手順は次のとおりです。
mcdc
CLI をホストしている Linux マシンにログインします。mcdc
CLI をダウンロードしたディレクトリに移動します。データの収集:
Linux
./mcdc discover ssh IP_HOSTNAME
Windows
mcdc.exe discover ssh IP_HOSTNAME
IP_HOSTNAME は、マシンの IP ホスト名に置き換えます。
mcdc
CLI を呼び出すユーザーの SSH 秘密鍵ファイルは、SSH 認証に使用されます。プロンプトが表示されたら、Linux マシン上のアカウントのユーザー名を入力します。収集スクリプトはこれらの認証情報を使用して実行されます。
mcdc
CLI を呼び出したユーザーの 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
mcdc
CLI コマンドでは、ほとんどの 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 コレクションは、Windows バージョンの mcdc
CLI でのみサポートされます。
WMI を使用する場合、mcdc
CLI は次の処理を行います。
- 収集スクリプトをマシンにアップロードします。
mcdc
CLI に渡されたマシンユーザー認証情報を使用して、マシンでスクリプトを実行します。結果をダウンロードしてインポートします。
WMI を介してデータを収集する手順は次のとおりです。
mcdc
CLI をホストしている Windows マシンにログインします。mcdc
CLI をダウンロードしたディレクトリに移動します。データの収集:
mcdc.exe discover wmi IP_HOSTNAME
IP_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 を開きます。
mcdc
CLI をダウンロードしたディレクトリに移動します。マシンで収集スクリプトを実行します。
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 にエクスポートする方法を確認する。