Avamar — FLR — Linux skrypty FLR wget kończą się niepowodzeniem, gdy serwer proxy HTTP jest skonfigurowany w maszynie wirtualnej.

Summary: Avamar — FLR — nie udało się przywrócić plików za pośrednictwem sieci z powodu korzystania przez docelową maszynę wirtualną z systemem Linux z wewnętrznym internetowym serwerem proxy dla ruchu "wget" ...

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

W dzienniku przywracania FLR Avamar widzimy następujące informacje: 
avvmwfile Error <0000>: Failed to restore files via network, check proxy log for details
avvmwfile Error <0000>: assist_restore error. ret: 157
W dziennikach flr serwera proxy Avamar:   /usr/local/avamaravamarclient/logs/VmwareFlr.log widzimy, że automatycznie wygenerowany skrypt flr "flrTBow8V" jest wykonywany w systemie operacyjnym gościa maszyn wirtualnych.   Jednak skrypt się nie powiódł (uwaga: tylko kod zakończenia 0 oznacza powodzenie, każda inna liczba jest kodem błędu) Kod zakończenia niepowodzenia w tym dzienniku to 8. 
ExecuteProgram failed. script text:/bin/bash /root/flrTBow8V, Return: 0, script return code: 8
FLRBase:: ScriptUploadAndExecute failed

W dzienniku skryptu FLR Avamar widzimy następujący plik /usr/local/avamaravamarclient/logs/flrTBow8V.err 
<DATE>  https://Avamar-proxy-IP/download/<uuid>
Resolving internetproxy.example.com (internetproxy.example.com)... 10.2.3.4 
Connecting to internetproxy.example.com (internetproxy.example.com )|10.2.3.4|:3128... connected.

WARNING: cannot verify 10.1.4.50's certificate, issued by ‘/C=US/ST=California/L=Irvine/O=Dell Technologies/OU=Dell EMC/CN=Administrator’:
  Self-signed certificate encountered.
    WARNING: certificate common name ‘Administrator’ doesn't match requested host name ‘10.1.4.50’.Proxy request sent, awaiting response...
  HTTP/1.1 500 Failed to exec CGI
  Connection: close
  X-Frame-Options: SAMEORIGIN
  X-Content-Type-Options: nosniff
  Strict-Transport-Security: max-age=31536000;includeSubDomains
  X-XSS-Protection: 1; mode=block
  Cache-Control: must-revalidate,no-cache,no-store
  Content-Type: text/html;charset=iso-8859-1
  Content-Length: 368
  Server: Jetty(9.4.19.v20190610)
<DATE> ERROR 500: Failed to exec CGI.

ecode: "8"

Cause

Jest to problem środowiskowy wywołany przez niestandardową konfigurację systemu Linux. 

W pliku wyjściowym skryptu flr (flrTBow8V.err) widzimy, że ruch przepływa przez internetowy serwer proxy http klienta internetproxy.example.com

Problem: Ze względów bezpieczeństwa tylko docelowa maszyna wirtualna może pobierać pliki dla tego konkretnego zadania/skryptu FLR.  

Serwer proxy protokołu HTTP powoduje, że przychodzący adres IP NIE jest zgodny z adresem IP docelowej maszyny wirtualnej i wyzwala kod stanu HTTP 500.   


Konfiguracja:  
  W systemie operacyjnym gościa maszyny wirtualnej plik konfiguracyjny wget ( ~/.wgetrc lub /usr/local/etc/wgetrc) ma skonfigurowany serwer proxy HTTP.    

https_proxy  =  http://internetproxy.example.com:3128
 

Resolution

Rozwiązanie: 

Aby rozwiązać ten problem, musimy upewnić się, że skrypt FLR NIE korzysta z serwera proxy http, zmieniając szablon specyfikacji skryptu wget.  

     

Kroki:
1. Za pomocą protokołu SSH połącz się z serwerem proxy
avamar 2. Edytuj skrypt szablonu wget w następującej lokalizacji: 
/usr/local/avamarclient/bin/wget_linux_script.template
3.  Dodaj polecenie wget "--no-proxy"

Przykład konfiguracji przed zmianą:
#!/bin/bash
logfile=$0.err
url=https://%s/download
token=%s
files=(%s)
exit_code=0
for file in "${files[@]}";do
        IFS='","' read filepath dest  <<< "$file"
        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
        let exit_code=$exit_code+$?
        if Avamar_PlaceHolderFile=$filepath; then
           rm -f "$dest/$filepath"
        fi
done
# delete it self after finish execution
rm -f "$0"
echo "ecode: \"$exit_code\"" >> $logfile
exit $exit_code

Przykład konfiguracji PO zmianie:
#!/bin/bash
logfile=$0.err
url=https://%s/download
token=%s
files=(%s)
exit_code=0
for file in "${files[@]}";do
        IFS='","' read filepath dest  <<< "$file"
        wget "$url/$filepath" -N --no-proxy -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
        let exit_code=$exit_code+$?
        if Avamar_PlaceHolderFile=$filepath; then
           rm -f "$dest/$filepath"
        fi
done
# delete it self after finish execution
rm -f "$0"
echo "ecode: \"$exit_code\"" >> $logfile
exit $exit_code
4. Uruchom ponownie usługę internetową vmwareflr na serwerze proxy.   (lub ponownie uruchom serwer proxy)
192proxy:~ #  systemctl restart vmwareflr.service

Affected Products

Avamar

Products

Avamar Client for VMware
Article Properties
Article Number: 000183577
Article Type: Solution
Last Modified: 05 Sept 2021
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.