モビリティ サービスのインストールを自動化する

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

この記事では、Azure Site Recoveryで Mobility Service エージェントのインストールと更新を自動化する方法について説明します。

オンプレミスの VMware VM と物理サーバーのディザスター リカバリーのために Site Recovery を Azure に展開する場合、複製する各マシンに Mobility Service エージェントをインストールします。 モビリティサービスは、マシン上のデータ書き込みをキャプチャし、複製のために Site Recovery プロセスサーバーに転送します。 Mobility Service はいくつかの方法で展開できます。

  • プッシュ インストール: Azure portal でマシンのレプリケーションを有効にするときに、Site Recovery に Mobility Service エージェントをインストールさせます。
  • 手動インストール:各マシンにモビリティ サービスを手動でインストールします。 プッシュ インストールと手動インストールの詳細情報を参照してください。
  • 自動デプロイ: Microsoft Configuration Manager などのソフトウェア デプロイ ツールや、JetPatch などのサード パーティ ツールで、インストールを自動化します。 詳細情報

インストールと更新を自動化することで、以下の場合の解決策が得られます。

  • 組織で、保護されたサーバーへのプッシュ インストールが許可されない。
  • 会社のポリシーで、パスワードを定期的に変更することが求められている。 プッシュ インストール用のパスワードを指定する必要がある。
  • セキュリティ ポリシーで、特定のマシンにファイアウォール例外を追加することが許可されていない。
  • ホスティング サービス プロバイダーとしてサービスを提供しており、Site Recovery を使用したプッシュ インストールに必要な顧客のマシン資格情報を提供したくない。
  • エージェントのインストールを多数のサーバーに同時にスケーリングする必要があります。
  • 計画メンテナンスの期間中にインストールとアップグレードをスケジュールしたい。

前提条件

インストールを自動化するには、次のアイテムが必要です。

自動デプロイを準備する

次の表に、Mobility Service のデプロイを自動化するためのツールとプロセスをまとめます。

ツール 詳細 手順
構成マネージャー 1.上記の前提条件が満たされていることを確認します。

2.ソース環境をセットアップ (OVF テンプレートを使用して Site Recovery 構成サーバーを VMware VM としてデプロイするための OVA ファイルのダウンロードなど) して、ディザスター リカバリーをデプロイします。

3.構成サーバーを Site Recovery サービスに登録し、ターゲット Azure 環境を設定して、レプリケーション ポリシーを構成します。

4.モビリティサービスの自動デプロイでは、構成サーバーのパスフレーズとモビリティサービスのインストールファイルを含むネットワーク共有を作成します。

5.インストールまたは更新を含む Configuration Manager パッケージを作成し、Mobility サービスのデプロイの準備を行います。

6.その後、Mobility Service がインストールされているマシンの Azure へのレプリケーションを有効にできます。
Configuration Manager で自動化
JetPatch 1.上記の前提条件が満たされていることを確認します。

2.ソース環境をセットアップ (OVF テンプレートを使用して Azure Site Recovery 用の JetPatch Agent Manager を Site Recovery 環境にダウンロードしてデプロイするなど) して、ディザスター リカバリーをデプロイします。

3.構成サーバーを Site Recovery に登録し、ターゲット Azure 環境を設定して、レプリケーション ポリシーを構成します。

4.自動デプロイのために、JetPatch Agent Manager の構成を初期化して完了します。

5.JetPatch では、サイト回復ポリシーを作成して、Mobility サービスエージェントのデプロイとアップグレードを自動化できます。

6.その後、Mobility Service がインストールされているマシンの Azure へのレプリケーションを有効にできます。
JetPatch Agent Manager による自動化

JetPatch でのエージェントインストールのトラブルシューティング

Configuration Manager を使用して自動化する

インストール ファイルを準備する

  1. 前提条件を満たしていることを確認します。

  2. 構成サーバーを実行しているマシンからアクセスできる、セキュリティで保護されたネットワーク ファイル共有 (SMB 共有) を作成します。

  3. Configuration Manager で、モビリティサービスをインストールまたは更新するサーバーをカテゴリー化します。 1 つのコレクションにはすべての Windows サーバが含まれ、もう 1 つのコレクションにはすべての Linux サーバが含まれます。

  4. ネットワーク共有で、次のフォルダーを作成します。

    • Windows マシンにインストールする場合は、MobSvcWindows という名前のフォルダーを作成してください。
    • Linux マシンにインストールする場合は、MobSvcLinux という名前のフォルダーを作成します。
  5. 構成サーバー マシンにサインインします。

  6. 構成サーバーマシンで、管理コマンド プロンプトを開きます。

  7. パスフレーズファイルを生成するには、次のコマンドを実行します。

    cd %ProgramData%\ASR\home\svsystems\bin
    genpassphrase.exe -v > MobSvc.passphrase
    
  8. MobSvc をコピーします。パスフレーズ ファイルをWindows フォルダと Linux フォルダにコピーします。

  9. インストールファイルを含むフォルダを参照するには、次のコマンドを実行します。

    cd %ProgramData%\ASR\home\svsystems\pushinstallsvc\repository
    
  10. これらのインストール ファイルをネットワーク共有にコピーします。

    • Windows の場合、 Microsoft-ASR_UA_version_Windows_GA_date_Release.exeMobSvcWindows にコピーします。
    • Linux の場合、次のファイルを MobSvcLinux にコピーします。
      • Microsoft-ASR_UARHEL6-64release.tar.gz
      • Microsoft-ASR_UARHEL7-64release.tar.gz
      • Microsoft-ASR_UASLES11-SP3-64release.tar.gz
      • Microsoft-ASR_UASLES11-SP4-64release.tar.gz
      • Microsoft-ASR_UAOL6-64release.tar.gz
      • Microsoft-ASR_UAUBUNTU-14.04-64release.tar.gz
  11. 次の手順で説明するように、コードを Windows または Linux フォルダーにコピーします。 次のことが前提となっています。

    • 構成サーバーの IP アドレスは192.168.3.121です。
    • 安全なネットワークファイル共有は\\ContosoSecureFS\MobilityServiceInstallersです。

Windows フォルダーにコードをコピーする

次のコードをコピーします。

  • MobSvcWindows フォルダーにコードを install.bat として保存します。
  • このスクリプトの[CSIP]プレースホルダーを、構成サーバーのIPアドレスの実際の値に置き換えます。
  • このスクリプトは、Mobility Service エージェントの新規インストールと、すでにインストールされているエージェントの更新をサポートしています。
Time /t >> C:\Temp\logfile.log
REM ==================================================
REM ==== Clean up the folders ========================
RMDIR /S /q %temp%\MobSvc
MKDIR %Temp%\MobSvc
MKDIR C:\Temp
REM ==================================================

REM ==== Copy new files ==============================
COPY M*.* %Temp%\MobSvc
CD %Temp%\MobSvc
REN Micro*.exe MobSvcInstaller.exe
REM ==================================================

REM ==== Extract the installer =======================
MobSvcInstaller.exe /q /x:%Temp%\MobSvc\Extracted
REM ==== Wait 10s for extraction to complete =========
TIMEOUT /t 10
REM =================================================

REM ==== Perform installation =======================
REM =================================================

CD %Temp%\MobSvc\Extracted
whoami >> C:\Temp\logfile.log
SET PRODKEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
REG QUERY %PRODKEY%\{275197FC-14FD-4560-A5EB-38217F80CBD1}
IF NOT %ERRORLEVEL% EQU 0 (
	echo "Product is not installed. Goto INSTALL." >> C:\Temp\logfile.log
	GOTO :INSTALL
) ELSE (
	echo "Product is installed." >> C:\Temp\logfile.log

	echo "Checking for Post-install action status." >> C:\Temp\logfile.log
	GOTO :POSTINSTALLCHECK
)

:POSTINSTALLCHECK
	REG QUERY "HKLM\SOFTWARE\Wow6432Node\InMage Systems\Installed Products\5" /v "PostInstallActions" | Find "Succeeded"
	If %ERRORLEVEL% EQU 0 (
		echo "Post-install actions succeeded. Checking for Configuration status." >> C:\Temp\logfile.log
		GOTO :CONFIGURATIONCHECK
	) ELSE (
		echo "Post-install actions didn't succeed. Goto INSTALL." >> C:\Temp\logfile.log
		GOTO :INSTALL
	)

:CONFIGURATIONCHECK
	REG QUERY "HKLM\SOFTWARE\Wow6432Node\InMage Systems\Installed Products\5" /v "AgentConfigurationStatus" | Find "Succeeded"
	If %ERRORLEVEL% EQU 0 (
		echo "Configuration has succeeded. Goto UPGRADE." >> C:\Temp\logfile.log
		GOTO :UPGRADE
	) ELSE (
		echo "Configuration didn't succeed. Goto CONFIGURE." >> C:\Temp\logfile.log
		GOTO :CONFIGURE
	)


:INSTALL
	echo "Perform installation." >> C:\Temp\logfile.log
	UnifiedAgent.exe /Role MS /InstallLocation "C:\Program Files (x86)\Microsoft Azure Site Recovery" /Platform "VmWare" /Silent
	IF %ERRORLEVEL% EQU 0 (
	    echo "Installation has succeeded." >> C:\Temp\logfile.log
		(GOTO :CONFIGURE)
    ) ELSE (
		echo "Installation has failed." >> C:\Temp\logfile.log
		GOTO :ENDSCRIPT
	)

:CONFIGURE
	echo "Perform configuration." >> C:\Temp\logfile.log
	cd "C:\Program Files (x86)\Microsoft Azure Site Recovery\agent"
	UnifiedAgentConfigurator.exe  /CSEndPoint "[CSIP]" /PassphraseFilePath %Temp%\MobSvc\MobSvc.passphrase
	IF %ERRORLEVEL% EQU 0 (
	    echo "Configuration has succeeded." >> C:\Temp\logfile.log
    ) ELSE (
		echo "Configuration has failed." >> C:\Temp\logfile.log
	)
	GOTO :ENDSCRIPT

:UPGRADE
	echo "Perform upgrade." >> C:\Temp\logfile.log
	UnifiedAgent.exe /Platform "VmWare" /Silent
	IF %ERRORLEVEL% EQU 0 (
	    echo "Upgrade has succeeded." >> C:\Temp\logfile.log
    ) ELSE (
		echo "Upgrade has failed." >> C:\Temp\logfile.log
	)
	GOTO :ENDSCRIPT

:ENDSCRIPT
	echo "End of script." >> C:\Temp\logfile.log

Linux フォルダーにコードをコピーする

次のコードをコピーします。

  • MobSvcLinux フォルダーにコードを install_linux.sh として保存します。
  • このスクリプトの[CSIP]プレースホルダーを、構成サーバーのIPアドレスの実際の値に置き換えます。
  • このスクリプトは、Mobility Service エージェントの新規インストールと、すでにインストールされているエージェントの更新をサポートしています。
#!/usr/bin/env bash

rm -rf /tmp/MobSvc
mkdir -p /tmp/MobSvc
INSTALL_DIR='/usr/local/ASR'
VX_VERSION_FILE='/usr/local/.vx_version'

echo "=============================" >> /tmp/MobSvc/sccm.log
echo `date` >> /tmp/MobSvc/sccm.log
echo "=============================" >> /tmp/MobSvc/sccm.log

if [ -f /etc/oracle-release ] && [ -f /etc/redhat-release ]; then
    if grep -q 'Oracle Linux Server release 6.*' /etc/oracle-release; then
        if uname -a | grep -q x86_64; then
            OS="OL6-64"
            echo $OS >> /tmp/MobSvc/sccm.log
            cp *OL6*.tar.gz /tmp/MobSvc
        fi
    fi
elif [ -f /etc/redhat-release ]; then
    if grep -q 'Red Hat Enterprise Linux Server release 6.* (Santiago)' /etc/redhat-release || \
        grep -q 'CentOS Linux release 6.* (Final)' /etc/redhat-release || \
        grep -q 'CentOS release 6.* (Final)' /etc/redhat-release; then
        if uname -a | grep -q x86_64; then
            OS="RHEL6-64"
            echo $OS >> /tmp/MobSvc/sccm.log
            cp *RHEL6*.tar.gz /tmp/MobSvc
        fi
    elif grep -q 'Red Hat Enterprise Linux Server release 7.* (Maipo)' /etc/redhat-release || \
        grep -q 'CentOS Linux release 7.* (Core)' /etc/redhat-release; then
        if uname -a | grep -q x86_64; then
            OS="RHEL7-64"
            echo $OS >> /tmp/MobSvc/sccm.log
            cp *RHEL7*.tar.gz /tmp/MobSvc
                fi
    fi
elif [ -f /etc/SuSE-release ] && grep -q 'VERSION = 11' /etc/SuSE-release; then
    if grep -q "SUSE Linux Enterprise Server 11" /etc/SuSE-release && grep -q 'PATCHLEVEL = 3' /etc/SuSE-release; then
        if uname -a | grep -q x86_64; then
            OS="SLES11-SP3-64"
            echo $OS >> /tmp/MobSvc/sccm.log
            cp *SLES11-SP3*.tar.gz /tmp/MobSvc
        fi
    elif grep -q "SUSE Linux Enterprise Server 11" /etc/SuSE-release && grep -q 'PATCHLEVEL = 4' /etc/SuSE-release; then
        if uname -a | grep -q x86_64; then
            OS="SLES11-SP4-64"
            echo $OS >> /tmp/MobSvc/sccm.log
            cp *SLES11-SP4*.tar.gz /tmp/MobSvc
        fi
    fi
elif [ -f /etc/lsb-release ] ; then
    if grep -q 'DISTRIB_RELEASE=14.04' /etc/lsb-release ; then
       if uname -a | grep -q x86_64; then
           OS="UBUNTU-14.04-64"
           echo $OS >> /tmp/MobSvc/sccm.log
           cp *UBUNTU-14*.tar.gz /tmp/MobSvc
       fi
    fi
else
    exit 1
fi

if [ -z "$OS" ]; then
    exit 1
fi

Install()
{
    echo "Perform Installation." >> /tmp/MobSvc/sccm.log
    ./install -q -d ${INSTALL_DIR} -r Agent -v VmWare
    RET_VAL=$?
    echo "Installation Returncode: $RET_VAL" >> /tmp/MobSvc/sccm.log
    if [ $RET_VAL -eq 0 ]; then
        echo "Installation has succeeded. Proceed to configuration." >> /tmp/MobSvc/sccm.log
        Configure
    else
        echo "Installation has failed." >> /tmp/MobSvc/sccm.log
        exit $RET_VAL
    fi
}

Configure()
{
    echo "Perform configuration." >> /tmp/MobSvc/sccm.log
    ${INSTALL_DIR}/Vx/bin/UnifiedAgentConfigurator.sh -i [CSIP] -P MobSvc.passphrase
    RET_VAL=$?
    echo "Configuration Returncode: $RET_VAL" >> /tmp/MobSvc/sccm.log
    if [ $RET_VAL -eq 0 ]; then
        echo "Configuration has succeeded." >> /tmp/MobSvc/sccm.log
    else
        echo "Configuration has failed." >> /tmp/MobSvc/sccm.log
        exit $RET_VAL
    fi
}

Upgrade()
{
    echo "Perform Upgrade." >> /tmp/MobSvc/sccm.log
    ./install -q -v VmWare
    RET_VAL=$?
    echo "Upgrade Returncode: $RET_VAL" >> /tmp/MobSvc/sccm.log
    if [ $RET_VAL -eq 0 ]; then
        echo "Upgrade has succeeded." >> /tmp/MobSvc/sccm.log
    else
        echo "Upgrade has failed." >> /tmp/MobSvc/sccm.log
        exit $RET_VAL
    fi
}

cp MobSvc.passphrase /tmp/MobSvc
cd /tmp/MobSvc

tar -zxvf *.tar.gz

if [ -e ${VX_VERSION_FILE} ]; then
    echo "${VX_VERSION_FILE} exists. Checking for configuration status." >> /tmp/MobSvc/sccm.log
    agent_configuration=$(grep ^AGENT_CONFIGURATION_STATUS "${VX_VERSION_FILE}" | cut -d"=" -f2 | tr -d " ")
    echo "agent_configuration=$agent_configuration" >> /tmp/MobSvc/sccm.log
     if [ "$agent_configuration" == "Succeeded" ]; then
        echo "Agent is already configured. Proceed to Upgrade." >> /tmp/MobSvc/sccm.log
        Upgrade
    else
        echo "Agent is not configured. Proceed to Configure." >> /tmp/MobSvc/sccm.log
        Configure
    fi
else
    Install
fi

cd /tmp

パッケージを作成する

  1. Configuration Manager コンソールにサインインし、ソフトウェアライブラリ>アプリケーション管理>パッケージに移動します。

  2. [パッケージ] を右クリックして [パッケージの作成] に進みます。

  3. 名前、説明、製造元、言語、バージョンなど、パッケージの詳細を指定します。

  4. [このパッケージはソース ファイルを含む] を選択します。

  5. 参照をクリックし、関連するインストーラー( MobSvcWindows または MobSvcLinux)を含むネットワーク共有とフォルダーを選択します。 次に、 [次へ] を選択します。

    パッケージとプログラムの作成ウィザードのスクリーンショット

  6. [作成するプログラムの種類の選択] ページで、 [標準プログラム]>[次へ] を選択します。

    [標準プログラム] オプションを示すパッケージとプログラムの作成ウィザードのスクリーンショット。

  7. [この標準プログラムに関する情報の指定] ページで、次の値を指定します。

    パラメーター Windows の値 Linux の値
    名前 Microsoft Azure Mobility Service のインストール (Windows) Microsoft Azure Mobility Service のインストール (Linux)。
    コマンド ライン install.bat ./install_linux.sh
    プログラムの実行条件 ユーザーがログオンしているかどうか ユーザーがログオンしているかどうか
    その他のパラメーター 既定の設定を使用する 既定の設定を使用する

    標準プログラムに指定できる情報を示すスクリーンショット。

  8. この標準プログラムの要件を指定で、次のタスクを実行します。

    • Windows マシンの場合は、 [指定したプラットフォームだけで実行可能] を選択します。 次に、サポートされているWindowsオペレーティングシステムを選択し、次へを選択します。
    • Linux マシンでは、 [任意のプラットフォームで実行可能] を選択します。 [次へ] を選択します。
  9. ウィザードを終了します。

パッケージをデプロイする

  1. Configuration Manager コンソールで、パッケージを右クリックし、コンテンツの配布を選択します。

    Configuration Manager コンソールのスクリーンショット

  2. パッケージのコピー先とする配布ポイントを選択します。 詳細については、こちらを参照してください

  3. ウィザードを完了します。 指定した配布ポイントへのパッケージのレプリケートが開始されます。

  4. パッケージの配布が完了したら、パッケージを右クリックし >[展開] に進みます。

    [展開] メニュー オプションを表示する Configuration Manager コンソールのスクリーンショット。

  5. 以前に作成した Windows または Linux デバイスのコレクションを選択します。

  6. [コンテンツの配布先の指定] ページで [配布ポイント] を選択します。

  7. [このソフトウェアの展開を制御する設定の指定] ページで、 [目的][必須] に設定します。

    ソフトウェアの展開ウィザードのスクリーンショット

  8. [この展開のスケジュールを指定します] でスケジュールを設定します。 詳細については、こちらを参照してください

    • モビリティサービスは、指定したスケジュールに従ってインストールされます。
    • 不要な再起動を避けるためには、月次のメンテナンス期間中またはソフトウェアの更新期間中にパッケージのインストールをスケジュールします。
  9. [配布ポイント] ページで、設定を構成し、ウィザードを完了します。

  10. Configuration Manager コンソールでデプロイの進行状況を監視します。 監視>展開><パッケージ名> に移動します。

モビリティサービスをアンインストールする

Configuration Manager パッケージを作成して、Mobility Service をアンインストールできます。 たとえば、次のスクリプトはモビリティサービスをアンインストールします。

Time /t >> C:\logfile.log
REM ==================================================
REM ==== Check if Mob Svc is already installed =======
REM ==== If not installed no operation required ========
REM ==== Else run uninstall command =====================
REM ==== {275197FC-14FD-4560-A5EB-38217F80CBD1} is ====
REM ==== guid for Mob Svc Installer ====================
whoami >> C:\logfile.log
NET START | FIND "InMage Scout Application Service"
IF  %ERRORLEVEL% EQU 1 (GOTO :INSTALL) ELSE GOTO :UNINSTALL
:NOOPERATION
                echo "No Operation Required." >> c:\logfile.log
                GOTO :ENDSCRIPT
:UNINSTALL
                echo "Uninstall" >> C:\logfile.log
                MsiExec.exe /qn /x {275197FC-14FD-4560-A5EB-38217F80CBD1} /L+*V "C:\ProgramData\ASRSetupLogs\UnifiedAgentMSIUninstall.log"
:ENDSCRIPT

次のステップ

VM のレプリケーションを有効にします