Jak określić, że Yum nie powinien używać proxy dla określonej domeny

12

Czy można określić domenę, dla której należy ominąć konfigurację proxy? Obawiam się, że to niemożliwe ...

Czytałem, że można było użyć zmiennej środowiskowej HTTP_PROXYwtedy NO_PROXYjest to najbardziej eleganckie rozwiązanie?

[EDYTOWAĆ]

Wypróbowałem rozwiązanie ze zmiennymi środowiskowymi:

export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain

Yum używa proxy, ale repozytoria * .domena nie są pomijane.

[OBEJŚCIE]

Za pomocą http://cntlm.sourceforge.net/ mogę skonfigurować domenę, która powinna być ignorowana. Ale to działa tylko z proxy, które wymaga uwierzytelnienia NTLM ...

chepseskaf
źródło

Odpowiedzi:

26

Nie udało mi się tego uruchomić za pomocą zmiennych środowiskowych, jak tu opisano. Yum sam obsługuje serwery proxy i powinieneś być w stanie zrobić coś takiego:

proxy=http://proxy:port

W, yum.confa następnie dodawanie

proxy=_none_

Do definicji repozytoriów, do których nie chcesz uzyskiwać dostępu za pośrednictwem globalnego serwera proxy. Jest to szczegółowo opisane (choć zwięźle) na stronie podręcznika użytkownika yum.conf.

sagepe
źródło
W końcu sukces. Dzięki! Nie chcę ponownie przechodzić przez wszystkich gospodarzy tam, gdzie to zrobiłem. Ale czy byłoby również możliwe dodanie proxy bezpośrednio do tych plików repo tam, gdzie jest to potrzebne (np. Do wszystkich repozytoriów z zewnętrznymi serwerami pakietów, w przeciwieństwie do plików repo, które używają wewnętrznych menedżerów pakietów, które nie potrzebują proxy)
erikbwork
1
proxy=_none_Świetnie, dzięki. To ładunek niesamowitego sosu na statek. Głosowałbym dwa razy, gdybym mógł :)
Scottie H
@erikbwork Właśnie dodałem a proxy=http://proxy:portdo mojego pliku .repo i zadziałało. Czy o to pytasz?
Scottie H
4

Jeśli dobrze rozumiem to pytanie, pożądane jest zachowanie

Package.centos.com jest pobierany przez proxy.

Package.internal.lan działa bezpośrednio, bez przechodzenia przez serwer proxy.

Właśnie tu przyjechałem, poszukałem, jak to zrobić sam, i wykorzystałem powyższe informacje, aby osiągnąć to, czego chciałem, jednak nie jestem pewien, czy powyższa odpowiedź jest kompletna.

Aby to zrobić, wykorzystałem następujące.

export HTTP_PROXY=http://myproxy.internal.lan:port

export no_proxy=internal.lan

yum install package1 package2

pakiet1 został pobrany z Internetu przez serwer proxy,

pakiet2 został pobrany z mojego lokalnego serwera lustrzanego, nie przechodząc przez serwer proxy.

Sójka
źródło
3

Moje rozwiązanie polega na skonfigurowaniu Privoxy, lekkiego serwera proxy HTTP.

mniam zainstaluj privoxy

Dodaj dwie klauzule przekazywania w / etc / privoxy / config:

 forward / myproxy.internal.lan:3128
 forward .internal.lan .

A także wyłącz domyślne akcje privoxy (upewnij się, że żaden nagłówek nie został uszkodzony): (@line 175 w konfiguracji prywatnej RHEL5)

#actionsfile standard  # Internal purpose, recommended
#actionsfile default   # Main actions file
#actionsfile user      # User customizations

Następnie skonfiguruj zmienną środowiskową http_proxy i ftp_proxy do portu privoxy:

deklaruj -x http_proxy = http://127.0.0.1:8118

deklaruj -x ftp_proxy = http://127.0.0.1:8118

mniam zainstaluj pakiet 1 pakiet 2

Uwaga: jeśli masz linie proxy w yum.conf, usuń je, zastąpiłoby to zmienną środowiskową.

YudhiWidyatama
źródło
Szukałem sposobów na umieszczenie hostów na białej liście z listy prywatnej i mam tutaj swoją odpowiedź :)
ahmadali shafiee 13.01.19
2

Możesz to tylko określić w pliku repo. Na przykład:

[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo  
[cloudera-cdh4]  
name=Cloudera's Distribution for Hadoop, Version 4  
baseurl=http://"yourhost"/cdh4/  
gpgcheck = 0
enabled=1
proxy=_none_
lzhshen
źródło