Работа с прокси
В среде, требующей прокси для выхода в Интернет, многие команды Chef не будут работать, пока они не будут правильно настроены. Чтобы настроить Chef для работы в среде, требующей прокси, установите переменные окружения http_proxy, https_proxy, ftp_proxy, и/или no_proxy, чтобы указать настройки прокси с использованием строчных значений.
Microsoft Windows
Для определения текущего прокси-сервера на платформе Microsoft Windows:
- Откройте Свойства Интернета.
- Откройте Подключения.
- Откройте Параметры сети LAN.
- Просмотрите параметр Прокси-сервер. Если это поле пустое, прокси-сервер может быть недоступен.
Для настройки прокси-настроек в Microsoft Windows:
- Откройте Свойства системы.
- Откройте Переменные среды.
- Откройте Системные переменные.
- Установите
http_proxyиhttps_proxyв расположение вашего прокси-сервера. Это значение ДОЛЖНО быть строчным.
Linux
Для определения текущего прокси-сервера на платформах macOS и Linux проверьте переменные окружения. Выполните следующее:
env | grep -i http_proxy
Если переменная окружения установлена, она ДОЛЖНА быть строчной. Если нет, добавьте строчную версию этой переменной прокси в оболочку (например, ~/.bashrc) с помощью одной (или нескольких) из следующих команд.
Для HTTP:
export http_proxy=http://myproxy.com:3168
Для HTTPS:
export https_proxy=http://myproxy.com:3168
Для FTP:
export ftp_proxy=ftp://myproxy.com:3168
Настройки прокси
Настройки прокси определяются в конфигурационных файлах для Chef Infra Client и для knife и могут быть указаны для HTTP, HTTPS и FTP.
HTTP
Используйте следующие настройки в файлах client.rb или config.rb для сред, использующих прокси HTTP:
| Настройка | Описание |
|---|---|
http_proxy | Прокси-сервер для подключений HTTP. Значение по умолчанию: nil. |
http_proxy_pass | Пароль для прокси-сервера при использовании прокси-сервером подключения HTTP. Значение по умолчанию: nil. |
http_proxy_user | Имя пользователя прокси-сервера при использовании прокси-сервером подключения HTTP. Значение по умолчанию: nil. |
HTTPS
Используйте следующие настройки в файлах client.rb или config.rb для сред, использующих прокси HTTPS:
| Настройка | Описание |
|---|---|
https_proxy | Прокси-сервер для подключений HTTPS. Значение по умолчанию: nil. |
https_proxy_pass | Пароль для прокси-сервера при использовании прокси-сервером подключения HTTPS. Значение по умолчанию: nil. |
https_proxy_user | Имя пользователя прокси-сервера при использовании прокси-сервером подключения HTTPS. Значение по умолчанию: nil. |
FTP
Используйте следующие настройки в файлах client.rb или config.rb для сред, использующих прокси FTP:
| Настройка | Описание |
|---|---|
ftp_proxy | Прокси-сервер для подключений FTP. |
ftp_proxy_pass | Пароль для прокси-сервера при использовании прокси-сервером подключения FTP. Значение по умолчанию: nil. |
ftp_proxy_user | Имя пользователя прокси-сервера при использовании прокси-сервером подключения FTP. Значение по умолчанию: nil. |
Без прокси
Настройка no_proxy используется для указания адресов, для которых прокси не должен использоваться. Это может быть один адрес или список адресов, разделенных запятыми.
Пример:
no_proxy 'test.example.com,test.example2.com,test.example3.com'
Примечание
no_proxy могут использоваться подстановочные знаки, например no_proxy '*.*.example.*', однако во многих ситуациях необходимо явно указывать имена хостов (то есть «без подстановочных знаков»). Переменные окружения
Рассмотрите следующие моменты для ситуаций, когда переменные окружения используются для установки прокси:
- Настройки прокси могут не поддерживаться всеми приложениями. Например, настройки прокси могут игнорироваться основным приложением при указании источника
ftpс ресурсомremote_file. Рассмотрите обходной путь. Например, в этой ситуации попробуйте выполнитьwgetс URLftpвместо. - Настройки прокси могут поддерживаться приложениями несогласованно. Например, поведение настройки
no_proxyможет не работать с определёнными приложениями при использовании подстановочных знаков. Рассмотрите указание имён хостов без использования подстановочных знаков.
ENV
Если http_proxy, https_proxy, ftp_proxy, или no_proxy установлены в файле client.rb, но не установлены в ENV, Chef Infra Client настраивает переменную ENV на основе этих (и связанных) настроек. Например:
http_proxy 'http://proxy.example.org:8080'
http_proxy_user 'myself'
http_proxy_pass 'Password1'
Или альтернативный способ определения прокси (если предыдущий вариант не работает):
http_proxy 'http://myself:Password1@proxy.example.org:8080'
будет установлено в:
ENV['http_proxy'] = 'http://myself:Password1@proxy.example.org:8080'
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/proxies/