Как установить клиент NetBackup с помощью AccentOS Firstboot?

В данной документации описана работа со скриптом, осуществляющим установку NetBackup из предоставляемого архива клиента. Архив представлен в формате tar.gz.

Основные исходные данные при работе скрипта:

  • мастер-сервер NetBackup;
  • список медиа-серверов NetBackup;
  • возможность внесения альтернативного доменного имени хоста, на котором устанавливается клиент NetBackup.

Описание работы скрипта

В основу работы скрипта положен шаблон для программного обеспечения expect с возможными вопросами в диалоге инсталлятора клиента NetBackup. Скрипт в настоящий момент использует текущее доменное имя хоста. Для внесения альтернативных имен необходимо дополнить скрипт алгоритмом получения или формирования альтернативного доменного имени на основе списка, базы данных или резолвинга IP-адреса через обращение к альтернативному DNS-серверу.

Скрипт для своей работы использует переменные окружения:

  • NETBACKUP_CLIENT_URL - размещение архива с инсталлятором клиента NetBackup;
  • NETBACKUP_TOKEN - токен для авторизации на мастер-сервере NetBackup;
  • NETBACKUP_MASTER_SERVER - имя или IP-адрес мастер-сервера NetBackup;
  • NETBACKUP_MEDIA_SERVER0 - NETBACKUP_MEDIA_SERVER1000 - нумерованный список медиа серверов NetBackup.

Указанные переменные должны передаваться через переменные окружения AccentOS Firstboot или могут быть раскомментированы в заголовке скрипта для проведения отладки установки клиента NetBackup на уже установленном хосте.

Инструкция по установке NetBackup 8.x на CentOS Linux

Перед установкой системы необходимо убедиться в наличии прямых и обратных DNS-записей целевого клиента (<domain>-<name>.<domain>.prod1).

  1. Скачать пакет установки:

    wget http://1.1.1.1/Netbackup8/NetBackup_8.1.1/Netbackup_8.1.1_Debian_Client.tar.gz
    wget http://1.1.1.1/NetBackup_8.1.1_Debian_client.tar.gz
    
  2. Распаковать архив командой:

    tar -zxvf Netbackup_8.1.1_Debian_client.tar.gz
    
  3. Перейти в каталог Netbackup_8.1.1_Debian_Client:

    cd Netbackup_8.1.1_Debian_Client
    
  4. Запустить скрипт установки клиента:

    ./install
    
  5. Далее необходимо ответить на ряд вопросов и заполнить конфигурационные параметры:

    Do you wish to continue? [y,n] (y) y
    Do you want to install the NetBackup client software for this client? [y,n] (y) y
    Enter the name of the NetBackup master server : otdel1-nbcmst.otdel1.prod1
    Would you like to use "Client_Hostname" as the configured
    name of the NetBackup client? [y,n] (y) n
    

    Здесь нам необходимо внести полное доменное имя (FQDN) для клиента:

    Enter the name of this NetBackup client : <domain>-<name>.<domain>.prod1
    Is this correct? [y,n] y
    Enter the authorization token for <domain>-nbcmst.<domain>.prod1 or q to skip:
    Ввод токена : HKEATDIICMRYHJWU
    

Скрипт

Пример скрипта:

#!/bin/bash

#export NETBACKUP_CLIENT_URL=http://$COBBLER_HOST/netbackup/NetBackup_8.1.1_Debian_client.tar.gz
#export NETBACKUP_TOKEN=HKEATDIICMRYHJWU
#export NETBACKUP_MASTER_SERVER=otdel1-nbcmst.otdel1.prod1
#export NETBACKUP_MEDIA_SERVER0=otdel1-nbmedia-01.otdel1.prod1
#export NETBACKUP_MEDIA_SERVER1=otdel1-nbmedia-02.otdel1.prod1
#export NETBACKUP_MEDIA_SERVER2=otdel1-nbmedia-03.otdel1.prod1
#export NETBACKUP_MEDIA_SERVER3=otdel1-nbmedia-04.otdel1.prod1
hostname=$(hostname)


echo "#!/usr/bin/expect -f
set timeout -1
set master_server [lindex \$argv 0]
set authorization_token [lindex \$argv 0]
set hostname [lindex \$argv 2]
set license_key [lindex \$argv 3]
log_file /tmp/nbexpect.log
spawn ./install
expect {
    \"Do you wish to continue\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Do you want to reinstall NetBackup and Media Manager\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Do you want to install the NetBackup client software for this client\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Is this correct\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Would you like to use\" {
        sleep 1
        send \"n\\n\"
        exp_continue
        }
    \"Enter the name of this NetBackup client\" {
        sleep 1
        send \"\$hostname\\n\"
        exp_continue
        }
    \"Do you still want to terminate all processes\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Do you want this script to attempt to kill them\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"with the current active NetBackup license key\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Do you want to add additional license keys now\" {
        sleep 1
        send \"n\\n\"
        exp_continue
        }
    \"Is this host the master server\" {
        sleep 1
        send \"n\\n\"
        exp_continue
          }
      \"NetBackup server name of this machine\" {
          sleep 1
          send \"y\\n\"
          exp_continue
        }
    \"What is the fully qualified name of the master server\" {
        sleep 1
        send \"\$master_server\\n\"
        exp_continue
        }
    \"Enter the name of the NetBackup master server\" {
        sleep 1
        send \"\$master_server\\n\"
        exp_continue
        }
    \"Do you want to install NetBackup and Media Manager files\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Do you want to upgrade NetBackup and Media Manager\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Java GUI and JRE option\" {
        sleep 1
        send \"2\\n\"
        exp_continue
        }
    \"Enter the authorization token\" {
        sleep 1
        send \"\$authorization_token\\n\"
        exp_continue
        }
    \"Would you like to try again using a different authorization token\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    \"Enter license key\" {
        sleep 1
        send \"\$license_key\\n\"
        exp_continue
        }
    \"That file can be deleted after you are sure the install was successful\" {
        sleep 1
        exp_close
        }
    \" Q to quit, or X to skip this question:\" {
        sleep 1
        send \"X\\n\"
        exp_continue
        }
    \"Do you wish to proceed with installation even though NetBackup will not operate\" {
        sleep 1
        send \"y\\n\"
        exp_continue
        }
    }

" > /tmp/nb.expect



mkdir -pv /tmp/firstboot_netbackup
wget -q -O /tmp/firstboot_netbackup/NetBackup_client.tar.gz $NETBACKUP_CLIENT_URL
PWD=$(pwd)
cd /tmp/firstboot_netbackup
tar -xf NetBackup_client.tar.gz
rm -f NetBackup_client.tar.gz
DIR=$(ls)
cd $DIR
echo expect /tmp/nb.expect $NETBACKUP_MASTER_SERVER $NETBACKUP_TOKEN $hostname
expect /tmp/nb.expect $NETBACKUP_MASTER_SERVER $NETBACKUP_TOKEN $hostname
cd $PWD

i=0
media_count=0
while [ "$i" -le "1000" ]
do
    echo "export NETBACKUP_MEDIA_SERVER=\$NETBACKUP_MEDIA_SERVER$i" > /tmp/install_media_list
    source /tmp/install_media_list
    if [ ! -z $NETBACKUP_MEDIA_SERVER ]; then
        echo "MEDIA_SERVER = $NETBACKUP_MEDIA_SERVER" >> /usr/openv/netbackup/bp.conf
      fi
    let i=$i+1
done