Avamar - FLR - Linux Скрипти FLR wget виходять з ладу при налаштуванні HTTP проксі на віртуальній машині.

Summary: Avamar - FLR - Не вдалося відновити файли через мережу через кінцеву віртуальну машину Linux, яка використовує внутрішній інтернет-проксі для "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

У журналі відновлення Avamar FLR ми бачимо наступне: 
avvmwfile Error <0000>: Failed to restore files via network, check proxy log for details
avvmwfile Error <0000>: assist_restore error. ret: 157
На проксі flr логах Avamar:   /usr/local/avamaramarclient/logs/VmwareFlr.log ми бачимо, що автоматично згенерований скрипт flr "flrTBow8V" виконується в гостьовій операційній системі віртуальних машин.   Однак скрипт не був успішним ( Примітка: лише код виходу 0 вкаже на успіх, будь-яке інше число є кодом збою) Код виходу з помилки в цьому журналі був 8. 
ExecuteProgram failed. script text:/bin/bash /root/flrTBow8V, Return: 0, script return code: 8
FLRBase:: ScriptUploadAndExecute failed

У журналі скриптів Avamar FLR ми бачимо наступне /usr/local/avamaramarclient/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

Це проблема з навколишнім середовищем, спричинена нестандартною конфігурацією Linux. 

У вихідному файлі flr script ( flrTBow8V.err ) ми можемо бачити, що трафік протікає через інтернет-проксі клієнта http internetproxy.example.com

Проблема: З міркувань безпеки лише цільовій віртуальній машині дозволено завантажувати файли для цього конкретного завдання/скрипту FLR.  

HTTP PROXY призводить до того, що вхідна IP-адреса НЕ збігається з IP-адресою цільової віртуальної машини та викликає код статусу HTTP 500.   


Конфігурації:  
  У гостьовій операційній системі віртуальної машини у файлі конфігурації wget ( ~/.wgetrc або /usr/local/etc/wgetrc) налаштовано проксі-сервер HTTP.    

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

Resolution

Резолюція: 

Щоб вирішити цю проблему, нам потрібно переконатися, що скрипт FLR НЕ використовує проксі-сервер http, змінивши шаблон специфікації wget script.  

     

Кроки:
1. SSH у проксі
avamar 2. Відредагуйте скрипт шаблону wget в наступному місці: 
/usr/local/avamarclient/bin/wget_linux_script.template
3.  Додайте перемикач команд wget "--no-proxy"

Приклад конфігурації перед зміною:
#!/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

Приклад конфігурації ПІСЛЯ зміни:
#!/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. Перезапустіть веб-сервіс vmwareflr на проксі.   ( або перезавантажити проксі)
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.