Avamar: Så här utför du en Linux VMware återställning på filnivå utan att använda root user med sudo
Summary: Avamar FLR Sudo
Symptoms
Bakgrundsinformation om Avamar FLR:
Avamar File Level Restore (återställning på filnivå) är en agentlös återställningslösning som kan användas för att återställa en eller flera gästfiler från en säkerhetskopieringsbild av en virtuell maskin. Den mekanism som används för att möjliggöra återställning på filnivå är VMware-verktyg och vSphere-API:et guest.operation.functions. Säkerhetskopieringsbilden av den virtuella maskinen monterar den virtuella disken (.vmdk) på Avamar-proxyn under bläddringen. När filer har valts för återställning överförs kopierade filer från proxyn till den virtuella målmaskinen.
Obligatoriska krav för FLR:
- Den virtuella målmaskinen måste vara igång.
- Den virtuella målmaskinen måste ha VMware-verktygen installerade och tjänsten måste vara aktiv under återställningen.
- Avamar-administratören eller Avamar-användaren för säkerhetskopiering/återställning måste ha giltiga gästinloggningsuppgifter på målet (krav i VMware gäståtgärds-SDK), och dessa uppgifter måste anges när återställningen på filnivå ska påbörjas.
- Gästanvändaren på måldatorn måste ha behörighet att skriva till platsen, annars misslyckas åtgärden. För virtuella maskiner med Windows måste användaren på den virtuella maskin som ska återställas även ha behörighet att skriva utan UAC-förhöjning. För virtuella maskiner med Linux måste den maskin som ska återställas kunna skriva utan sudo.
- Virtuella målmaskiner måste ha TCP 443-åtkomst till de virtuella proxy-maskinerna.
- För virtuella maskiner med Linux måste ett modernt wget-program vara installerat innan återställningen kan utföras.
Om den virtuella målmaskinen inte kan upprätta en HTTPS-anslutning till proxyn:
På proxyn: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see wget non zero exit code
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398040: sGuestExeFullFilename = /usr/bin/wget --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398041: sUnicodeExeDir = /usr/bin
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398042: sExeFullPath = /usr/bin/wget
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398043: sParameters = --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - FUNC] 2020/02/24 15:56:2 TID=3662 MID=254389: VirtualMachineWs::CheckProcessStatus ENTER
[VWS - DEBUG] 2020/02/24 15:56:2 TID=3662 MID=254390: ullPid = 3053
[VWS - WARN] 2020/02/24 15:56:2 TID=140664473914958 MID=254428: CheckProcessStatus Succeeded
[VWS - DEBUG] 2020/02/24 15:56:2 TID=3662 MID=254441: StartProgramInGuest Succeeded. Ret: 4
Linux utan wget:
På proxyn: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see:
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398040: sGuestExeFullFilename = /usr/bin/wget --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398041: sUnicodeExeDir = /usr/bin
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398042: sExeFullPath = /usr/bin/wget
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398043: sParameters = --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - ERROR] 2020/02/24 15:56:20 TID=140363826202979 MID=398068: StartProgramInGuest Error: SOAP 1.1 fault: "":ServerFaultCode [no subcode]
"File /usr/bin/wget was not found"
Detail: <FileNotFoundFault xmlns="urn:vim25" xsi:type="FileNotFound"><file>/usr/bin/wget</file></FileNotFoundFault>
[VWS - DEBUG] 2020/02/24 15:34:22 TID=2397 MID=395783: StartProgramInGuest Succeeded. Ret: 1
Tillvalsfunktion för FLR: Återställ åtkomstkontrollistan (ACL)
Den här funktionen är inte aktiverad som standard.
Resultat:
Utan ACL-funktionen (standard):
Alla återställda filer från FLR-funktionen ägs av de gästinloggningsuppgifter på den virtuella datorn som angavs under FLR-åtgärderna, och tidigare filbehörigheter anges inte.
Med ACL-funktionen aktiverad:
Om användaren vill att de återställda filerna ska ha det ägarskap och den behörighet som de ursprungligen hade, måste de aktivera den här valfria funktionen.
Resultat:
Under återställningen skapas nya filer som FLR VM-användare, men i slutet av återställningen körs ACL-arbetsflödet. Då återställs ägarskap och filbehörighet till de ursprungliga inställningarna.
På proxyn: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see:
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254066: VirtualMachineWs::ExecuteRestoreAcl ENTER
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254067: VirtualMachineWs::ExecuteRestoreAcl RestoreAcl Input file created
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254068: VirtualMachineWs::ExecuteRestoreAcl Input File transfer /usr/local/avamarclient/bin/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml to /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml
[VWS - FUNC] 2020/03/03 03:42:32 TID=140664473914958 MID=254140: VirtualMachineWs::ExecuteRestoreAcl Exe File transfer /usr/local/avamarclient/bin/RestoreAcl to /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.exe
[VWS - DEBUG] 2020/03/03 03:42:40 TID=3662 MID=254349: sGuestExeFullFilename = /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.exe /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml 0001
[VWS - FUNC] 2020/03/03 03:42:42 TID=3662 MID=254389: VirtualMachineWs::CheckProcessStatus ENTER
[VWS - DEBUG] 2020/03/03 03:42:42 TID=3662 MID=254390: ullPid = 3053
[VWS - WARN] 2020/03/03 03:42:47 TID=140664473914958 MID=254428: CheckProcessStatus Succeeded
[VWS - DEBUG] 2020/03/03 03:42:47 TID=3662 MID=254441: StartProgramInGuest Succeeded. Ret: 0
[VWS - FUNC] 2020/03/03 03:42:47 TID=140664473914958 MID=254519: VirtualMachineWs::ExecuteRestoreAcl LEAVE
Cause
VMware-verktyg och VMware SDK gör dock att de flesta åtgärder (VM_LoginInGuest, CopyFileFromHostToGuest och ListFilesInGuest) inte kan köra kommandot sudo.
När återställningsåtgärder utförs med en vanlig användare kan åtgärden misslyckas på grund av otillräckliga gästbehörigheter på målet.
Resolution
Alternativ 1. Återställ till en annan plats som icke-root-användare.
Exempel:
Källfil: /root/test (begränsad mapp/fil)
Målfil: /home/flruser/ (ej begränsad plats)
Skapa VM-gäst: "flruser"
Resultat:
Vid FLR-bläddring monteras de virtuella diskarna till Avamar-proxyn och visas i användargränssnittet. Detta omfattar alla mappar och filer. Gå till /root-mappen och välj file1.txt. Välj sedan återställ allt till en annan plats och gå till eller ange /home/flruser/ som absolutionsmål.
Resultat:
Filen root/test återställs till /home/flruser/test
Observera att filen får FLR-gästanvändarbehörighet.
Alternativ 2 Återställ till en alternativ plats med alternativet Återställ ACL med hjälp av sudo-funktionen.
I Avamar 18.2 installerar du proxy-korrigeringen 318791 (eller senare)
I Avamar 19.2 installerar du proxy-korrigeringen 318791 (eller senare)
De här korrigeringarna lägger till en ny ”enablesudouserrestore”-funktion som är inaktiverad som standard.
Instruktion för att aktivera sudo-funktionen:
På en Avamar-proxy:
- Installera ovanstående korrigering på proxyn
- Redigera /usr/local/avamarclient/bin/config.xml, lägg till/redigera raden (<enablesudouserrestore>1</enablesudouserrestore>) i filen
- Starta om FLR med kommandot: service vmwareflr restart
- Skapa dedikerad FLR-användare: example flruser. För ytterligare säkerhet kan skalet inaktiveras för det här kontot
- Kopiera/usr/local/avamarclient/bin/RestoreAcl binary från Avamar-proxyn till den virtuella måldatorn med hjälp av den fasta platsen /usr/bin/RestoreACL och ange behörigheten till 755 med chmod
- Ändra /etc/sudoers för att tillåta FLR-användare från steg 1 att köra RestoreACL binary utan lösenord.
Obs! Om inställningen sudoers requiretty har aktiverats (raden ”Defaults requiretty” finns i filen) behövs även denna rad.
Alternativ 3 Återställ till ursprunglig plats med metoden sudo wget med ACL.
Obs!
- Det här alternativet är endast tillgängligt om ett HTTPS-nätverksalternativ finns och om >5 MB eller 10 filer har valts för återställningsalternativet.
- Om du använder Avamar-gränssnittet för att bläddra igenom aktiva VM-målplatser med begränsade mappar kan detta misslyckas, men det ska fortfarande fungera att uttryckligen ange ”Absolution Destination”.
- Utför stegen i Alternativ 2 på proxyn för att aktivera ACL-återställning.
- På Avamar-proxyn redigerar du /usr/local/avamarclient/bin/wget_linux_script.template
Efter:
- Starta om FLR med kommandot: service vmwareflr restart
- På varje virtuell maskin med Linux där FLR-återställning till ursprunglig plats ska användas ändrar du /etc/sudoers så att FLR-användaren från steg 1 kan utföra wget binary utan lösenord.