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

Ошибка переопределения переменной марионетки

Я новичок в марионетке и столкнулся с некоторыми проблемами в качестве темы, некоторое время гуглил, но не смог найти подходящий ответ. Мои проблемы таковы:

Я определил глобальные переменные $ puppetserver в /etc/puppet/manifests/site.pp, как показано ниже:

case $domain {
    /domain2/:{
    $puppetserver = "puppetserver2"
    include migrate
    }
    default:{
    $puppetserver = "puppetserver3"
    }
}

в определении узла серверов в domain2 в manifest / labs / domain2 / nodes.pp

node 'server1.domain2.com' {
    $puppetserver = "puppetserver3"
 }

модуль миграции используется для марионеточной миграции, полученной из Интернета, как показано ниже:

в модулях / миграции / манифестах / config.pp

class migrate::config  {
  if $puppetserver == undef {
    fail('You must define the targeted Puppet master to perform the migration')
  } 

  augeas { 'puppet.conf.migrate':
    context => '/files/etc/puppet/puppet.conf/main',
    changes => [
       "set server $puppetserver",
]
}

}

Поскольку узел server1.domain2.com может соответствовать параметру domain2 в site.pp, поэтому он применяет модуль миграции, он должен получить puppetserver3 для $ puppetserver, определенный в блоке узла, а затем быть обновлен в '/ etc / puppet / puppet.conf 'от Augeas, но фактический результат: он обновляется как puppetserver2, который был определен в site.pp. Я не могу понять, почему не работает переопределение. Не могли бы вы помочь проверить, что не так?

И в качестве теста:

Когда я попытался переместить модуль 'include migrate' из site.pp в блок node 'server1.domain2.com' {} файла nodes.pp, он мог работать должным образом.