adiciona alias para localhost em / etc / hosts usando Augeas

0

Estou tentando usar augtool para editar automaticamente meu /etc/hosts , pois desejo adicionar um alias para localhost (para que eu possa testar meu servidor da Web com um nome de host diferente, localy).

Eu tenho procurado por todos os usuários para encontrar uma boa documentação.

Eu gostaria de encontrar o nó com ipaddr de 127.0.0.1 e adicionar um alias a ele. Eu também gostaria de encontrar uma boa documentação para Augeas.

    
por ctrl-alt-delor 17.09.2017 / 19:28

2 respostas

1

Embora adicionar um alias a um host não seja realmente difícil, o que geralmente é mais interessante é garantir que uma entrada de host tenha um alias, ou seja, tornar a operação idempotente.

Veja como você pode fazer isso com o Augeas:

set /files/etc/hosts/*[ipaddr="127.0.0.1"]/alias[.="mycouchdb"] "mycouchdb"

que só adicionará o alias se ainda não existir.

Explicação:

alias[.="mycouchdb"] refere-se ao alias com o valor mycouchdb (pois . refere-se ao nó atual).

Quando ainda não houver alias com o valor mycouchdb , alias[.="mycouchdb"] não corresponderá a nada e o Augeas criará um nó com o rótulo alias e valor mycouchdb . A regra quando o nó não existe é usar o rótulo do caminho sem filtros, nesse caso alias , para criar um novo nó de rótulo e atribuir o valor mycouchdb

Quando já houver um alias, a expressão corresponderá e o comando set substituirá o valor por mycouchdb , o que não fará nada.

    
por 19.09.2017 / 09:48
1

Para realizar a tarefa específica de "localizar o nó com ipaddr de 127.0.0.1 e adicionar um alias a ele"

Faça

augtool -b -s set '/files/etc/hosts/*[ipaddr = "127.0.0.1"]/alias[last()+1]' mycouchdb

Isso procura no arquivo /etc/host/ qualquer nó ( * ), que tem um subnó de ipaddr=127.0.0.1 e adiciona alias de mycouchdb

Documentação

O caminho é explicado aqui link ele usa XPath.

Desculpe, não consigo encontrar outra coisa boa.

    
por 17.09.2017 / 19:28