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 ...

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.


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.


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.


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_

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.