Мне нужно написать несколько файлов site.pp для одних и тех же хостов. Это дает мне следующую ошибку
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Node 'default' is already defined at line 2; cannot redefine at line 2 on node node-002.example.com
Например :
Мой первый site.pp
vi hosts-site.pp
default{
}
node "node-002.example.com" {
## Rules here to update /etc/hosts
}
следующий Site.pp
с тем же узлом, но с разными операциями.
vi fstab-site.pp
default{
}
node "node-002.example.com" {
## Rules here to update /etc/fstab
}
Как добиться того же. Нам нужно написать несколько операций для одних и тех же узлов, для которых нам нужно поддерживать разные site.pp
У Puppet не должно быть кратных site.pp.
Если ваша цель - применить вручную одну из ваших конфигураций, вы можете использовать параметр --tags. Кстати, вы должны настроить свой агент так, чтобы он действовал как нет поэтому он не будет применять ваши изменения, когда вы этого не хотите.
Итак, у вас может быть такой site.pp:
node "node-002.example.com" {
class {'hosts_configuration'}
class {'fstab_configuration'}
}
куда hosts_configuration
и fstab_configuration
это модули, которые настраивают то, что вы хотите.
Затем, когда вы хотите применить конфигурацию хостов, вы можете использовать на своем узле-002
puppet agent -t --tags=hosts_configuration
И он применит необходимую конфигурацию для хостов.
Если вы действительно хотите иметь несколько site.pp, вы можете сделать это с помощью окружений:
https://docs.puppet.com/puppet/4.10/environments.html#about-environments