Ok, esta será uma questão um pouco longa. Primeiro, alguns antecedentes: Estou desenvolvendo e testando sites em um Macbook (OSX Lion), usando o Parallels para executar várias instalações do Windows para testes do IE. Eu precisava de uma maneira de inicializar um novo projeto da web por meio de um arquivo BASH, configurando automaticamente meu host virtual para o projeto e assim por diante. Eu precisava fazer com que minha VM reconhecesse o host virtual, sem que eu tivesse que editar manualmente O arquivo windows hosts da VM, mas para fazer isso, eu precisava do meu script BASH no OSX para poder editar o arquivo hosts na VM do Windows.
Eu ainda não tenho certeza se isso é possível, mas ao tentar descobrir isso, me deparei com um post no blog. Este post do blog falou sobre BIND e usar zonas nomeadas e tudo para configurar um servidor DNS para obter meus virtualhosts reconhecidos pelas VMs. Ele tinha um formulário que pedia meu endereço IP ou algo assim e gerava um script que eu usava para configurar tudo e funcionava perfeitamente! O problema, no entanto, é por qualquer razão idiota, eu não coloquei o post no blog. Além disso, quando fiz o upgrade para o Parallels 8, ele quebrou alguma coisa e a coisa toda parou de funcionar. Pesquisei e pesquisei a postagem do blog e não consigo encontrá-la novamente.
O que eu sei sobre o que o script fez, no entanto, foi definitivamente usado o IP do adaptador Parallels Shared # 0 (192.168.2.2) no arquivo de zona. Não sei por que funcionou antes de fazer o upgrade para o Parallels 8, mas depois de fazer o upgrade, meus hosts virtuais só funcionavam (mesmo em minha máquina local) enquanto eu fazia o Parallels rodar. Ele também criou uma pasta em / etc / chamada resolver, com um arquivo para o meu host virtual nela. Eu não tenho ideia do porque funcionou sem paralelos.
De qualquer forma, desde que desisti de tentar encontrar o post do blog, comecei a tentar descobrir toda a coisa do bind.
A base de host virtual que eu quero usar é stupid.local .. então, se eu tiver um site chamado "test", ele será acessado no link . Eu tenho o host virtual principal configurado no arquivo httpd.conf do apache corretamente e meu script BASH gera os arquivos de host virtual do site individual para mim (que, eu sei para um trabalho de fato). Até agora, configurei o bind / named através do terminal e o adicionei ao meu arquivo /etc/named.conf:
zone "local" IN {
type master;
file "local.zone";
allow-update { none; };
};
meu arquivo /var/named/local.zone é assim:
$TTL 60
$ORIGIN local.
@ 1D IN SOA localhost. root.localhost. (
46 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS localhost.
1D IN A 127.0.0.1
*.local. 60 IN A 192.168.1.138
stupid.local. 60 IN A 192.168.1.138
*.stupid.local. 60 IN A 192.168.1.138
... o 192.168.1.138 é o meu IP no trabalho. Como você pode adivinhar, essa configuração funciona e é acessível pela minha VM do Windows por meio do IE, mas apenas quando estou em minha rede no trabalho. Quando eu levo meu Macbook para casa, eu tenho que mudar esse endereço IP para o da minha rede doméstica, que é 192.168.1.4. Além disso, se eu alterar esse endereço IP para 192.168.2.2 (o IP do adaptador Parallels Shared # 0), ele funciona e é acessível pela minha VM do Windows por meio do IE, mas é claro, somente quando o Parallels está em execução. Alterá-lo para 127.0.0.1 faz com que a configuração funcione apenas no OSX e não na minha VM.
Então, o que eu preciso é criar ou acessar algum tipo de endereço IP, que vai ficar com o meu Macbook e não mudar, que eu possa usar com o BIND para poder acessar meus hosts virtuais no * .stupid. local em minha máquina local OSX e dentro da VM Parallels.Com muito tempo, eu sei, mas eu queria ser meticuloso. Então ... alguma ideia? Ou quaisquer soluções alternativas?