Также хотелось бы сохранить возможность вручную редактировать hosts-файл, хотя бы первые 10 строк.
#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
Иметь эти записи хостов внизу / etc / hosts, было бы идеально. Каков наилучший способ сделать это? Есть ли лучший способ, чем написание 8 хост-строк манифеста?
# create a simple hostname and ip host entry
host { 'front-01':
ip => '192.168.1.103',
}
Могут быть группы серверов, которым требуются разные IP-адреса / имена хостов в их / etc / hosts. Я бы использовал шаблон, но это означает, что люди больше не могут вносить ручные изменения в свои / etc / hosts, так как они будут перезаписаны шаблоном.
Используйте функциональность augeaus, встроенную в куклу. Вы хотите что-то вроде
источник
Один из случаев, когда вы можете использовать augeas для файла / etc / hosts, в дополнение к типам ресурсов hosts, - это дублирование строк IP-адресов.
Тип ресурса hosts вполне устраивает линии с одинаковыми IP-адресами. (Google это; где чрезвычайно мало случаев, когда это может быть хорошей идеей.)
Но если вы не хотите дублировать IP-адреса в вашем файле / etc / hosts - тогда augeas может вам помочь. хосты не помогают для этого.
источник
Просто метод, без кода:
Используйте шаблонизацию или что-то еще, что обновляет файл
/etc/hosts.puppet
с четкими начальными и конечными строкамии иметь в качестве зависимости сценарий оболочки, который обрезает этот сегмент
/etc/hosts
и заменяет его содержимым/etc/hosts.puppet
.Имейте в виду, что в этом случае возникает состояние гонки, когда пользователи редактируют файл, а прогон кукол изменяет его. Кроме того, попросите своих пользователей редактировать файл
/etc/hosts.user
и создавать/etc/hosts
из обоих файлов каждый раз, когда один из них изменяется.источник