Как использовать переменную в манифесте марионеток?

Я использую модуль WSUS с Puppet Master на Centos 7.2. Мои серверы Puppet Agent работают под управлением Windows Server 2012.

Я хочу использовать манифест с переменной. Однако, когда на сервере Puppet Agent запущен марионеточный агент, отображается «ошибка 400, синтаксическая ошибка». Я попытался переписать манифест и все возможные варианты. Я все время получаю ошибку.

Вот один пример манифеста:

class excellent {
    class { 'wsus_client':
       $cool = 'Saturday'
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
}
}

Я пробовал назначать переменную в фигурных скобках {}. Я пробовал использовать $ LOAD_PATH, --custom-dir и FACTERLIB. Но я не мог понять, как использовать любой из этих трех.

Я хочу изменить переменную в одном месте и использовать ее в рамках ее родительского класса. Что мне делать?

3
задан 15 September 2016 в 02:47
2 ответа

Вы пробовали этот способ?

class excellent {
  $cool = 'Saturday'

  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}

Или, таким образом

class excellent (
  $cool = 'Saturday'
){
  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}
7
ответ дан 3 December 2019 в 05:02

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

$cool = 'Saturday'

Объявление вашего класса должно выглядеть так.

class {'namevar':
  a => 'a',
  b => 'b',
  c => 'c'
}
1
ответ дан 3 December 2019 в 05:02

Теги

Похожие вопросы