Использование сонатного типа в локальной сети

Я успешно создал небольшую среду разработки программного обеспечения (SEE) для приложений Java, которая - среди других инструментов - на основе maven и nexus. Моя реальная проблема - не настоящий сюрприз - обычно для связи требуемых артефактов из центральных хранилищ обычно требуется доступ к Интернету. Но ЮВЕ должно быть строго офф-лайн, и нет способа изменить его (.. соображения безопасности).

Моим первым быстрым решением было зеркальное отображение установки nexus/maven на машине, которая была подключена к Интернету, запустить стандартную pom, чтобы заполнить зеркальную связь и перенести кеш через CD-ROM в целевую систему. Довольно уродливые. Я не очень надеюсь адаптировать этот процесс для получения обновлений для артефактов или новых. Фактически, теперь мы обычно просто импортируем библиотеки, которые нам нужны, и создаем новые артефакты (с помощью нексуса), вместо этого используем официальные из центрального и других.

Кто-нибудь сталкивался с тем же вызовом и нашел более умный и эффективный подход?

Edit

Спасибо за все ответы, я думаю, что я должен быть более точным по актуальной проблеме и решению, о котором я сейчас думаю: я думаю, что мне нужно создавать, заполнять и синхронизировать частный "центральный" репозиторий, основанный на центральных и других репозиториях в Интернете, или точно: два идентичных хранилища. Один подключен к Интернету другой в локальной сети. Затем я могу сохранить обновленный интернет-репозиторий и скопировать изменения с помощью DVD в локальный репозиторий - что видно для Nexus.

Будет ли это работать? Существует ли документация о том, как настроить что-то вроде "центрального" на частном сервере, существует ли механизм для синхронизации выбранных артефактов?

(не хотел публиковать мои мысли в начале, потому что я надеялся получить совершенно разные идеи)

Изменить 2 - "Лучшая практика" - добавлена ​​по запросу

Наша "лучшая практика" для использования maven в среде, полностью отключенной от Интернета:

  • Мы установили связь на центральном сервере, чтобы рабочие станции разработки программного обеспечения имели сервер, с которым можно было разговаривать (и это был наш собственный репозиторий артефактов).
  • Мы экспортировали файлы POM на рабочую станцию ​​с доступом в Интернет, очистили локальный репозиторий на этом компьютере и сделали dependency:go-offline (plugin). Это засело локальный репозиторий со всеми необходимыми артефактами
  • Мы импортировали этот локальный репозиторий в безопасную среду и добавили все плагины в nexus (просто скопировали файлы - структура идентична)

Сделайте это раз в неделю со всеми файлами POM (можно автоматизировать), и у вас есть довольно стабильный и полезный локальный репозиторий.

Ответы

Ответ 1

Будет ли это работать? Существует ли документация о том, как настроить что-то вроде "центрального" на частном сервере, существует ли механизм для синхронизации выбранных артефактов?

Хорошо, вы могли бы стать зеркалом центрального, но, что точка захвата ~ 10 ГБ артефактов? Вам не понадобятся все они, и обычно рекомендуется использовать диспетчер хранилища.

Собственно, мои первоначальные мысли были:

  • Используйте Nexus, подключенный к Интернету вне SEE
  • rsync содержимое этого Nexus на DVD.
  • Скопируйте контент в Nexus из SEE с помощью DVD.
  • Периодически повторяйте.

Я нашел это решение уродливым, но теперь, когда у нас есть более подробная информация о вашей ситуации, это может быть приемлемым.

Ответ 2

Я когда-то работал в сетевой среде, где часть сети не имела доступа к Интернету или другой сети. Всякий раз, когда нам нужно было обновлять программное обеспечение в этой сети, мы сделали следующее:

  • загрузить обновленное программное обеспечение на "безопасный" хост (шаг камня)
  • Отключить шаг камень из сети
  • подключить шаговый шаг для защиты сети.
  • добавить обновленное программное обеспечение в репозиторий
  • Отключить шаг из защищенной сети.

Мы полностью автоматизировали этот процесс, автоматически настраивая коммутатор для надлежащего подключения и отключения сетей (так что было физическое соединение в любое время, но без использования IP-соединения). Возможно, вы могли бы сделать что-то подобное - это просто зависит от гибкости определения "отключено";)

Ответ 3

В моей среде я столкнулся с аналогичной проблемой.

Обычно наш сервер, на котором размещен Nexus, не сможет получить доступ к Интернету. Тем не менее, я встретился с командой операций и объяснил им, что позволяет Nexus автоматически загружать артефакты из Интернета - это огромный выигрыш в производительности для нас.

После того, как они поняли наши потребности, операционные системы разрешили серверу получать доступ к очень строгому списку белых IP-адресов, таких как центральный репозиторий Maven. Таким образом, нам по-прежнему приходится проходить через ops, чтобы добавлять новые репозитории или выполнять настройки белого списка, когда изменяются IP-адреса внешнего репозитория. Но в целом мы чувствовали, что это лучший компромисс между безопасностью и производительностью, и он работает для нас.

Посмотрите, пойдут ли ваши заинтересованные стороны для подключения вашей сети к Интернету в строго ограниченном белом списке, как только вы повторите, как это сделает вас более продуктивными и в конечном итоге сэкономит время.