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

марионеточные переменные

Я пытаюсь использовать переменные в своих модулях manifest.pp без особого успеха

class mysoftware($version="dev-2011.02.04b") {
  File {
    links => follow
  }

  file { "/opt/mysoftware":
    ensure => directory
  }
  file { "/opt/mysoftware/share":
    source => "puppet://puppet/mysoftware/air/$version",
    recurse => "true",
  }
  }

Это не работает, когда я назначаю это узлу через файл nodes.pp.

Я использую puppetmaster 2.6.4, клиенты puppetd - 0,25

Я считаю, что вам нужно ссылаться на это так:

source => "puppet://puppet/mysoftware/air/${version}",

Вот как я использую нечто подобное:

class aliases($al="aliases") {
    file { "/etc/aliases":
        mode  => 640,
        source => "puppet:///files/sendmail/${al}",
        owner => "root",
        group => "root",
        before  => Exec["create aliases db"]
    }

     exec { "new_aliases":
        command => "/usr/bin/newaliases",
        subscribe => File["/etc/aliases"],
        alias => "create aliases db",
        refreshonly => true,
     }
}

На что я ссылаюсь из manifest / nodes.pp. На самом деле мне не нужно делать это таким образом, но я настроил и протестировал от вашего имени (другие мои примеры были бы намного длиннее). Работает как шарм.

Вы используете 2.6 или старше? Параметризованные классы появились впервые в версии 2.6, поэтому, если вы используете старую версию, это не должно работать.