自動化行動服務安裝
警告
本文會參考 CentOS,這是生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指導。
本文說明如何在 Azure Site Recovery中將行動服務代理程式的安裝和更新自動化。
當您將內部部署 VMware VM 和實體伺服器的災害復原 Site Recovery 部署至 Azure 時,您會在要複寫的每台機器上安裝行動服務代理程式。 行動服務會擷取機器上的資料寫入,然後將其轉送至 Site Recovery 處理序伺服器以供複寫。 您可以透過幾種方式來部署行動服務:
- 推送安裝:當您在 Azure 入口網站中為機器啟用複寫時,讓 Site Recovery 安裝行動服務代理程式。
- 手動安裝:在每台機器上手動安裝行動服務。 深入瞭解推送與手動安裝。
- 自動化部署:使用軟體部署工具 (例如 Microsoft Configuration Manager) 或協力廠商工具 (例如 JetPatch) 來自動化安裝。 深入了解
如果有下列情況,自動安裝和更新會提供解決方案:
- 您的組織不允許在受保護的伺服器上進行推送安裝。
- 您的公司原則需要定期變更密碼。 您必須指定推送安裝的密碼。
- 您的安全性原則不允許新增特定機器的防火牆例外。
- 您是主機服務提供者,且不想要提供使用 Site Recovery 進行推送安裝所需的客戶機器認證。
- 您需要將代理程式安裝同時調整為許多伺服器。
- 您想要在規劃的維護期間排程安裝和升級。
必要條件
若要自動化安裝,您需要下列項目:
- 已部署的軟體安裝解決方案,例如 Configuration Manager 或 JetPatch。
- Azure 和內部部署中適用於 VMware 災害復原或實體伺服器災害復原的部署必要條件。 請參閱災害復原的支援需求。
為自動化部署做好準備
下表摘要說明自動化行動服務部署的工具和流程。
工具 | 詳細資料 | 指示 |
---|---|---|
組態管理員 | 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 進行自動化
準備安裝檔案
確認您已備妥這些必要條件。
建立執行組態伺服器機器可存取的安全網路檔案共用 (SMB 共用)。
在 Configuration Manager 中,將您想要安裝或更新行動服務的伺服器分類。 一個集合應該包含所有的 Windows 伺服器,以及其他所有的 Linux 伺服器。
在網路共用上建立資料夾:
- 若要在 Windows 機器上安裝,請建立名為 MobSvcWindows 的資料夾。
- 若要在 Linux 機器上安裝,請建立名為 MobSvcLinux 的資料夾。
登入設定伺服器電腦。
在組態伺服器機器上,開啟系統管理命令提示字元。
若要產生複雜密碼檔案,請執行下列命令:
cd %ProgramData%\ASR\home\svsystems\bin genpassphrase.exe -v > MobSvc.passphrase
將 MobSvc.passphrase 檔案複製到 Windows 資料夾和 Linux 資料夾。
若要瀏覽至包含安裝檔案的資料夾,請執行下列命令:
cd %ProgramData%\ASR\home\svsystems\pushinstallsvc\repository
將這些安裝檔案複製到網路共用:
- 針對 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
如下列程序所述,將程式碼複製到 Windows 或 Linux 資料夾。 我們是假設:
- 組態伺服器的 IP 位址為
192.168.3.121
。 - 安全網路檔案共用為
\\ContosoSecureFS\MobilityServiceInstallers
。
- 組態伺服器的 IP 位址為
將程式碼複製到 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
建立套件
登入 Configuration Manager 主控台並移至 [軟體程式庫 > 應用程式管理 > 套件]。
以滑鼠右鍵按一下 [套件 > 建立套件]。
提供套件詳細資料,包括名稱、描述、製造商、語言和版本。
選取 [此套件包含來源檔案]。
按一下 [瀏覽],然後選取包含相關安裝程式 (MobSvcWindows 或 MobSvcLinux) 的網路共用和資料夾。 然後選取下一步。
在 [選擇您要建立的程式類型] 頁面上,選取 [標準程式 > 下一步]。
在 [指定此標準程式的相關資訊] 頁面中,指定下列值:
參數 Windows 值 Linux 值 名稱 安裝 Microsoft Azure 行動服務 (Windows) 安裝 Microsoft Azure 行動服務 (Linux)。 命令列 install.bat ./install_linux.sh 程式可以執行 無論使用者是否登入 無論使用者是否登入 其他參數 使用預設設定 使用預設設定 在 [指定此標準程式的需求] 中,執行下列工作:
完成精靈。
部署套件
在 Configuration Manager 主控台,以滑鼠右鍵按一下套件,然後選取 [發佈內容]。
選取應將套件複製到其中的發佈點。 深入了解。
完成精靈。 套件便會開始複寫至指定的發佈點。
套件發佈完成後,以滑鼠右鍵按一下 [套件 部署]>。
選取您先前建立的 Windows 或 Linux 裝置集合。
在 [指定內容目的地] 頁面上,選取 [發佈點]。
在 [指定控制此軟體部署方式的設定] 頁面上,將 [目的] 設定為 [必要]。
在 [指定此部署的排程] 中設定排程。 深入了解。
- 行動服務會根據您指定的排程安裝。
- 為了避免不必要的重新開機,請排定在每月維護期間或軟體更新期間安裝套件。
在 [發佈點] 頁面上,進行設定並完成精靈。
在 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