Servidor proxy de armazenamento em cache de arquivos para o software de gerenciamento de configuração (Chef)

3

Eu tenho vários servidores que eu gerencio com o Chef. Todos pertencem a uma rede e a largura de banda entre eles é grande em contraste com a largura de banda da Internet externa.

O problema é: muitas vezes é necessário baixar alguns arquivos da Internet. Quando eu executo o chef-client em todos os servidores que eu preciso, todos eles vão para a internet e fazem o download de lá. O que leva algum tempo, quando, em vez disso, eles poderiam acessar algum servidor dentro da LAN primeiro e verificar se esse arquivo já está lá.

O que eu preciso é de algum servidor proxy como apt-cacher-ng , mas para arquivos comuns, onde eles podem ser armazenados com base na url ou na soma de verificação do arquivo. De modo que todo chef-cliente poderia verificar os arquivos primeiro neste cacher e somente na internet, se não houver nenhum arquivo requerido disponível no cache. Idealmente, este cacher poderia se comportar como um proxy - para que, assim que recebesse um pedido de algum URL, ele baixasse o arquivo, o armazenasse em algum lugar e o retornasse ao solicitante.

A questão é: posso configurar o apt-cacher-ng para isso, como? Ou existem outros servidores proxy ou cache que possam ser úteis (apache, nginx)?

Preciso de ajuda com a configuração deste servidor proxy, porque assim que estiver pronto, poderei alterar as configurações do cliente-chefe sozinho.

    
por Draco Ater 10.02.2014 / 15:55

3 respostas

3

Acho que você só precisa configurar a opção link no arquivo de configuração do cliente do chef. O chef o usará para http downloads.

O próprio servidor proxy tem que ser configurado por você mesmo, é claro. Você poderia usar o squid, o Apache mod_proxy e o IIRC também o ngnix para configurar um proxy de cache. Polipo também é um ótimo proxy.

    
por 10.02.2014 / 17:56
2

O Squid é um proxy de cache comum que você pode usar para isso. O Nginx e o apache não são realmente construídos para fazer o tipo de proxies forward e cache que você está procurando.

Basicamente, apenas configure como você gosta, não é muito complexo para um proxy de cache básico e, em seguida, aponte o chef para ele com http_proxy na configuração do chef.

    
por 10.02.2014 / 18:35
2

Dependendo de suas necessidades, você pode decidir entre um cache http ( como o Squid ) ou o armazenamento de binários um servidor de repositório local.

Artifactory é um excelente servidor de repositório que pode armazenar binários, ou pode ser um cache para pacotes (como nuget, npm , gema e assim por diante).

Dependendo de como você resolve esse problema, também depende do design de sua rede, do tempo que você precisa para armazenar os arquivos em cache e da robustez que envolve seu cache.

Em geral, um servidor de repositório binário é um método mais robusto de armazenar arquivos, mas também requer mais infraestrutura e mais governança.

    
por 19.06.2014 / 02:56