Você pode anunciar o alias por meio da API do Avahi com o Avahi.EntryGroup.AddRecord: exemplo do python .
Uma solução detalhada para usar o script é fornecida em SO
Atualmente, uso o Vagrant e o Chef para provisionar VMs linux individuais para aplicativos diferentes.
Esses aplicativos são endereçáveis por domínio a partir do host, sem precisar de mais nada configurado no host. Isto é conseguido usando o avahi no convidado linux. Em seguida, o host acessa por meio do nome do host do convidado, como:
myguest1.local -> VM#1
myguest2.local -> VM#2
Agora tenho outro aplicativo prestes a ser instalado, que para replicar o servidor de produção deve ter dois hosts virtuais Apache endereçáveis dentro da VM, como:
myguest3.local
-> VM#3
myguest4.local
Também posso conseguir isso completamente com o Vagrant / Chef, sem precisar de nenhuma modificação na máquina host?
Você pode anunciar o alias por meio da API do Avahi com o Avahi.EntryGroup.AddRecord: exemplo do python .
Uma solução detalhada para usar o script é fornecida em SO
Existe um plugin do Vagrant para isso: vagrant-hostsupdater
Extrair da página do github:
This plugin adds an entry to your /etc/hosts file on the host system.
On up, resume and reload commands, it tries to add the information, if its not already existant in your hosts file. If it needs to be added, you will be asked for an administrator password, since it uses sudo to edit the file.
On halt and destroy, those entries will be removed again.
Há também vagrant-hostmanager , que suporta máquinas Windows. Eu não uso, então qualquer feedback é bem-vindo.
Extrair da página do github:
vagrant-hostmanager is a Vagrant 1.1+ plugin that manages the /etc/hosts file on guest machines (and optionally the host). Its goal is to enable resolution of multi-machine environments deployed with a cloud provider where IP addresses are not known in advance.
Assim, parece que ambos os plugins automatizam o processo de adicionar entradas a /etc/hosts
Ele certamente funcionará, mas você precisará definir manualmente entradas para os hosts virtuais no arquivo / etc / hosts dos hosts. Essa deve ser a única etapa necessária na máquina host.