<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
	<channel>
		<title>Форум esetnod32.ru [тема: Локальный репозиторий  и зеркало - создание, развертывание и др.]</title>
		<link>http://forum.esetnod32.ru</link>
		<description>Новое в теме Локальный репозиторий  и зеркало - создание, развертывание и др. форума  на сайте Форум esetnod32.ru [forum.esetnod32.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 16 Apr 2026 01:15:30 +0300</pubDate>
		<item>
			<title>Локальный репозиторий  и зеркало - создание, развертывание и др.</title>
			<description><![CDATA[<b><a href="http://forum.esetnod32.ru/messages/forum7/topic14902/message104130/">Локальный репозиторий  и зеркало - создание, развертывание и др.</a></b> <i>Описание, как я создавал локальный репозиторий и зеркало и пути решения проблем в ходе создания</i> в форуме <a href="http://forum.esetnod32.ru/forum7/">Удаленное администрирование</a>. <br />
			Доброго времени суток. <br />решил поделится инструкцией, как я сделал локальный сервер репозитория продуктов есет, так как не нашёл ни одной внятной инструкции в интернете, как же это правильно и грамотно сделать, чтоб всё работало, да ещё и под те задачи, которые необходимы мне. <br /><br />необходимо:<br />в связи с неустойчивой и низкопропускной способностью каналов интернета в организации, создать локальную базу продуктов и антивирусных баз.<br />раздавать по сети через вэб сервер.<br />необходимо только определённые языки. <br /><br />и так начну по порядку. <br />под это дело я собрал отдельный компьютер и поставил там вин7. адрес компьютера в сети назначил 192.168.1.20 (потом просто где надо меняете на свой адрес)<br />на нем же поставил Oracle VM VirtualBox и поставил на него виртуальную машину на базе CentOS с ERA6, установил как службу VirtualBox с автоматическим запуском ERA6. в инете инструкций полно, как это сделать. <br /><br />на компьютере под это дело установил отдельный жесткий диск на 500 ГБ. и его первое время не хватала под репозиторий (об этом чуть позже).<br /><br />с веб сервером сильно заморачиваться не стал, скачал сборку Wampserver64 и настроил её на работу в качестве вэб сервера. путь к папке с файлами e:\srv\www\<br /><br />в ней сделал папку - rep под репозиторий, под антивирусные базы программа сама создаст папку &nbsp;eset_upd и соответствующие подпапки внутри.<br /><br />ещё один нюанс, с которым я столкнулся и мой путь решения. <br />интернет у нас мало того, что не скоростной, так ещё и обрывается. а программа при повторном запуске начинает всё сначала, а не продолжает докачивать, что ещё не скачала.<br />выход нашёл следующий - кэширующий прокси сервер HandyCache - настроил его так, чтоб он скачивал все дистрибутивы себе в папку в виде кэша, а при повторном запросе брал этот фаил не с инета, а из кэша. инструкция что и как есть на сайте программы. некоторые пункты могу прокомментировать, если надо. <br /><br />теперь переходим непосредственно к созданию зеркала и репозитория. <br />скачиваем самую последнюю версию программы MirrorTool с национального сервера (на руском сайте антивируса лежит старая версия, не поддерживающая некоторые команды)<br /><noindex><a href="https://download.eset.com/com/eset/apps/business/era/tools/mirror/latest/win32.zip" target="_blank" rel="nofollow">https://download.eset.com/com/eset/apps/business/era/tools/mirror/latest/win32.zip</a></noindex> <br /><br />справка по программе, точнее какие команды она воспринимает:<table class="forum-spoiler"><thead onclick="if (this.nextSibling.style.display=='none') { this.nextSibling.style.display=''; BX.addClass(this, 'forum-spoiler-head-open'); } else { this.nextSibling.style.display='none'; BX.removeClass(this, 'forum-spoiler-head-open'); } BX.onCustomEvent('BX.Forum.Spoiler:toggle', [{node: this}]); event.stopPropagation();"><tr><th><div>Скрытый текст</div></th></tr></thead><tbody class="forum-spoiler" style="display:none;"><tr><td>Allowed options:<br /> &nbsp;--mirrorType arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;required for module update&#93; Type of mirror. Possible values (case insensitive): regular, pre-release, delayed.<br /><br /> &nbsp;--intermediateUpdateDirectory arg &nbsp; &nbsp; &#91;required for module update&#93; Files will be downloaded to this directory to create mirror in output directory.<br /><br /> &nbsp;--offlineLicenseFilename arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;required for module update&#93; Offline license file.<br /><br /> &nbsp;--updateServer arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;optional&#93; Upd ate server. (e.g.: <noindex><a href="http://update.eset.com/eset_upd/ep6/" target="_blank" rel="nofollow">http://update.eset.com/eset_upd/ep6/</a></noindex>) Mirror will be created in output directory, only specified path in server will be mirrored.<br /><br /> &nbsp;--outputDirectory arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#91;required for module update&#93; Directory where mirror will be created.<br /><br /> &nbsp;--proxyHost arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#91;optional&#93; Http proxy address (fqdn or IP).<br /><br /> &nbsp;--proxyPort arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#91;optional&#93; Http proxy port.<br /><br /> &nbsp;--proxyUsername arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#91;optional&#93; Http proxy username.<br /><br /> &nbsp;--proxyPassword arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#91;optional&#93; Http proxy password.<br /><br /> &nbsp;--networkDriveUsername arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;optional&#93; Username used, when output directory is accessed using smb(e.g:\\hostname).<br /><br /> &nbsp;--networkDrivePassword arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;optional&#93; Password used, when output directory is accessed using smb(e.g:\\hostname).<br /><br /> &nbsp;--excludedProducts arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;optional&#93; Disable creating mirror for specified products. Possible values: ep4 ep5 ep6 ep7 era6.<br /><br /> &nbsp;--repositoryServer arg &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;required for repository update&#93; Repository server for repository creation.<br /><br /> &nbsp;--intermediateRepositoryDirectory arg &#91;required for repository update&#93; Files will be downloaded to this directory to create offline mirror in output directory.<br /><br /> &nbsp;--outputRepositoryDirectory arg &nbsp; &nbsp; &nbsp; &#91;required for repository update&#93; Directory where offline repository will be created.<br /><br /> &nbsp;--languageFilterForRepository arg &nbsp; &nbsp; &#91;optional&#93; Download only packages with provided languages.<br /><br /> &nbsp;--productFilterForRepository arg &nbsp; &nbsp; &nbsp;&#91;optional&#93; Download only packages with with provided product.<br /><br /> &nbsp;--downloadLegacyForRepository &nbsp; &nbsp; &nbsp; &nbsp; &#91;optional&#93; If se t, download also legacy packages.<br /><br /> &nbsp;--help &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#91;optional&#93; Display this help and exit</td></tr></tbody></table><br />создаём зеркало<br /><br />для этого сделал папку e:\temp\mirrorTemp для временных файлов при загрузке<br />через ELA получил фаил офлайн лицензии и положил его по адресу e:\temp\offline.lf (в нем хранится логин и пароль вашей лицензии)<br /><br />сделал бат фаил с кодом 
====code====
<pre>MirrorTool.exe --proxyHost 127.0.0.1 --proxyPort 8080 --mirrorType regular --intermediateUpdateDirectory e:&#92;temp&#92;mirrorTemp --offlineLicenseFilename e:&#92;temp&#92;offline.lf --outputDirectory e:&#92;srv&#92;www</pre>
=============
и положил его рядом с файлом MirrorTool.exe из архива с программой<br />--proxyHost 127.0.0.1 - адрес моего кэширующего прокси сервера<br />--proxyPort 8080 порт моего кэширующего прокси сервера<br />--mirrorType regular - тип обновлений - выбрал регулярные (см справку)<br />--intermediateUpdateDirectory e:\temp\mirrorTemp &nbsp;- папка с временными файлами<br />--offlineLicenseFilename e:\temp\offline.lf - путь до файла офлайн лицензии <br />--outputDirectory e:\srv\www - конечная папка для обновлений, которые вы будете раздавать клиентам<br /><br />в планировщике сделал задачу по запуску данного батника раз в два часа <br />на этом с зеркалом всё. <br />в настройках ERA указал источником обновлений
====code====
<pre> http://192.168.1.20/eset_upd/ep7/</pre>
=============
сейчас эксперементирую с 7 версией, когда была 6 - путь был <br /><noindex><a href="http://192.168.1.20/eset_upd/ep6/" target="_blank" rel="nofollow">
====code====
<pre>http://192.168.1.20/eset_upd/ep6/</pre>
=============
</a></noindex>теперь создаю репозиторий<br /><br />нюанс, в старых версиях MirrorTool нельзя было при создании репозитория указать прокси сервер, его порт, и какие версии продуктов и языки нужно скачать, в последней версии это исправили. <br /><br />создал батник со следующим кодом <br /> 
====code====
<pre>MirrorTool.exe --proxyHost 127.0.0.1 --proxyPort 8080 --repositoryServer AUTOSELECT --intermediateRepositoryDirectory e:&#92;temp2 --outputRepositoryDirectory e:&#92;srv&#92;www&#92;rep --languageFilterForRepository en_US --languageFilterForRepository ru_RU
pause</pre>
=============
--proxyHost 127.0.0.1 - адрес моего кэширующего прокси сервера<br />--proxyPort 8080 порт моего кэширующего прокси сервера<br />--repositoryServer AUTOSELECT - адрес откуда скачиваем дистрибутивы - в данном случае выбирать автоматически <br />--intermediateRepositoryDirectory e:\temp2 папка под временные файлы<br />--outputRepositoryDirectory e:\srv\www\rep конечная папка<br />--languageFilterForRepository en_US - выбираем и скачиваем только английские дистрибутивы<br />--languageFilterForRepository ru_RU - выбираем и скачиваем только русские дистрибутивы<br /><br />при выборе языков столкнулся с тем, что нужно каждый язык отдельно писать после параметра --languageFilterForRepository , то есть если у вас 10 языков надо, о вы должны написать на каждый --languageFilterForRepository , а вот к примеру --languageFilterForRepository en_US ru_RU не проканает. <br />есть ещё параметр --productFilterForRepository , в котором можно указать, что именно скачивать, но с ним я так и не разобрался. <br /><br />когда не работал выбор языка в параметрах, приходилось мало того, что качать всё, так ещё и все языки. <br />и 500 гигов не хватало, так как у меня на диске было всё в трёх экземплярах. папка кэша прокси сервера, папка временных файлов и конечная папка. <br /><br />при повторном запуске с временной папки программа ничего не подхватывает повторно и не чистит её, зато полностью удаляет всё содржимое конечной папки и начинает всё качать заново. с этой проблемой частично решил вопрос следующим образом, сделал батник, который отчищает временную папку через каждые 180 секунд, и запускаю его во время скачивания репозитория. <br />
====code====
<pre>:_script_del
for /d %%i in (e:&#92;temp2&#92;*-*-*-*) do rd /s /q %%i
TIMEOUT /T 180 /NOBREAK
goto :_script_del</pre>
=============
e:\temp2 это папка под временные файлы<br /><br />таким образом у меня скачиваются через кэширующий прокси сервер только русские и английские дистрибутивы (но всех продуктов есет). <br /><br />раздаю через вэб по адресу <br /><noindex><a href="http://192.168.1.20/rep/" target="_blank" rel="nofollow">
====code====
<pre>http://192.168.1.20/rep/</pre>
=============
</a></noindex><br />эти адреса прописал в ERA в качастве источника обновления и источника репозитория <br />
			<i>20.08.2018 06:13:10, Sergey Platonov.</i>]]></description>
			<link>http://forum.esetnod32.ru/messages/forum7/topic14902/message104130/</link>
			<guid>http://forum.esetnod32.ru/messages/forum7/topic14902/message104130/</guid>
			<pubDate>Mon, 20 Aug 2018 06:13:10 +0300</pubDate>
			<category>Удаленное администрирование</category>
		</item>
	</channel>
</rss>
