Я пытаюсь сохранить нестандартное расположение хостов, используя тип ресурса хостов puppet.Так как это нестандартный файл hosts, его содержимое не «предварительно выбирается» марионеткой, и тогда невозможно выполнить что-то вроде очистки записей.Чтобы обойти проблему, я хочу удалить файл, прежде чем puppet применяет какие-либо изменения к этому файлу.Однако я не хочу удалять файл каждый раз, когда запускается puppet, а только если есть что-то, что нужно изменить.Есть ли способ применить конфигурации для ресурса, только если он собирается что-то изменить?
Сейчас я определяю хосты через hiera и использую функцию create_resources для получения требуемых ресурсов хостов.
create_resources(host,$host_entries)
Чтобы убедиться, что других записей нет, моя самая простая идея - убедиться, что файл не существует, непосредственно перед применением конфигурации хоста:
file { '/nonstandard/hosts':
ensure => absent,
}
При этом хосты будут всегдаудаляется, даже если нечего менять.Как это будет в 99 процентах случаев.Так что варианты, которые я должен удалить файл только в случае create_resources(host,$host_entries)
, действительно принесут что-то новое.Может быть, есть другой и более простой подход?