ゲスト ディスカバリを実行する

ゲスト ディスカバリを使用すると、マシン上で実行されているアプリケーション(仮想マシン(VM)インスタンスや物理サーバーなど)に関するデータをスキャンして収集できます。また、マシンの構成、ハードウェア、ネットワーク、オープン ファイル、サービス、プロセスに関するデータも収集します。

Azure で実行されている VM やオンプレミスで実行されているマシンなど、Migration Center 検出クライアント CLI がインベントリ ディスカバリをサポートしていないプラットフォームで実行されているマシンの場合。 VMware と AWS で実行されている VM の完全な評価では、ゲスト ディスカバリを実行できます。ゲスト検出スクリプトは、ゲスト コレクション スクリプトを使用してマシンに関するデータを収集し、そのデータを Linux マシンのゲスト コレクション tar ファイルまたは Windows マシンの ZIP ファイルに書き込みます。

mcdc CLI をホストしているマシンがゲストブックにスクリプトをアップロードして実行し、結果をダウンロードします。スクリプトは、ターゲット マシン上でローカルに実行することも、リモートで実行することもできます。VMware によってデプロイされた Linux VM と Windows VM の場合、mcdc CLI はリモート実行をサポートします。mcdc CLI でアクセスできるその他の Linux マシンには、discover ssh コマンドを使用できます。

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

VMware ツールまたは SSH を使用して、mcdc CLI を使用してリモートでゲスト ディスカバリを実行できます。また、個々の Linux マシンや Windows マシンでゲスト コレクション スクリプトをダウンロードして実行し、mcdc CLI をホストしているマシンに手動で収集データをインポートすることもできます。

このドキュメントでは、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 では、ルートアクセスは必要ありませんが、ルートアクセスでは mcdc CLI で完全な評価に必要なデータを収集できることが保証されます。

VMware ツールを使用してデータを収集するには、次の手順を行います。

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

    ./mcdc 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. ゲスト ディスカバリを実行します。

    ./mcdc 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 マシンにソース Linux マシンへの SSH アクセス権が付与されている場合(Windows マシンはサポートされていません)、mcdc CLI は、SSH を使用してリモートマシンに接続できます。 101} データを収集します。

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

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

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

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 秘密鍵ファイルを指定できます。

SSH 経由でデータを収集するには、次の手順に沿って操作します。

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

    ./mcdc discover ssh IP_HOSTNAME
    

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

  4. mcdc CLI を呼び出すユーザーの SSH 秘密鍵ファイルは、SSH 認証に使用されます。

    Linux マシン上のアカウントのユーザー名を求められたら入力します。収集スクリプトはこれらの認証情報を使用して実行されます。mcdc CLI を呼び出すユーザーの SSH 秘密鍵がユーザー名でマシンに対する認証に失敗した場合、パスワードの入力を求められます。

コマンドの変更が必要になる可能性があるシナリオを次に示します。

  • デフォルト モードでマシンユーザーを指定するには、-u フラグを使用します。

    ./mcdc discover ssh -u USER IP_HOSTNAME
    

    USER は、マシンユーザーに置き換えます。

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

  • 詳細モードを指定するには、-v フラグを使用します。

    ./mcdc discover ssh -u USER -v IP_HOSTNAME
    
  • SSH 秘密鍵ファイルを指定するには、-i フラグを使用します。たとえば、.ssh/my_private_key を指定する場合:

    ./mcdc discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME
    
  • コマンドラインでパスワードを指定するには、埋め込みモードを使用します。

    ./mcdc discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME
    

    コマンドの埋め込み形式では、デフォルトでローカル SSH 構成ファイルが使用されないため、コマンドで指定したユーザーが SSH を介してマシンにアクセスできることと、マシンで収集スクリプトを実行する権限を持っていることを確認します。

  • 埋め込みモードで SSH 秘密鍵ファイルを指定するには、-i フラグを使用します。

    ./mcdc discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME
    
  • mcdc CLI コマンドでは、ほとんどの SSH フラグを指定できます。次に、-a フラグまたは --ssh-args フラグを使用して、これらのフラグを ssh コマンドに渡します。たとえば、socks プロキシを使用するには:

    ./mcdc discover ssh -u USER \
        -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p'
        IP_HOSTNAME
    

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

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

マシン上で mcdc-linux-collect.sh ゲスト コレクション スクリプトを実行して、そのマシンに関するデータを収集できます。次に、discover import コマンドを実行して mcdc CLI をダウンロードし、ターゲット マシンからマシンに tar ファイルをダウンロードして、ホストマシンにデータをインポートできます。通常は、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. 収集したデータをホストマシンにインポートします。

    ./mcdc discover import PATH_TO_TAR
    

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

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

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

  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
    

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

Windows マシンでデータ収集を実行している間、Linux マシンを使用してオフライン評価を行う必要があります。収集されたデータファイルを Linux マシン(管理コンソール)に移動する必要があります。

次のステップ