ゲスト検出を実行する

このドキュメントでは、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 をホストするマシンに収集したデータを手動でインポートします。

ゲスト コレクション スクリプトは、一連のコマンドを実行して移行元のマシンに関する情報を収集します。また、マシン上の複数のファイルからも情報を収集します。

準備

  1. mcdc CLI をダウンロードして実行するための要件を確認します。
  2. ゲスト コレクション スクリプトをダウンロードして実行するための要件を確認します。
  3. 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 ツールを使用してデータを収集する手順は次のとおりです。

  1. mcdc CLI をホストしている Linux VM にログインします。
  2. mcdc CLI をダウンロードしたディレクトリに移動します。
  3. VM の電源がオンになっていることを確認します。
  4. ゲスト検出を実行します。

    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 の名前
  5. プロンプトが表示されたら、VCENTER_USERVM_USER のパスワードを入力します。

VMware ツールを使用して複数の vSphere VM から同時にデータを収集するには、次の操作を行います。

  1. mcdc CLI をホストしている Linux VM にログインします。
  2. mcdc CLI をダウンロードしたディレクトリに移動します。
  3. すべての VM の電源がオンになっていることを確認します。
  4. ゲスト検出を実行します。

    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 フラグを使用して並列処理のレベルを変更します。

  5. プロンプトが表示されたら、VCENTER_USERVM_USER のパスワードを入力します。

  6. また、VMware についてはインベントリ検出の実行で説明しているように、--path フラグを使用して検出範囲を特定の VM にスコープすることもできます。

この収集したデータはオンラインで移行センターでエクスポートして評価することも、オフライン評価を実行することもできます。

SSH 経由でリモートからデータを収集する

mcdc CLI をホストしているマシンに、ターゲット Linux マシン(Windows マシンはサポートされていません)への SSH アクセス権がある場合、mcdc CLI は、SSH 経由でターゲット マシンに接続してデータを収集できます。

SSH を使用する場合、mcdc CLI は次の処理を行います。

  1. 収集スクリプトをマシンにアップロードします。
  2. mcdc CLI に渡されたマシンユーザー認証情報を使用して、マシンでスクリプトを実行します。

  3. 結果をダウンロードしてインポートします。

サポートされている SSH モード

Linux マシンで mcdc CLI を使用している場合は、SSH を実行する 2 つのモードを使用できます。

  • デフォルト: 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 経由でデータを収集するには、次の手順を行います。

  1. mcdc CLI をホストしている Linux マシンにログインします。
  2. mcdc CLI をダウンロードしたディレクトリに移動します。
  3. データの収集:

    Linux

    ./mcdc discover ssh IP_HOSTNAME

    Windows

    mcdc.exe discover ssh IP_HOSTNAME

    IP_HOSTNAME は、マシンの IP ホスト名に置き換えます。

  4. 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 で次の処理が行われます。

  1. 収集スクリプトをマシンにアップロードします。
  2. mcdc CLI に渡されたマシンユーザー認証情報を使用して、マシンでスクリプトを実行します。

  3. 結果をダウンロードしてインポートします。

WMI 経由でデータを収集するには、次の手順を行います。

  1. mcdc CLI をホストしている Windows マシンにログインします。
  2. mcdc CLI をダウンロードしたディレクトリに移動します。
  3. データの収集:

    mcdc.exe discover wmi IP_HOSTNAME
    

    IP_HOSTNAME は、マシンの IP ホスト名に置き換えます。

  4. プロンプトが表示されたら、認証情報を入力します。

個々の Linux マシンでデータを収集する

Linux マシンでローカルにゲスト収集を実行するには、mcdc-linux-collect.sh スクリプトを実行します。次に、スクリプトによって生成された ZIP ファイルを mcdc CLI をホストするマシンにコピーし、discover import コマンドを使用してインポートできます。

通常は、sudo オプションを指定してスクリプトを実行します。必要に応じて、mcdc CLI を実行するユーザーの権限を使用してスクリプトを実行することもできます。ただし、スクリプトによっては、必要なデータをすべて収集できない場合があります。

  1. マシンにログインします。
  2. ゲスト収集スクリプトをダウンロードしたディレクトリに移動します。
  3. マシンで収集スクリプトを実行します。

    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 ファイルを保存するパスを指定できます。

  4. 収集したデータをターゲット マシンからホストマシンにコピーします。

  5. 収集したデータをホストマシンにインポートします。

    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 コマンドを使用してインポートできます。

  1. マシンにログインします。
  2. [管理者として実行] オプションを使用して PowerShell を開きます。
  3. mcdc CLI をダウンロードしたディレクトリに移動します。
  4. マシンで収集スクリプトを実行します。

    powershell -ExecutionPolicy ByPass -File .\mcdc-windows-collect.ps1
    
  5. このスクリプトは、mcdc-collect-MACHINE_NAME-TIMESTAMP.zip という名前の ZIP ファイルを現在のディレクトリに出力します。

    必要に応じて、出力パスを含めて別の場所を指定できます。

    .\mcdc-windows-collect.ps1 PATH_FOR_OUTPUT.zip
    
  6. 収集したデータをホストマシンにインポートします。

    Linux

    ./mcdc discover import PATH_TO_TAR

    Windows

    mcdc.exe discover import PATH_TO_TAR

    PATH_TO_TAR は、YAML ファイルのパスに置き換えます。

収集したデータをエクスポートして、移行センターでオンラインで評価することも、オフライン評価を実行することもできます。

次のステップ