Категории: ОСи

Использование choco через прокси

Choco — лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси, необходимо выполнить его донастройку.

Вариантов прокидывания прокси в choco много:

  • через переменные окружения
  • через системную настройку прокси
  • через конфигурацию менеджера
  • через командную строку

Самый простой способ — использовать системный прокси, который прописан в конфигурации Internet Options браузера IE. Такой вариант не всем подходит, потому что чаще всего в корпоративном окружении используется pac файл для автоматической настройки прокси.

Я предпочитаю использовать переменные окружения. К счастью, choco распознает, если в окружении имеются стандартные переменные (в нижнем регистре!):

  • http_proxy
  • https_proxy
  • no_proxy

Если же вам не хочется, чтобы эти переменные влияли на все другие консольные приложения, то можно выполнить конфигурацию самого choco:

choco config set --name="'proxy'" --value="'http://localhost:8888'"
choco config set --name="'proxyUser'" --value="'username'" # опционально
choco config set --name="'proxyPassword'" --value="'123Sup#rSecur3'" # опционально, хранится в зашифрованном виде
choco config set --name="'proxyBypassList'" --value="'http://localhost,http://this.location/'" # опционально
choco config set --name="'proxyBypassOnLocal'" --value="'true'" # опционально

Ну и наконц, можно разово указывать прокси в команднйо строке при запуске choco. Используйте ключи:

--proxy="'value'" --proxy-user="'<user>'" --proxy-password="'<pwd>'" --proxy-bypass-list="'<comma separated, list>'" --proxy-bypass-on-local

Установка choco за прокси

Установка choco, находясь за корпоративным прокси, ничем особо не отличается от установки других приложений через Powershell c использованием proxy.

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

  1. Скачайте файл установки локально https://community.chocolatey.org/install.ps1
  2. Запустите PS от имени администратора
  3. Объявите переменные
  4. Запустите скрипт в той же PS сессии

Во-первых, задайте использование библиотеки для аутентификации на прокси. Если прокси не требует аутентификации или на нем работает доменная аутентификация, то в ps пропишите

[Net.WebRequest]::DefaultWebProxy.Credentials = [Net.CredentialCache]::DefaultCredentials

Если дополнительно требуются аутентификация на прокси (случай, когда вы получаете ошибку Get Response returned: (407) Proxy Authentication Required), то добавьте переменные с логином и паролем $env:chocolateyProxyUser  и $env:chocolateyProxyPassword. Обратите внимание, что если вы в AD домене, то логин должен включать название домена: AD\UserName.

И наконец, задайте адрес прокси через переменную $env:chocolateyProxyLocation.

Все эти 3 переменные в скрипте установки используются в стандартных командах конфигурации прокси:

...
($env:chocolateyProxyUser -and $env:chocolateyProxyPassword) {
$securePass = ConvertTo-SecureString $env:chocolateyProxyPassword -AsPlainText -Force
$config['ProxyCredential'] = [System.Management.Automation.PSCredential]::new($env:chocolateyProxyUser, $securePass)
}
...
$ProxyUrl = $env:chocolateyProxyLocation
New-Object System.Net.WebProxy -ArgumentList $ProxyUrl, <# bypassOnLocal: #> $true

Итоговый скрипт установки должен получиться примерно такой:

[Net.WebRequest]::DefaultWebProxy.Credentials = [Net.CredentialCache]::DefaultCredentials
$env:chocolateyProxyLocation = 'https://local.proxy.address:8001'

# Un-comment the following lines if your proxy server requires explicit authentication and
# substitute your username and password.
#$env:chocolateyProxyUser = 'username'
#$env:chocolateyProxyPassword = 'password'

# Run the downloaded install script
& "C:\Path\to\script\install.ps1"
[Посещений: 56, из них сегодня: 1]
Share
Опубликовал
Александр Дудкин

Свежие посты

Процессы зомби, демоны и сироты в Linux

Процессы и программы Программа в Unix — это последовательность исполняемых инструкций на диске. Вы можете…

12 октября 2024

Изучаем сертификаты, приватные ключи и keystore

Существует большое разнообразие форматов, в которых создаются сертификаты и приватные ключи для них. Часто они…

20 июля 2024

Восстановление доступа к Docker Hub

Все известно, что Докерхаб закрыл доступ для пользователей из санкционных стран, включая РФ и РБ.…

30 мая 2024

Как посмотреть сертификат хоста через командную строку

Зачастую бывает необходимо проверить, а какой SSL сертификат отдает тот или иной хост на определенном…

21 февраля 2024

Обзор SSD диска XrayDisk

В России становится все больше малоизвестных китайских товаров, поэтому сегодня у нас на обзоре китайский…

3 декабря 2023

Linux: как переместить файлы папки с заменой?

Команда mv не перемещает с перезаписью поверх папки, если таковые уже существуют, поэтому часто вместо…

15 ноября 2023