Показаны сообщения с ярлыком приватные модули. Показать все сообщения
Показаны сообщения с ярлыком приватные модули. Показать все сообщения

воскресенье, 14 марта 2021 г.

Модули в Golang: частные модули, передача учетных данных частным прокси

Команда go поддерживает базовую аутентификацию HTTP при обмене данными с прокси-серверами.

Учетные данные могут быть указаны в файле .netrc. Например, файл .netrc, содержащий следующие строки, будет настраивать команду go для подключения к машине proxy.corp.example.com с заданными именем пользователя и паролем.

machine proxy.corp.example.com
login jrgopher
password hunter2

Местоположение файла может быть установлено с помощью переменной среды NETRC. Если NETRC не установлен, команда go будет читать $HOME/.netrc на UNIX-подобных платформах или %USERPROFILE%\_netrc в Windows.

Поля в .netrc разделяются пробелами, табуляциями и символами новой строки. К сожалению, эти символы нельзя использовать в именах пользователей или паролях. Также обратите внимание, что имя компьютера не может быть полным URL-адресом, поэтому невозможно указать разные имена пользователей и пароли для разных путей на одном компьютере.

В качестве альтернативы учетные данные могут быть указаны непосредственно в URL-адресах GOPROXY. Например:

GOPROXY=https://jrgopher:hunter2@proxy.corp.example.com

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


Читайте также:


суббота, 13 марта 2021 г.

Модули в Golang: частные модули, прямой доступ к частным модулям

Команду go можно настроить для обхода общедоступных прокси и загрузки частных модулей непосредственно с серверов контроля версий. Это полезно, когда запуск частного прокси-сервера невозможен.

Чтобы настроить команду go таким образом, установите GOPRIVATE, заменив corp.example.com префиксом частного модуля:

GOPRIVATE=corp.example.com

В этой ситуации нет необходимости изменять переменную GOPROXY. По умолчанию используется https://proxy.golang.org,direct, который указывает команде go сначала попытаться загрузить модули с https://proxy.golang.org, а затем вернуться к прямому подключению, если этот прокси-сервер отвечает 404 (Not Found) или 410 (Gone).

Параметр GOPRIVATE указывает команде go не подключаться к прокси-серверу или базе данных контрольных сумм для модулей, начинающихся с corp.example.com.

Внутренний HTTP-сервер все еще может понадобиться для разрешения путей модулей к URL-адресам репозитория. Например, когда команда go загружает модуль corp.example.com/mod, она отправляет запрос GET на https://corp.example.com/mod?go-get=1 и будет искать URL репозитория в ответе. Чтобы избежать этого требования, убедитесь, что каждый путь к частному модулю имеет суффикс VCS (например, .git), обозначающий корневой префикс репозитория. Например, когда команда go загружает модуль corp.example.com/repo.git/mod, она клонирует репозиторий Git по адресу https://corp.example.com/repo.git или ssh://corp.example.com/repo.git без дополнительных запросов.

Разработчикам потребуется доступ для чтения к репозиториям, содержащим частные модули. Это можно настроить в глобальных файлах конфигурации VCS, таких как .gitconfig. Лучше всего, если инструменты VCS настроены так, чтобы не требовать интерактивных подсказок аутентификации. По умолчанию при вызове Git команда go отключает интерактивные подсказки, задав GIT_TERMINAL_PROMPT=0, но при этом учитывает явные настройки.


Читайте также:


четверг, 11 марта 2021 г.

Модули в Golang: частные модули, частный прокси, обслуживающий все модули

Центральный частный прокси-сервер, обслуживающий все модули (общедоступные и частные), обеспечивает максимальный контроль для администраторов и требует минимальной настройки для отдельных разработчиков.

Чтобы настроить команду go для использования такого сервера, установите следующие переменные среды, заменив https://proxy.corp.example.com на URL-адрес вашего прокси и corp.example.com на префикс вашего модуля:

GOPROXY=https://proxy.corp.example.com
GONOSUMDB=corp.example.com

Параметр GOPROXY указывает команде go загружать модули только с https://proxy.corp.example.com; команда go не будет подключаться к другим прокси или репозиториям системы контроля версий.

Параметр GONOSUMDB указывает команде go не использовать общедоступную базу данных контрольных сумм для аутентификации модулей с путями, начинающимися с corp.example.com.

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

Существует несколько существующих реализаций серверов GOPROXY, которые можно использовать таким образом. Минимальная реализация будет обслуживать файлы из каталога кеша модулей и использовать go mod download (с подходящей конфигурацией) для извлечения недостающих модулей.


Читайте также: