Como especificar que Yum não deve usar proxy para domínio específico

12

É possível especificar o domínio para o qual o yum deve ignorar a configuração do proxy? Receio que isso não seja possível ...

Eu li que era possível usar a variável de ambiente HTTP_PROXYentão NO_PROXY, é a solução mais elegante?

[EDITAR]

Eu tentei a solução com as variáveis ​​de ambiente:

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

O Yum usa proxy, mas os repositórios * .domain não são ignorados.

[GAMBIARRA]

Usando http://cntlm.sourceforge.net/ , posso configurar qual domínio deve ser ignorado. Mas isso funciona apenas com proxy que requer autenticação NTLM ...

chepseskaf
fonte

Respostas:

26

Não consegui fazer isso funcionar usando variáveis ​​de ambiente, como você descreve aqui. No entanto, o Yum suporta proxies em si, e você poderá fazer algo assim:

proxy=http://proxy:port

Para yum.confe, em seguida, adicionando

proxy=_none_

Nas definições de repositório que você não deseja acessar por meio do proxy global. Isso é detalhado (embora de forma sucinta) na página do manual yum.conf.

sagepe
fonte
Bem sucedido, finalmente. Obrigado! Não quero passar por todos os hosts novamente onde fiz isso. Mas também seria possível adicionar o proxy diretamente a esses arquivos de repositório, quando necessário (por exemplo, todos os repositórios com servidores de pacotes externos, em contraste com os arquivos de
repositório
1
proxy=_none_Brilhante, obrigado. Essa é uma carga de navio de molho incrível. Eu tinha-se-voto-lhe duas vezes se eu pudesse :)
Scottie H
@erikbwork Acabei de adicionar um proxy=http://proxy:portao meu arquivo .repo e funcionou. É isso que você está perguntando?
26719 Scottie H #
4

Se eu entendi essa pergunta corretamente, o comportamento desejado é

packages.centos.com é atraído por um proxy.

packages.internal.lan vai direto sem passar pelo proxy.

Acabei de chegar aqui pesquisando como fazer isso sozinho e usei as informações acima para conseguir o que queria, mas não tenho certeza se a resposta acima está completa.

Para fazer isso, usei o seguinte.

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

export no_proxy=internal.lan

yum install package1 package2

package1 foi retirado da internet via proxy,

O package2 foi retirado do meu espelho local e não passou pelo proxy.

Jay
fonte
3

Minha solução envolve a instalação do Privoxy, um proxy HTTP leve.

yum install privoxy

Adicione duas cláusulas de encaminhamento em / etc / privoxy / config:

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

E também desative as ações padrão do privoxy (verifique se nenhum cabeçalho foi corrompido): (@line 175 na configuração do privoxy do RHEL5)

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

Em seguida, configure a variável de ambiente http_proxy e ftp_proxy na porta do privoxy:

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

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

yum instalar pacote1 pacote2

Nota: se você tiver linhas de proxy no yum.conf, remova-o, ele substituirá a variável de ambiente.

YudhiWidyatama
fonte
Eu estava procurando maneiras de anfitriões whitelist de privoxy e eu tenho a minha resposta aqui :)
ahmadali Shafiee
2

Você pode apenas especificá-lo no arquivo repo. Por exemplo:

[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
fonte
1

A substituição do yum no fedora é dnf.

Para dnf _none_causará um erro

Você precisará definir o proxy como uma sequência vazia

proxy=

Referência: https://dnf.readthedocs.io/en/latest/conf_ref.html

John S Andersen
fonte
Isso também é verdade para o CentOS 8!
7/19