Você não pode fazer o que está tentando fazer aqui com arquivos de configuração de vinculação. A variável $IP
não pode ser definida como uma variável de ambiente.
Normalmente, o que é feito para uma situação como esta é usar um script ou um mecanismo de modelagem que pode expandir essas variáveis (elas são tecnicamente chamadas de macros, na maior parte do tempo), onde o mecanismo de modelagem expandirá o arquiva enquanto eles estão sendo implantados.
Um com o qual eu estou mais familiarizado é chamado de Cheetah . Ele é usado por um sistema de provisionamento que eu costumava usar para implantar sistemas, chamado Cobbler . Existem muitos desses sistemas, como o Puppet , Chef , cfengine , Sal , etc .
Exemplo de modelo de chita
Aqui está um exemplo muito simples que ilustra algumas das sintaxes básicas da Cheetah.
Fonte: link
<html>
<head><title>$title</title></head>
<body>
<table>
#for $client in $clients
<tr>
<td>$client.surname, $client.firstname</td>
<td><a href="mailto:$client.email">$client.email</a></td>
</tr>
#end for
</table>
</body>
</html>
Aqui, as macros $client.email
, $client.firstname
e $title
serão expandidas pelo Cheetah com valores reais no tempo de execução. Esses mecanismos são razoavelmente capazes, até mesmo a capacidade de realizar loops, como o $client
acima.
Mas se suas necessidades forem escassas, eu montaria um script de shell para expandir essas macros $IP
no tempo de implantação. Você pode usar sed
ou bash
para construir um script que não seria muito difícil de fazer.
Você finalmente estará jogando esse tipo de jogo:
Exemplo
$ IP=1.2.3.4
$ sed -i "s/\$IP/$IP/g" sample.conf
$ cat sample.conf
;The Variables here are NIC and IP
; BIND data file for overridden IPs
;
$TTL 86400
@ IN SOA ns1 root (
2012100401 ; serial
604800 ; refresh 1w
86400 ; retry 1d
2419200 ; expiry 4w
86400 ; minimum TTL 1d
)
; need atleast a nameserver
IN NS ns1
; specify nameserver IP address
ns1 IN A 1.2.3.4 ; external IP from $NIC
; provide IP address for domain itself
@ IN A 1.2.3.4 ; external IP from $NIC
; resolve everything with the same IP address as ns1
* IN A 1.2.3.4 ; external IP from $NIC