Работа с прокси
В среде, где для доступа к интернету требуются прокси-серверы, многие команды Chef не будут работать, пока они не будут правильно настроены. Чтобы настроить Chef для работы в среде, требующей прокси, установите переменные среды http_proxy, https_proxy, ftp_proxy, и/или no_proxy, чтобы указать настройки прокси с использованием строчных букв.
Microsoft Windows
Чтобы определить текущий прокси-сервер на платформе Microsoft Windows:
- Откройте Свойства Интернета.
- Откройте Подключения.
- Откройте Настройки локальной сети.
- Просмотрите настройку Прокси-сервер. Если это поле пустое, значит прокси-сервер может быть недоступен.
Чтобы настроить настройки прокси в 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сftpURL вместо этого. - Настройки прокси могут не применяться приложениями одинаково. Например, поведение настройки
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/