Приложение J. Использование скрипта начальной установки для Dr.Web Enterprise Agent

Сценарий процесса начальной установки Агентов на станции с использованием сетевого инсталлятора (drwinst.exe) задается файлом install.script. Данные файлы располагаются в корневом каталоге продуктов в репозитории. В стандартной поставке они имеются в каталогах 10-drwupgrade и 20-drwagntd и описывают инсталляцию по умолчанию.

При наличии в каталоге файла .custom.install.script, используется именно он вместо стандартного сценария.

 

Файлы с любыми другими именами, начинающимися с точки, не обновляются при обновлениях продукта и не влияют на работу репозитория.

 

Последовательность действий при начальной установке:

1.Сетевой инсталлятор запрашивает с Сервера установку платформ: win-setup, common, win, win-nt и win-9x –– это список стандартных платформ в порядке по умолчанию. Порядок использования платформ может быть изменен при помощи ключа -platforms=p1,p2,p3... при вызове drwinst. Платформа win-setup не входит в стандартную поставку и предназначена для создания, при необходимости, собственных сценариев установки.

2.Сервер формирует по списку платформ список файлов, последовательно просматривая все продукты в алфавитном порядке и списки файлов, заданные конструкциями files{ } для данной платформы в сценарии установки install.script (см. ниже). Параллельно строится суммарный скрипт на основе конструкций scripts{ }.

3.Сервер получает общий список файлов и суммарный скрипт.

4.Сервер отсылает файлы и скрипт, который будет выполнен сетевым инсталлятором.

Теперь рассмотрим сам install.script на примере каталога 20-drwagntd.

; master part of installation: Agent & its stuff.

; drwscr.dll goes with upgrader, so unlisted here.

 

platform{  ; win - for all Windows OS

          ; `name: XXX' MUST go first!

 

  name: win  ; (mandatory stanza)

             ; this platform name

 

             ; include, scripts{ }, files{ }

             ; can go in any order

 

  scripts {  ; (optional)

             ; script being merged with all others

win.inst.rexx ; and executed after transfer all

             ; files for all platforms requested

             ; by installer

             ; Windows installer request order:

             ; - win-setup (optional! for

             ;              customization)

             ;   - common

             ;   - win

             ;   - win-nt OR win-9x

        }

 

  files {    ; (optional)

             ; this platform files being

             ; transfered to installer

         win/uninstall.rexx

         win/drwinst.exe

         win/drwagntd.exe

         win/drwagnui.exe

         win/drwhard.dll

       }

}

 

platform {    ; win-9x - for Windows 95-ME

  name: win-9x

  scripts{ win-9x.inst.rexx }

}

 

platform {    ; win-nt - for Windows NT-2003

  name: win-nt

  scripts{ win-nt.inst.rexx }

}

 

platform{     ; common - for any OS including UNICES

   name: common

   scripts { common.inst.rexx }

}

 

; include file.name ; (optional)

    ; this stanza tells to include other file.

    ; including file will be searched in the

    ; same directory where current file are

    ; located if `file.name' does not include

    ; directory specificator

Скрипт представляет собой список конструкций platform{ } и позволяет с помощью конструкции include подключать определения из других файлов (include допустимо только на верхнем уровне и недопустимо внутри platform{ }). Если file.name в include не содержит пути, а только имя файла, то он ищется в том же каталоге, что и текущий.

Наличие собственных конструкций include в подключаемых файлах допустимо.

Описание платформы начинается с конструкции name: XXX. Далее следует пара списков files{ } и scripts{ }. Порядок появления этих списков не важен; списки могут содержать любое число элементов. Порядок элементов в списке важен, поскольку определяет порядок передачи файлов на станцию и конструкцию формируемого скрипта.

Порядок появления конструкций platform{ } также не важен.

Ниже перечислены переменные скриптов инсталляции (значения этим переменным могут быть присвоены из командной строки сетевого инсталлятора) и их значения по умолчанию:

spider.install   = 'yes'

spiderml.install = 'yes'

scanner.install  = 'yes'

install.home — каталог установки

agent.logfile = install.home'\logs\drwagntd.log'

agent.loglevel = 'trace'

agent.logrotate = '10,10m'

agent.servers = install.servers

agent.serverkey = install.home'\drwcsd.pub'

agent.compression = 'possible'

agent.encryption = 'yes'

agent.findretry = '3'

agent.findtimeout = '5'

agent.spiderstatistics = '30'

agent.importantmsg = '2'

agent.discovery = 'udp/:2193'

agent.startmsg = '2' (или agent.startmsg = 'NONE')

Параметр agent.importantmsg определяет, отображать ли пользователю сообщение об ошибке обновления, необходимости перезагрузки и т. д. 0 — не выводить сообщение, 1 — показывать всплывающее информационное сообщение.

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

1.Создайте в 20-drwagntd файл .win-setup.inst.rexx и запишите в него:

spider.install = 'no'

agent.loglevel = 'all'

2.Создайте в 20-drwagntd файл .custom.install.script и запишите в него

include install.script

 

platform{

 name: win-setup

 scripts{ .win-setup.inst.rexx }

}

3.Перегрузите Сервер или дайте сигнал перезагрузить репозиторий:

для OC UNIX: kill -USR1 cat `drwcsd.pid`

для ОС Windows: drwcsd.exe rerepository