Avamar: Slik utfører du en Linux VMware-filgjenoppretting uten rotbruker ved hjelp av sudo

Summary: Avamar FLR Sudo

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms



Bakgrunnsinformasjon om Avamar FLR:
Filgjenoppretting fra Avamar er en agentløs gjenopprettingsløsning som kan brukes til å gjenopprette én eller flere gjestefiler fra et sikkerhetskopi-image på en virtuell maskin. Mekanismen som brukes til å forenkle gjenoppretting på filnivå, er VMware-verktøy og vSphere API guest operation-funksjoner. Sikkerhetskopi-imaget på den virtuelle maskinen monterer den virtuelle disken (.vmdk) på Avamar-proxyen mens man blar. Etter at filene er valgt for gjenoppretting, vil de bli kopiert fra proxy til target VM.

Obligatoriske krav for FLR:
  1. Den virtuelle målmaskinen må være slått på.
  2. Den virtuelle målmaskinen må ha VMware-verktøy installert, og tjenesten må kjøre under gjenopprettingsoperasjoner. 
  3. Avamar-administratoren eller Avamar-sikkerhetskopiering / -gjenoppretting / -brukeren må ha gyldig legitimasjon på målgjesten (krav for VMware SDK-gjesteoperasjoner), og denne legitimasjonen må angis i begynnelsen av filgjenopprettingsoperasjonene.
  4. Gjestebrukeren må ha rettigheter til å skrive til plasseringen, ellers vil operasjonen mislykkes. For Windows Virtual Machine må VM-gjenopprettingsbrukeren også ha rettigheter til å skrive uten UAC-utvidelser. For virtuelle Linux-maskiner må restore VM være i stand til å skrive uten sudo. 
Valgfrie krav for FLR: Nødvendig for å få raskere HTTPS-overføringsmetode. 
  1. Virtuelle målmaskiner må ha TCP 443-tilgang til de virtuelle proxy-maskinene.
  2. Når det gjelder virtuelle Linux-maskiner må det være installert en moderne wget-applikasjon inne i den virtuelle maskinen før gjenopprettingsoperasjonen.  
Hvis driftskravene ikke er oppfylt, vil følgende advarsler bli vist før jobben sendes:

Hvis target VM ikke kan opprette en HTTPS-tilkobling til proxy:

kA23a000000GIVvCAO_3_0

Inne i proxyen: /usr/local/avamarclient/bin/logs/VSphereWebService.log, se 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

Eller
  
Linux uten wget:

kA23a000000GIVvCAO_3_1

Inne i proxyen: /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>

Eller

[VWS - DEBUG] 2020/02/24 15:34:22 TID=2397 MID=395783: StartProgramInGuest Succeeded. Ret: 1


Valgfri FLR-funksjon: Gjenopprett tilgangskontrolliste (ACL) 

Denne funksjonen er ikke aktivert som standard.
Resultat:
Uten ACL-funksjon (standard):

Alle gjenopprettede filer fra filgjenopprettingsfunksjonen eies av brukeren med VM-gjest-legitimasjon som ble angitt under FLR-operasjoner, og tidligere filtillatelser vil ikke bli angitt.

Med ACL-funksjonen aktivert:
Hvis brukeren vil at de gjenopprettede filene skal ha det opprinnelige fileierskapet med tilhørende tillatelser, må de aktivere denne valgfrie funksjonen.

kA23a000000GIVvCAO_3_2

Resultat:
Under gjenopprettingsoperasjonene vil nye filer bli opprettet som FLR VM-brukere, men på slutten av en gjenoppretting vil ACL-arbeidsflyten kjøre og sette eierskap og filtillatelser tilbake til opprinnelig status. 


Inne i proxyen: /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

I enkelte Linux-distribusjoner, for eksempel Ubuntu eller Photon OS, er ikke operativsystemets rotbrukere satt opp eller konfigurert som standard. Linux-systemansvarlige er avhengige av sudo-kommandoen for å kjøre rettighetsutvidelser.  

Men på grunn av VMware-verktøy og VMware SDK er det for de fleste operasjoner (VM_LoginInGuest, CopyFileFromHostToGuest og ListFilesInGuest) ikke mulig å utføre en sudo-kommando i VMware-verktøy. 

Det kan være at en vanlig bruker ikke klarer å kjøre gjenopprettingsoperasjoner på grunn av utilstrekkelige målrettigheter for gjestekontoen.

Resolution

I miljøer der Linux-rotbrukeren er deaktivert, ikke konfigurert eller ikke kan deles på grunn av sikkerhetsproblemer, må du vurdere følgende løsning:

Alternativ 1. Gjenopprette til alternativ plassering som ikke-rotbruker. 
Eksempel:
Kildefil:  /root/test  (begrenset mappe/fil)
Målfil:  /home/flruser/(ikke begrenset plassering)
Oppretting av VM-gjest:  "flruser"  

Resultat:
Under FLR-funksjonen monteres de virtuelle diskene til Avamar-proxy og vises i brukergrensesnittet. Dette inkluderer alle mapper og filer. Bla gjennom /root-mappen og velg file1.txt. Deretter velger du restore everything to a different location og blar videre til eller skriver inn /home/flruser/ som Absolution Destination.

kA23a000000GIVvCAO_2_0

Resultat:
root/test-filen vil bli gjenopprettet til /home/flruser/test 
Merk at filen vil ha brukertillatelse for FLR-gjester. 

Alternativ 2. Gjenopprette til alternativ plassering med Restore ACL-alternativet ved hjelp av sudo-funksjonen. 
I Avamar 18.2 installerer du proxy hotfix 318791 (eller nyere)
I Avamar 19.2 installerer du proxy-hotfix 318791 (eller nyere)


Disse hotfixene legger til en ny «enablesudouserrestore»-funksjon som er deaktivert som standard.

Instruksjon for å aktivere sudo-funksjonen:
På en Avamar-proxy:
  1. Installer ovennevnte hotfix på proxyen
  2. Rediger /usr/local/avamarclient/bin/config.xml, legg til / rediger linjen (<enablesudouserrestore>1</enablesudouserrestore>) til filen
  3. Start FLR på nytt ved hjelp av denne kommandoen: service vmwareflr restart
På hver virtuelle Linux-maskin der FLR-funksjonen skal være på:
  1. Opprett dedikert FLR-bruker:  eksempel flruser.  For ekstra sikkerhet kan skall deaktiveres for denne kontoen
  2. Kopier binærfilen /usr/local/avamarclient/bin/RestoreAcl fra Avamar-proxy til target VM ved hjelp av den faste plasseringen /usr/bin/RestoreACL, og angi tillatelse til 755 ved hjelp av chmod
eksempel:
linux-da91:~ # ls -l /usr/bin/RestoreAcl
-rwxr-xr-x 1 root root 148016 Feb 13 17:48 /usr/bin/RestoreAcl
  1. Endre /etc/sudoers slik at FLR-brukeren fra trinn 1 kan kjøre binærfilen RestoreACL uten passord. 
eksempel
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl

Merk: Hvis sudoers requiretty-innstillingen er aktivert (linjen «Defaults requiretty» finnes i filen), trenger vi også denne linjen.  
Defaults!/usr/bin/RestoreAcl !requiretty


Alternativ 3: Gjenopprette den opprinnelige plasseringen ved hjelp av sudo wget-metoden med ACL. 

Merk: 

  • Dette alternativet er bare tilgjengelig når et valgfritt nettverks-HTTPS er tilgjengelig, og når > 5 MB eller 10 filer er valgt for gjenoppretting.
  • Bruk av Avamar-brukergrensesnitt til å bla gjennom live target VM-plasseringer med begrensede mapper kan mislykkes, men skriver du inn «Absolution Destination», kan det fortsatt fungere. 
  1. Utfør trinnene i alternativ 2 på proxy for å aktivere ACL-gjenoppretting.
  2. På Avamar-proxy redigerer du /usr/local/avamarclient/bin/wget_linux_script.template 
Før:
wget "$url/$filepath" -N  -nH -x -P "$dest" --no-check-certificate -S --restrict-file-names=nocontrol  --no-parent --tries 5 --header="Authorization:$token" --cut-dirs=2 --content-disposition 2>>    $logfile

Etter:
sudo wget "$url/$filepath" -N  -nH -x -P "$dest" --no-check-certificate -S --restrict-file-names=nocontrol  --no-parent --tries 5 --header="Authorization:$token" --cut-dirs=2 --content-disposition 2>>    $logfile
  1. Start FLR på nytt ved hjelp av denne kommandoen: service vmwareflr restart
  2. På hver virtuelle Linux-maskin hvor man skal bruke FLR-gjenoppretting til opprinnelig plassering, endrer du /etc/sudoers for at FLR-brukeren fra trinn 1 skal kunne kjøre wget-binærfilen uten passord. 
Eksempel:
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
flruser ALL=(ALL) NOPASSWD: /usr/bin/wget
 
Merk: Hvis sudoers requiretty-innstillingen er aktivert (linjen «Defaults requiretty» finnes i filen), trenger vi også disse linjene:
Defaults!/usr/bin/RestoreAcl !requiretty
Defaults!/usr/bin/wget !requiretty

Affected Products

Avamar

Products

Avamar, Avamar Client for VMware
Article Properties
Article Number: 000081871
Article Type: Solution
Last Modified: 25 Apr 2025
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.