Criar variáveis no squid.conf. É possivel?

Iniciado por danielrsj, 05 de Agosto de 2010, 17:18

tópico anterior - próximo tópico

danielrsj

Pessoal,

tenho várias filiais, cada uma com seu link de internet.
E cada um com seu firewall, squid, etc....

Para não ter que ficar gerenciando o squid em cada filial, eu criei um script que de tempos em tempos, copia a pasta que tem as regras do squid.
Este script roda nas filiais e copia as regras do servidor da matriz.
Então eu atualizo as regras somente no servidor da matriz, e depois de um tempo essa regra é replicada nas filiais.

Meu problema é com o squid.conf, pois esse eu não copio no scritp, isso porque tem algumas variáveis que são diferentes para cada servidor, como por exemplo, visible_hostname, e outras variáveis que dizem respeito ao tamanho do cache. Como cada servidor tem um tamnaho de HD  e RAM diferente, não dá para deixar todos com o mesmo tamanho de cache.

Porém, quando eu altero / crio alguma ACL na matriz, eu tenho que ir em todas as filiais atualizando o squid.conf.

Queria saber se existe alguma forma de eu criar variáveis, dentro do squid.conf, por exemplo, eu teria um arquivo txt no meu servidor com o tamanho do cache, por exemplo: 30720.
Aí eu criaria dentro do squid.conf essa variável que iria ler este arquivo, por exemplo, a variável se chamaria " TAM_CACHE ".


aí eu configuraria a tag:
cache_dir ufs /var/spool/squid3 $TAM_CACHE 16 256

Pois assim eu poderia copiar sem problemas o squid.conf da matriz para as filiais, mantendo as diferenças de cada filial.

Alguém sabe se isso é possível?

zekkerj

Até onde eu sei, não é possível fazer o que você quer.

Mas você pode fazer o seguinte, ao invés de mexer no arquivo squid.conf, vc pode criar algumas ACLs "coringa", e trazer o seu conteúdo de um arquivo externo. Assim, ao invés de atualizar o squid.conf, vc atualiza esse arquivo externo. Isso serve bem pra você fazer bloqueio de sites inapropriados/maliciosos.

Ex:

no squid.conf:

...
acl proibidos url_regex -i "/etc/squid/proibidos.txt"
...

E lá no "proibidos.txt":


http://www.playboy.com
http://www.microsoft.com
http://www.baboo.com
http://www.lalalalala.com
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

danielrsj

#2
isso daí eu já faço....

Porém se eu criar uma nova acl na matriz, ou mudar a sequencia dessas acl no squid.conf, eu tenho que alterar em todas as filiais.

por isso queria copiar também o squid.conf, pois assim eu só alteraria uma vez.


Vou dar um exemplo para ser mais específico:

http_acess deny pornografia
http_acess allow diretoria
http_acess allow atualizacoes
http_acess deny bloqueados
http_acess allow redelocal



Se depois que todas as filiais estiverem assim, se eu quiser adicionar uma exceção para a acl bloqueados, por exemplo, acl permitidos, ficaria assim:

http_acess deny bloqueados !permitidos


Até aí beleza, o problema é que eu teria que ir em todas as filiais, e editar o squid.conf para ficar no padrao.

OBS.: o arquivo externo que as acls apontam, eu já copio nas filiais. Esses arquivos eu só edito uma vez e eles são replicados para filiais. Só o squid.conf que não replico.

Por isso que queria criar essas "variáveis."

zekkerj

Mas com que frequência vc faz alteração nas ACLs? Se faz muito frequentemente, é sinal de que sua configuração não está estável ainda. E nesse caso, vc precisa primeiro estabilizar, pra depois replicar pras unidades remotas.

Como eu te disse, não há "variáveis", até onde eu sei.

Em último caso, veja se não há alguma diretiva "include" que você possa usar pra dividir sua configuração em arquivos separados.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D