Avamar: Op Linux een VMware-FLR uitvoeren zonder rootgebruiker met behulp van sudo

Summary: Sudo voor Avamar FLR

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



Achtergrondinformatie over Avamar FLR:
Avamar File Level Restore is een agentloze hersteloplossing die kan worden gebruikt om een of meerdere gastbestanden te herstellen van een VM-image-back-up. Het mechanisme dat wordt gebruikt om FLR te faciliteren is gebaseerd op VMware Tools- en vSphere-API-gastbewerkingsfuncties. De back-up van de VM-image koppelt de virtuele schijf (.vmdk) aan de Avamar proxy tijdens het bladeren. Nadat bestanden zijn geselecteerd voor herstel, worden ze gekopieerd als overdrachtsbestand van de proxy naar de doel-VM.

Verplichte vereisten voor FLR:
  1. De doel-VM moet zijn ingeschakeld.
  2. Op de doel-VM moet VMware Tools zijn geïnstalleerd en de service moet actief zijn tijdens de herstelbewerkingen. 
  3. De Avamar administrator of Avamar back-up-/herstelbewerking/gebruiker moet geldige gastreferenties hebben voor het betreffende doel (vereiste van VMware SDK voor gastbewerkingen) en deze referenties moeten worden ingevoerd bij het begin van de FLR-bewerkingen.
  4. De doel-gastgebruiker moet bevoegdheden hebben om schrijfbewerkingen op de locatie uit te voeren, anders mislukt de bewerking. Voor Windows-VM"s moet de herstel-VM-gebruiker tevens machtigingen hebben om te kunnen schrijven zonder verhoogde UAC-bevoegdheden, voor Linux-VM"s moet de herstel-VM in staat zijn te schrijven zonder sudo. 
Optionele vereisten voor FLR: Vereist voor snellere HTTPS-overdrachtsmethode. 
  1. Doel-VM"s moeten TCP 443-toegang hebben tot de proxy-VM"s.
  2. Voor Linux-VM"s moet een moderne wget-applicatie zijn geïnstalleerd op de VM voordat de herstelbewerking wordt uitgevoerd.  
Als er niet aan de operationele vereisten wordt voldaan, worden de volgende waarschuwingen weergegeven voordat een taak wordt ingediend:

Als de doel-VM geen HTTPS-verbinding met de proxy kan maken:

kA23a000000GIVvCAO_3_0

Op de proxy: /usr/local/avamarclient/bin/logs/VSphereWebService.log, zie wget-exitcode van niet-nul

[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

Of

Linux zonder wget:

kA23a000000GIVvCAO_3_1

Op de proxy: /usr/local/avamarclient/bin/logs/VSphereWebService.log, zie:

[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>

Of

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


Optionele functie FLR: Restore ACL (Access Control List)

Deze functie is standaard niet ingeschakeld.
Resultaat:
Zonder ACL-functie (standaardinstelling):

Alle door de FLR-functie herstelde bestanden zullen het eigendom zijn van de VM-gastreferenties die door de gebruiker zijn ingevoerd tijdens de FLR-bewerkingen; eerdere bestandsmachtigingen worden niet ingesteld.

Met de ACL-functie ingeschakeld:
Als de gebruiker wil dat de herstelde bestanden de oorspronkelijke bestandseigendom en -machtigingen heeft van bij het aanmaken van het bestand, moet deze optionele functie worden ingeschakeld.

kA23a000000GIVvCAO_3_2

Resultaat:
Tijdens de herstelbewerkingen zullen nieuwe bestanden worden aangemaakt als de FLR-VM-gebruikers, maar aan het einde van de herstelbewerkingen wordt de ACL-workflow uitgevoerd en worden het eigenaarschap en de bestandsmachtigingen hersteld naar de oorspronkelijke staat. 


Op de proxy: /usr/local/avamarclient/bin/logs/VSphereWebService.log, zie:

[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

Op sommige Linux-distributies zoals Ubuntu of Photon OS, zijn standaard geen rootgebruikers van het besturingssysteem ingesteld of geconfigureerd. In plaats daarvan gebruiken Linux-administrators de opdracht sudo om bewerkingen met verhoogde bevoegdheid te kunnen uitvoeren.  

Vanwege VMware Tools en VMware SDK, kan met VMware tools voor de meeste bewerkingen (VM_LoginInGuest, CopyFileFromHostToGuest en ListFilesInGuest) de opdracht sudo niet worden uitgevoerd. 

Wanneer herstelbewerkingen worden uitgevoerd door een normale gebruiker, kan de bewerking mislukken vanwege ontoereikende gastmachtigingen voor het betreffende doel.

Resolution

Voor omgevingen waar de Linux-rootgebruiker is uitgeschakeld, niet is geconfigureerd, of omwille van de beveiliging niet kan worden gedeeld, kunt u gebruikmaken van de volgende probleemoplossingsstappen:

Optie 1. Herstellen naar een alternatieve locatie als niet-rootgebruiker. 
Voorbeeld:
Bronbestand:  /root/test  (map/bestand met toegangsbeperkingen)
Doelbestand:  /home/flruser/ (locatie zonder toegangsbeperkingen)
Maken VM-gast:  "flruser"  

Resultaat:
Tijdens het bladeren voor FLR, worden de virtuele schijven gekoppeld aan de Avamar proxy en weergegeven in de gebruikersinterface. Dit omvat alle mappen en bestanden. Blader naar de /root-map en selecteer file1.txt. Kies vervolgens 'restore everything to a different location'en blader naar, of typ /home/flruser/ als de Absolution Destination.

kA23a000000GIVvCAO_2_0

Resultaat:
root/test-bestand wordt hersteld naar /home/flruser/test
Het bestand heeft nu gastgebruikersmachtiging voor FLR. 

Optie 2. Herstellen naar een alternatieve locatie met de optie Restore ACL met behulp van de sudo-functie. 
In Avamar 18.2 installeert u proxy hotfix 318791 (of later)
In Avamar 19.2 installeert u proxy hotfix 318791 (of later)


Deze hotfixes voegen de nieuwe 'enablesudouserrestore'-functie toe die standaard is uitgeschakeld.

Instructies voor het inschakelen van de sudo-functie:
Op een Avamar proxy:
  1. Installeer de bovenstaande hotfix op de proxy
  2. Bewerk /usr/local/avamarclient/bin/config.xml, voeg regel toe aan/ bewerk regel (<enablesudouserrestore>1</enablesudouserrestore>) in het bestand
  3. Start FLR opnieuw met behulp van de opdracht: service vmwareflr restart
Op elke Linux-VM waarop de FLR-functie wordt gebruikt:
  1. Maak een speciale FLR-gebruiker:  bijvoorbeeld flruser.  Voor extra beveiliging kan de shell voor dit account worden uitgeschakeld
  2. Kopieer binair bestand /usr/local/avamarclient/bin/RestoreAcl van de Avamar proxy naar de doel-VM met gebruik van de vaste locatie /usr/bin/RestoreACL en stel de machtiging in op 755 met behulp van chmod
Voorbeeld:
linux-da91:~ # ls -l /usr/bin/RestoreAcl
-rwxr-xr-x 1 root root 148016 Feb 13 17:48 /usr/bin/RestoreAcl
  1. Wijzig /etc/sudoers om de FLR-gebruiker van stap 1 te machtigen om bin/RestoreACL uit te voeren zonder wachtwoord. 
Voorbeeld:
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl

Opmerking: Als de instelling sudoers requiretty is ingeschakeld (en de regel ‘Defaults requiretty' in het bestand aanwezig is), hebben we ook deze regel nodig:  
Defaults!/usr/bin/RestoreAcl !requiretty


Optie 3: Herstellen naar de oorspronkelijke locatie met behulp van de sudo wget-methode met ACL. 

Opmerking: 

  • Deze optie is alleen beschikbaar als er een optionele netwerk-HTTPS beschikbaar is en als de herstelselectie > 5 MB of 10 geselecteerde bestanden is.
  • Het via de Avamar GUI bladeren naar live doel-VM-locaties met maplocaties waarvoor beperkte toegang geldt, kan mislukken. Het expliciet intypen van de locatie in 'Absolution Destination' werkt echter gewoon. 
  1. Voer de stappen van optie 2 uit op de proxy om ACL-herstel in te schakelen.
  2. Bewerk op de Avamar proxy /usr/local/avamarclient/bin/wget_linux_script.template 
Vóó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

Na:
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 opnieuw met behulp van de opdracht: service vmwareflr restart
  2. Op elke Linux-VM die wordt gebruikt voor FLR-herstel naar de oorspronkelijke locatie, moet /etc/sudoers worden gewijzigd zodat de FLR-gebruiker uit stap 1 wordt gemachtigd om het binair bestand wget uit te voeren zonder wachtwoord. 
Voorbeeld:
flruser ALL=(ALL) NOPASSWD: /usr/bin/RestoreAcl
flruser ALL=(ALL) NOPASSWD: /usr/bin/wget
 
Opmerking: Als de instelling sudoers requiretty is ingeschakeld (en de regel 'Defaults requiretty' in het bestand aanwezig is), hebben we ook deze regels nodig:
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.