Mobility Service 설치 자동화
주의
이 문서는 EOL(수명 종료) 상태인 Linux 배포판인 CentOS를 참조합니다. 이에 따라 사용 및 플랜을 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조하세요.
이 문서에서는 Azure Site Recovery에서 Mobility Service 에이전트의 설치 및 업데이트를 자동화하는 방법을 설명합니다.
온-프레미스 VMware VM과 물리적 서버의 재해 복구를 위해 Azure에 Site Recovery를 배포할 때 복제하려는 각 머신에 Mobility Service 에이전트를 설치합니다. Mobility Service는 머신에 기록된 데이터를 캡처하여 복제를 위해 이를 Site Recovery 프로세스 서버에 전달합니다. 다음과 같은 몇 가지 방법으로 Mobility Service를 배포할 수 있습니다.
- 강제 설치: Azure Portal에서 머신에 대한 복제를 사용하도록 설정하는 경우 Site Recovery가 Mobility Service 에이전트를 설치하도록 합니다.
- 수동 설치: 각 머신에 Mobility Service를 수동으로 설치합니다. 강제 설치와 수동 설치에 대해 자세히 알아보세요.
- 자동 배포: Microsoft Configuration Manager와 같은 소프트웨어 배포 도구 또는 JetPatch와 같은 타사 도구를 사용하여 설치를 자동화합니다. 자세한 정보
자동 설치 및 업데이트는 다음과 같은 경우 솔루션이 될 수 있습니다.
- 조직에서 보호된 서버에 강제 설치를 허용하지 않는 경우
- 회사 정책에 따라 암호를 주기적으로 변경해야 하는 경우. 강제 설치에 암호를 지정해야 합니다.
- 보안 정책이 특정 머신에 대한 방화벽 예외 추가를 허용하지 않는 경우
- 호스팅 서비스 공급자 역할을 하는데 Site Recovery를 사용하여 강제 설치에 필요한 고객 머신 자격 증명을 제공하지 않으려는 경우
- 에이전트 설치를 많은 서버로 동시에 스케일링해야 하는 경우
- 계획된 유지 관리 기간에 설치 및 업그레이드를 예약하려는 경우
필수 조건
설치를 자동화하려면 다음 항목이 필요합니다.
- Configuration Manager 또는 JetPatch 등과 같은 배포된 소프트웨어 설치 솔루션
- VMware 재해 복구 또는 물리적 서버 재해 복구를 위해 Azure와 온-프레미스에 마련된 배포 필수 구성 요소. 재해 복구를 위한 지원 요구 사항을 검토하세요.
자동화된 배포 준비
다음 표에는 Mobility Service 배포 자동화를 위한 도구 및 프로세스가 요약되어 있습니다.
도구 | 세부 정보 | 지침 |
---|---|---|
구성 관리자 | 1. 위에 나열된 필수 구성 요소가 마련되어 있는지 확인합니다. 2. OVF 템플릿을 사용하여 Site Recovery 구성 서버를 VMware VM으로 배포하기 위해 OVA 파일을 다운로드하는 등 원본 환경을 설정하여 재해 복구를 배포합니다. 3. 구성 서버를 Site Recovery 서비스에 등록하고, 대상 Azure 환경을 설정하고, 복제 정책을 구성합니다. 4. 자동화된 Mobility Service 배포의 경우 구성 서버 암호 및 Mobility Service 설치 파일이 포함된 네트워크 공유를 만듭니다. 5. 설치 또는 업데이트를 포함하는 Configuration Manager 패키지를 만들고 Mobility Service 배포를 준비합니다. 6. Mobility Service가 설치된 머신에 대해 Azure로의 복제를 사용하도록 설정할 수 있습니다. |
Configuration Manager로 자동화 |
JetPatch | 1. 위에 나열된 필수 구성 요소가 마련되어 있는지 확인합니다. 2. OVF 템플릿을 사용하여 Site Recovery 환경에서 Azure Site Recovery를 위한 JetPatch Agent Manager를 다운로드하여 배포하는 등 원본 환경을 설정하여 재해 복구를 배포할 수 있습니다. 3. 구성 서버를 Site Recovery에 등록하고, 대상 Azure 환경을 설정하고, 복제 정책을 구성합니다. 4. 자동화된 배포의 경우 JetPatch Agent Manager 구성을 초기화하고 완료합니다. 5. JetPatch에서 Mobility Service 에이전트의 배포 및 업그레이드를 자동화하는 Site Recovery 정책을 만들 수 있습니다. 6. Mobility Service가 설치된 머신에 대해 Azure로의 복제를 사용하도록 설정할 수 있습니다. |
JetPatch Agent Manager로 자동화 JetPatch에서 에이전트 설치 문제 해결 |
Configuration Manager로 자동화
설치 파일 준비
다음 필수 구성 요소가 마련되어 있는지 확인합니다.
구성 서버를 실행 중인 머신에서 액세스할 수 있는 보안 네트워크 파일 공유(SMB 공유)를 만듭니다.
Configuration Manager에서 Mobility Service를 설치하거나 업데이트하려는 서버를 범주화합니다. 한 컬렉션에는 모든 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 주소의 실제 값으로 바꿉니다. - 스크립트는 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
패키지 만들기
Configuration Manager 콘솔에 로그인하고 소프트웨어 라이브러리>애플리케이션 관리>패키지로 이동합니다.
패키지>패키지 만들기를 마우스 오른쪽 단추로 클릭합니다.
이름, 설명, 제조업체, 언어, 버전 등 패키지 세부 정보를 제공합니다.
이 패키지는 원본 파일을 포함함을 선택합니다.
찾아보기를 클릭하고 관련 설치 프로그램(MobSvcWindows 또는 MobSvcLinux)을 포함하는 네트워크 공유 및 폴더를 선택합니다. 그런 후에 다음을 선택합니다.
만들려는 프로그램 유형 선택 페이지에서 표준 프로그램>다음을 클릭합니다.
이 표준 프로그램에 대한 정보 지정 페이지에서 다음 값을 지정합니다.
매개 변수 Windows 값 Linux 값 이름 Microsoft Azure Mobility Service(Windows) 설치 Microsoft Azure Mobility Service(Linux) 설치 명령줄 install.bat ./install_linux.sh 프로그램을 실행할 수 있는 조건 사용자 로그온 여부 사용자 로그온 여부 기타 매개 변수 기본 설정 사용 기본 설정 사용 이 표준 프로그램의 요구 사항 지정에서 다음 작업을 수행합니다.
- Windows 머신의 경우 지정된 플랫폼에서만 이 프로그램 실행을 선택합니다. 그런 다음 지원되는 Windows 운영 체제를 선택하고 다음을 선택합니다.
- Linux 머신의 경우 모든 플랫폼에서 이 프로그램 실행을 선택합니다. 그런 후 다음을 선택합니다.
마법사를 마칩니다.
패키지 배포
Configuration Manager 콘솔에서 패키지를 마우스 오른쪽 단추로 클릭하고 콘텐츠 배포를 선택합니다.
패키지를 복사할 위치에 배포 지점을 선택합니다. 자세히 알아보기.
마법사를 완료합니다. 그러면 패키지가 지정된 배포 지점에 복제를 시작합니다.
패키지 배포를 마친 후 패키지 >배포를 마우스 오른쪽 단추로 클릭합니다.
이전에 만든 Windows 또는 Linux 디바이스 컬렉션을 선택합니다.
콘텐츠 대상 지정 페이지에서 배포 지점을 선택합니다.
이 소프트웨어의 배포 방법을 제어하는 설정 지정 페이지에서 용도를 필수로 설정합니다.
이 배포의 일정 지정에서 일정을 설정합니다. 자세히 알아보기.
- Mobility Service는 지정한 일정에 따라 설치됩니다.
- 불필요한 재부팅을 방지하려면 매월 유지 관리 시간 또는 소프트웨어 업데이트 시간에 패키지 설치를 예약합니다.
배포 지점 페이지에서 설정을 구성하고 마법사를 완료합니다.
Configuration Manager 콘솔에서 배포 진행률을 모니터링합니다. 모니터링>배포><패키지 이름>으로 이동합니다.
Mobility Service 제거
Mobility Service를 제거하기 위한 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에 대해 복제 활성화