Avamar: Jak provést funkci Linux VMware File Level Restore bez použití uživatele root pomocí příkazu sudo
Summary: Avamar FLR Sudo
Symptoms
Informace o funkci Avamar FLR:
Avamar File Level Restore je řešení k obnovení bez agenta, které lze použít k obnově jednoho nebo více souborů hosta ze zálohy bitové kopie virtuálního počítače. Použitým mechanismem k usnadnění obnovy na úrovni souborů jsou nástroje VMware a funkce operací hosta vSphere API. Záloha bitové kopie virtuálního počítače připojí během procházení virtuální disk (.vmdk) k serveru proxy Avamar. Po výběru souborů k obnově budou ze serveru proxy do cílového virtuálního počítače zkopírovány soubory přenosu.
Povinné požadavky FLR:
- Cílový virtuální počítač musí být zapnutý.
- V cílovém virtuálním počítači musí být nainstalovány nástroje VMware a během operací obnovy musí být spuštěna služba.
- Správce Avamar nebo záloha/uživatel/operace zálohy Avamar musí mít platné přihlašovací údaje pro cílového hosta (požadavek sady SDK operací hosta VMware) a tyto přihlašovací údaje musí být zadány na začátku operací obnovy na úrovni souborů.
- Cílový host musí mít oprávnění k zápisu do umístění, jinak se operace nezdaří. U virtuálního počítače se systémem Windows musí mít uživatel virtuálního počítače pro obnovu také oprávnění k zápisu bez zvýšených oprávnění UAC. U virtuálních počítačů se systémem Linux musí být virtuální počítač pro obnovu schopen zapisovat bez funkce sudo.
- Cílové virtuální počítače musí mít přístup TCP 443 k virtuálním počítačům proxy.
- Ve virtuálních počítačích se systémem Linux musí být před operací obnovení nainstalována moderní aplikace wget.
Pokud cílový virtuální počítač nemůže navázat připojení HTTPS se serverem proxy:
V serveru proxy: /usr/local/avamarclient/bin/logs/VSphereWebService.log, vyhledejte nenulový ukončovací kód wget
[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 bez aplikace wget:
V serveru proxy: /usr/local/avamarclient/bin/logs/VSphereWebService.log, viz:
[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
Volitelná funkce FLR: Seznam řízení přístupů obnovy (ACL)
Ve výchozím nastavení není tato funkce povolena.
Výsledek:
Bez funkce ACL (výchozí):
Všechny obnovené soubory z funkce File Level Restore budou vlastněny uživatelem s přihlašovacími údaji hosta virtuálního počítače, které uživatel zadá během operací FLR, a předchozí oprávnění k souboru nebudou nastavena.
S povolenou funkcí ACL:
Pokud uživatel chce, aby obnovené soubory měly nastaveno vlastnictví a oprávnění původního souboru, je nutné povolit tuto volitelnou funkci.
Výsledek:
Během operací obnovy budou jako uživatelé virtuálního počítače FLR vytvořeny nové soubory, ale na konci obnovy bude spuštěn pracovní postup ACL a vlastnictví a oprávnění k souborům bude nastaveno zpět do původního stavu.
V serveru proxy: /usr/local/avamarclient/bin/logs/VSphereWebService.log, viz:
[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
V nástrojích VMware a sadě VMware SDK však nelze příkaz sudo spustit, takže není možné spustit většinu operací (VM_LoginInGuest, CopyFileFromHostToGuest a ListFilesInGuest).
Když operace obnovy provádí běžný uživatel, může dojít k selhání kvůli nedostatečným oprávněním cílového hosta.
Resolution
1. možnost: Obnovení do alternativního umístění jako jiný uživatel než root.
Příklad:
Zdrojový soubor: /root/test (složka/soubor s omezením)
Cílový soubor: /home/flruser/ (umístění bez omezení)
Vytvoření hosta virtuálního počítače: „flruser“
Výsledek:
Během procházení FLR se virtuální disky připojí k serveru proxy Avamar a zobrazí se v uživatelském rozhraní. To se týká všech složek a souborů. Projděte složku /root, vyberte soubor file1.txt, poté vyberte možnost „restore everything to a different location“ a jako Absolution Destination
vyhledejte nebo zadejte složku /home/flruser/.
Výsledek:
Soubor root/test se obnoví do složky /home/flruser/test.
Poznámka: Soubor bude mít oprávnění hosta FLR.
2. možnost: Obnovení do alternativního umístění pomocí možnosti Restore ACL a funkce sudo.
V nástroji Avamar 18.2 nainstalujte opravu serveru proxy hotfix 318791 (nebo novější).
V nástroji Avamar 19.2 nainstalujte opravu serveru proxy hotfix 318791 (nebo novější).
Tyto opravy hotfix přidávají novou funkci „enablesudouserrestore“, která je ve výchozím nastavení zakázána.
Pokyny k povolení funkce sudo:
V serveru proxy Avamar:
- V serveru proxy nainstalujte výše uvedenou opravu hotfix.
- Upravte soubor /usr/local/avamarclient/bin/config.xml a přidejte/upravte řádek (<enablesudouserrestore>1</enablesudouserrestore>) v souboru.
- Restartujte funkci FLR pomocí příkazu: service vmwareflr restart.
- Vytvořte vyhrazeného uživatele FLR: například „flruser“. Pro zvýšení zabezpečení lze pro tento účet zakázat prostředí shell.
- Zkopírujte binární soubor /usr/local/avamarclient/bin/RestoreAcl ze serveru proxy Avamar do cílového virtuálního počítače pomocí pevného umístění /usr/bin/RestoreACL a nastavte oprávnění na hodnotu 755 pomocí příkazu chmod.
- Upravte soubor /etc/sudoers tak, aby uživatel FLR z kroku 1 mohl pracovat s binárním souborem RestoreACL bez hesla.
Poznámka: Tento řádek potřebujeme také tehdy, pokud je povoleno nastavení „sudoers requiretty“ (v souboru je uveden řádek „Defaults requiretty“).
3. možnost: Obnovení původního umístění pomocí metody sudo wget se seznamem řízení přístupů.
Poznámka:
- Tato možnost je k dispozici pouze tehdy, je-li k dispozici volitelná síť HTTPS a je-li k obnovení vybráno více než 5 Mb nebo 10 souborů.
- Při procházení cílového umístění virtuálních počítačů se složkami s omezením v reálném čase v grafickém uživatelském rozhraní Avamar může dojít k selhání, nicméně stále bude možné explicitně zadávat umístění do části „Absolution Destination“.
- Proveďte v serveru proxy kroky 2. možnost a povolte obnovení ACL.
- V serveru proxy Avamar upravte skript /usr/local/avamarclient/bin/wget_linux_script.template.
Po:
- Restartujte funkci FLR pomocí příkazu: service vmwareflr restart.
- V každém virtuálním počítači se systémem Linux, ve kterém chcete použit funkci FLR k obnovení do původního umístění, upravte soubor /etc/sudoers tak, aby uživatel FLR z kroku 1 mohl pracovat s binárním souborem wget bez hesla.