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

Сбой применения манифестов: использование одинаковых имен хостов в двух разных файлах манифестов

написали следующие манифесты, используя tidy resource для удаления старых файлов войны

$ cat /home/kar/cleanwars.pp
   node 'node-010.example.com' {
        tidy { '/home/kar/temp/':
        path=> '/home/kar/temp/',
        age => '1w',
        recurse => true,
        matches => [ 'myapp-*.war','hisapp-*.war' ],
   }
 }

Но при выполнении я вижу следующую ошибку.

2017-04-06 16:24:32,939 ERROR [qtp1760700677-69] [puppet-server] Puppet Node 'Node-010.example.com' is already defined at line 1; cannot redefine at line 9 on node Node-003.example.com

Есть еще один файл манифестов (site.pp) в том же каталоге, где мы используем те же хосты, что определены выше. Этот файл манифестов выглядит следующим образом

 $version="6.9"
 node default{
}

node 'node-003.example.com','node-010.example.com' {
file{"myapp.war":
    path   =>"/data/dist/apps/myapp-$version.war",
    ensure => present,
    group  => 'admin',
    owner  => 'tomcat',
    source => "puppet:///modules/helloworld/myapp-$version.war",
  }

Почему я не могу использовать то же самое hostname в двух разных файлах манифеста?

Узел не может иметь несколько объявлений, вы должны определить классы и использовать их в объявлениях узлов.

Используя hiera, вы также можете назначать классы узлов на основе таких условий, как имя узла.