Share via


自動化行動服務安裝

警告

本文參考 CentOS,這是接近結束生命週期 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引

本文說明如何在 Azure Site Recovery中將行動服務代理程式的安裝和更新自動化。

當您將內部部署 VMware VM 和實體伺服器的災害復原 Site Recovery 部署至 Azure 時,您會在要複寫的每台機器上安裝行動服務代理程式。 行動服務會擷取機器上的資料寫入,然後將其轉送至 Site Recovery 處理序伺服器以供複寫。 您可以透過幾種方式來部署行動服務:

  • 推送安裝:當您在 Azure 入口網站中為機器啟用複寫時,讓 Site Recovery 安裝行動服務代理程式。
  • 手動安裝:在每台機器上手動安裝行動服務。 深入瞭解推送與手動安裝。
  • 自動化部署:使用軟體部署工具 (例如 Microsoft Configuration Manager) 或協力廠商工具 (例如 JetPatch) 來自動化安裝。 深入了解

如果有下列情況,自動安裝和更新會提供解決方案:

  • 您的組織不允許在受保護的伺服器上進行推送安裝。
  • 您的公司原則需要定期變更密碼。 您必須指定推送安裝的密碼。
  • 您的安全性原則不允許新增特定機器的防火牆例外。
  • 您是主機服務提供者,且不想要提供使用 Site Recovery 進行推送安裝所需的客戶機器認證。
  • 您需要將代理程式安裝同時調整為許多伺服器。
  • 您想要在規劃的維護期間排程安裝和升級。

必要條件

若要自動化安裝,您需要下列項目:

為自動化部署做好準備

下表摘要說明自動化行動服務部署的工具和流程。

工具 詳細資料 指示
組態管理員 1.確認您已備妥上方列出的必要條件

2.設定來源環境以部署災害復原,包括下載 OVA 檔案,以使用 OVF 範本將 Site Recovery 組態伺服器部署為 VMware VM。

3.向 Site Recovery 服務註冊組態伺服器、設定目標 Azure 環境,以及設定複寫原則。

4.針對自動化行動服務部署,您可以建立包含組態伺服器複雜密碼和行動服務安裝檔案的網路共用。

5.建立包含安裝或更新的 Configuration Manager 套件,並為行動服務部署做好準備。

6.接著您可以針對已安裝行動服務的機器啟用複寫至 Azure。
使用 Configuration Manager 進行自動化
JetPatch 1.確認您已備妥上方列出的必要條件

2.設定來源環境以部署災害復原,包括使用 OVF 範本下載和部署 Site Recovery 環境中適用於 Azure Site Recovery 的 JetPatch 代理程式管理員。

3.向 Site Recovery 註冊組態伺服器、設定目標 Azure 環境,以及設定複寫原則。

4.針對自動化部署,請初始化並完成 JetPatch 代理程式管理員設定。

5.在 JetPatch 將中,您可以建立 Site Recovery 原則,將行動服務代理程式的部署和升級自動化。

6.接著您可以針對已安裝行動服務的機器啟用複寫至 Azure。
使用 JetPatch 代理程式管理員進行自動化

疑難排解 JetPatch 中的代理程式安裝失敗

使用 Configuration Manager 進行自動化

準備安裝檔案

  1. 確認您已備妥這些必要條件。

  2. 建立執行組態伺服器機器可存取的安全網路檔案共用 (SMB 共用)。

  3. 在 Configuration Manager 中,將您想要安裝或更新行動服務的伺服器分類。 一個集合應該包含所有的 Windows 伺服器,以及其他所有的 Linux 伺服器。

  4. 在網路共用上建立資料夾:

    • 若要在 Windows 機器上安裝,請建立名為 MobSvcWindows 的資料夾。
    • 若要在 Linux 機器上安裝,請建立名為 MobSvcLinux 的資料夾。
  5. 登入設定伺服器電腦。

  6. 在組態伺服器機器上,開啟系統管理命令提示字元。

  7. 若要產生複雜密碼檔案,請執行下列命令:

    cd %ProgramData%\ASR\home\svsystems\bin
    genpassphrase.exe -v > MobSvc.passphrase
    
  8. 將 MobSvc.passphrase 檔案複製到 Windows 資料夾和 Linux 資料夾。

  9. 若要瀏覽至包含安裝檔案的資料夾,請執行下列命令:

    cd %ProgramData%\ASR\home\svsystems\pushinstallsvc\repository
    
  10. 將這些安裝檔案複製到網路共用:

    • 針對 Windows,請將 Microsoft-ASR_UA_version_Windows_GA_date_Release.exe 複製到MobSvcWindows
    • 針對 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 位址的實際值。
  • 指令碼支援全新安裝行動服務代理程式,以及升級至已安裝的代理程式。
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 位址的實際值。
  • 指令碼支援全新安裝行動服務代理程式,以及升級至已安裝的代理程式。
#!/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 行動服務 (Windows) 安裝 Microsoft Azure 行動服務 (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 套件,將行動服務解除安裝。 例如,下列程式碼會解除安裝行動服務:

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 複寫