Назад | Перейти на главную страницу

Несколько site.pp для одних и тех же узлов

Мне нужно написать несколько файлов 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