решил поделится инструкцией, как я сделал локальный сервер репозитория продуктов есет, так как не нашёл ни одной внятной инструкции в интернете, как же это правильно и грамотно сделать, чтоб всё работало, да ещё и под те задачи, которые необходимы мне.
необходимо:
в связи с неустойчивой и низкопропускной способностью каналов интернета в организации, создать локальную базу продуктов и антивирусных баз.
раздавать по сети через вэб сервер.
необходимо только определённые языки.
и так начну по порядку.
под это дело я собрал отдельный компьютер и поставил там вин7. адрес компьютера в сети назначил 192.168.1.20 (потом просто где надо меняете на свой адрес)
на нем же поставил Oracle VM VirtualBox и поставил на него виртуальную машину на базе CentOS с ERA6, установил как службу VirtualBox с автоматическим запуском ERA6. в инете инструкций полно, как это сделать.
на компьютере под это дело установил отдельный жесткий диск на 500 ГБ. и его первое время не хватала под репозиторий (об этом чуть позже).
с веб сервером сильно заморачиваться не стал, скачал сборку Wampserver64 и настроил её на работу в качестве вэб сервера. путь к папке с файлами e:\srv\www\
в ней сделал папку - rep под репозиторий, под антивирусные базы программа сама создаст папку eset_upd и соответствующие подпапки внутри.
ещё один нюанс, с которым я столкнулся и мой путь решения.
интернет у нас мало того, что не скоростной, так ещё и обрывается. а программа при повторном запуске начинает всё сначала, а не продолжает докачивать, что ещё не скачала.
выход нашёл следующий - кэширующий прокси сервер HandyCache - настроил его так, чтоб он скачивал все дистрибутивы себе в папку в виде кэша, а при повторном запросе брал этот фаил не с инета, а из кэша. инструкция что и как есть на сайте программы. некоторые пункты могу прокомментировать, если надо.
теперь переходим непосредственно к созданию зеркала и репозитория.
скачиваем самую последнюю версию программы MirrorTool с национального сервера (на руском сайте антивируса лежит старая версия, не поддерживающая некоторые команды)
[URL=https://download.eset.com/com/eset/apps/business/era/tools/mirror/latest/win32.zip]https://download.eset.com/com/eset/apps/business/era/tools/mirror/latest/win32.zip[/URL]
справка по программе, точнее какие команды она воспринимает:
Скрытый текст |
---|
Allowed options: --mirrorType arg [required for module update] Type of mirror. Possible values (case insensitive): regular, pre-release, delayed. --intermediateUpdateDirectory arg [required for module update] Files will be downloaded to this directory to create mirror in output directory. --offlineLicenseFilename arg [required for module update] Offline license file. --updateServer arg [optional] Upd ate server. (e.g.: [URL=http://update.eset.com/eset_upd/ep6/]http://update.eset.com/eset_upd/ep6/[/URL]) Mirror will be created in output directory, only specified path in server will be mirrored. --outputDirectory arg [required for module update] Directory where mirror will be created. --proxyHost arg [optional] Http proxy address (fqdn or IP). --proxyPort arg [optional] Http proxy port. --proxyUsername arg [optional] Http proxy username. --proxyPassword arg [optional] Http proxy password. --networkDriveUsername arg [optional] Username used, when output directory is accessed using smb(e.g:\\hostname). --networkDrivePassword arg [optional] Password used, when output directory is accessed using smb(e.g:\\hostname). --excludedProducts arg [optional] Disable creating mirror for specified products. Possible values: ep4 ep5 ep6 ep7 era6. --repositoryServer arg [required for repository update] Repository server for repository creation. --intermediateRepositoryDirectory arg [required for repository update] Files will be downloaded to this directory to create offline mirror in output directory. --outputRepositoryDirectory arg [required for repository update] Directory where offline repository will be created. --languageFilterForRepository arg [optional] Download only packages with provided languages. --productFilterForRepository arg [optional] Download only packages with with provided product. --downloadLegacyForRepository [optional] If se t, download also legacy packages. --help [optional] Display this help and exit |
создаём зеркало
для этого сделал папку e:\temp\mirrorTemp для временных файлов при загрузке
через ELA получил фаил офлайн лицензии и положил его по адресу e:\temp\offline.lf (в нем хранится логин и пароль вашей лицензии)
сделал бат фаил с кодом [CODE]MirrorTool.exe --proxyHost 127.0.0.1 --proxyPort 8080 --mirrorType regular --intermediateUpdateDirectory e:\temp\mirrorTemp --offlineLicenseFilename e:\temp\offline.lf --outputDirectory e:\srv\www[/CODE]и положил его рядом с файлом MirrorTool.exe из архива с программой
--proxyHost 127.0.0.1 - адрес моего кэширующего прокси сервера
--proxyPort 8080 порт моего кэширующего прокси сервера
--mirrorType regular - тип обновлений - выбрал регулярные (см справку)
--intermediateUpdateDirectory e:\temp\mirrorTemp - папка с временными файлами
--offlineLicenseFilename e:\temp\offline.lf - путь до файла офлайн лицензии
--outputDirectory e:\srv\www - конечная папка для обновлений, которые вы будете раздавать клиентам
в планировщике сделал задачу по запуску данного батника раз в два часа
на этом с зеркалом всё.
в настройках ERA указал источником обновлений[CODE] http://192.168.1.20/eset_upd/ep7/[/CODE]сейчас эксперементирую с 7 версией, когда была 6 - путь был
[URL=http://192.168.1.20/eset_upd/ep6/][CODE]http://192.168.1.20/eset_upd/ep6/[/CODE][/URL]теперь создаю репозиторий
нюанс, в старых версиях MirrorTool нельзя было при создании репозитория указать прокси сервер, его порт, и какие версии продуктов и языки нужно скачать, в последней версии это исправили.
создал батник со следующим кодом
[CODE]MirrorTool.exe --proxyHost 127.0.0.1 --proxyPort 8080 --repositoryServer AUTOSELECT --intermediateRepositoryDirectory e:\temp2 --outputRepositoryDirectory e:\srv\www\rep --languageFilterForRepository en_US --languageFilterForRepository ru_RU
pause[/CODE]--proxyHost 127.0.0.1 - адрес моего кэширующего прокси сервера
--proxyPort 8080 порт моего кэширующего прокси сервера
--repositoryServer AUTOSELECT - адрес откуда скачиваем дистрибутивы - в данном случае выбирать автоматически
--intermediateRepositoryDirectory e:\temp2 папка под временные файлы
--outputRepositoryDirectory e:\srv\www\rep конечная папка
--languageFilterForRepository en_US - выбираем и скачиваем только английские дистрибутивы
--languageFilterForRepository ru_RU - выбираем и скачиваем только русские дистрибутивы
при выборе языков столкнулся с тем, что нужно каждый язык отдельно писать после параметра --languageFilterForRepository , то есть если у вас 10 языков надо, о вы должны написать на каждый --languageFilterForRepository , а вот к примеру --languageFilterForRepository en_US ru_RU не проканает.
есть ещё параметр --productFilterForRepository , в котором можно указать, что именно скачивать, но с ним я так и не разобрался.
когда не работал выбор языка в параметрах, приходилось мало того, что качать всё, так ещё и все языки.
и 500 гигов не хватало, так как у меня на диске было всё в трёх экземплярах. папка кэша прокси сервера, папка временных файлов и конечная папка.
при повторном запуске с временной папки программа ничего не подхватывает повторно и не чистит её, зато полностью удаляет всё содржимое конечной папки и начинает всё качать заново. с этой проблемой частично решил вопрос следующим образом, сделал батник, который отчищает временную папку через каждые 180 секунд, и запускаю его во время скачивания репозитория.
[CODE]:_script_del
for /d %%i in (e:\temp2\*-*-*-*) do rd /s /q %%i
TIMEOUT /T 180 /NOBREAK
goto :_script_del[/CODE]e:\temp2 это папка под временные файлы
таким образом у меня скачиваются через кэширующий прокси сервер только русские и английские дистрибутивы (но всех продуктов есет).
раздаю через вэб по адресу
[URL=http://192.168.1.20/rep/][CODE]http://192.168.1.20/rep/[/CODE][/URL]
эти адреса прописал в ERA в качастве источника обновления и источника репозитория