También me gustaría mantener la capacidad de editar manualmente el archivo hosts, al menos las primeras 10 líneas.
#Public IP's - eth0
192.168.1.103 front-01
192.168.1.106 front-02
#Private IP's - eth1
192.169.40.201 priv0-0
192.169.40.202 priv0-1
192.169.40.207 priv1-0
192.169.40.208 priv1-1
#Virtual IP's - eth0:1
192.169.50.202 vip-01
192.169.50.205 vip-02
Tener estas entradas de hosts en la parte inferior de / etc / hosts, sería perfecto. ¿Cuál es la mejor manera de hacer esto? ¿Hay una mejor manera que escribir un manifiesto de 8 líneas de host?
# create a simple hostname and ip host entry
host { 'front-01':
ip => '192.168.1.103',
}
Puede haber grupos de servidores que necesiten diferentes IP / nombres de host en sus / etc / hosts. Usaría una plantilla, pero eso significa que las personas ya no pueden hacer cambios manuales en sus / etc / hosts, ya que la plantilla los sobrescribiría.
Utilice la funcionalidad augeaus integrada en la marioneta. Quieres algo como
fuente
Un caso en el que puede elegir usar augeas para el archivo / etc / hosts, además de los tipos de recursos de hosts, es para líneas de direcciones IP duplicadas.
El tipo de recurso hosts con bastante felicidad permite líneas con las mismas direcciones IP. (Busca en Google; ¿dónde hay casos extremadamente oscuros cuando puede ser una buena idea?)
Pero si no desea direcciones IP duplicadas en su archivo / etc / hosts, entonces augeas puede ayudarlo. hosts no es de ayuda para eso.
fuente
Solo un método, sin código:
Use plantillas o lo que sea que actualice un archivo
/etc/hosts.puppet
con líneas claras de inicio y finy tiene un script de shell como dependencia que corta este segmento
/etc/hosts
y lo reemplaza con el contenido de/etc/hosts.puppet
.Tenga en cuenta que esto tiene una condición de carrera cuando los usuarios editan el archivo y la ejecución de la marioneta lo cambia. Alternativamente, indique a sus usuarios que editen un archivo
/etc/hosts.user
y construyan a/etc/hosts
partir de ambos archivos cada vez que uno cambie.fuente