Я новичок в Puppet, и у меня возникли проблемы с модулем Apache Puppet-Labs http://forge.puppetlabs.com/puppetlabs/apache. Я использую его вместе с Vagrant как бессерверную установку (если это изменит ваш ответ).
В своей точке входа я вызываю класс apache.pp, который выглядит так:
class {'apache::mod::php':
case $::operatingsystem {
'RedHat', 'Fedora', 'CentOS', 'Scientific', 'SLC', 'Ascendos', 'CloudLinux', 'PSBM', 'OracleLinux', 'OVS', 'OEL': {
}
default: {
$osfamily = $::operatingsystem
}
}
}
Однако, когда я запускаю марионетку, я получаю синтаксическую ошибку:
Error: Could not parse for environment production: Syntax error at '::operatingsystem'; expected '}' at /tmp/vagrant-puppet/manifests/classes/apache.pp:2
Я пошел по этому пути, потому что во время отладочных прогонов ранее я обнаружил, что марионетка пыталась использовать "apt" в поле centos. Я предположил, что мне нужно установить тип операционной системы в соответствии с информацией о «типах» марионеточных лабораторий на странице марионеточной кузницы.
Единственное, что я должен отметить для тех, кто не знает о работе с vagrant, * .pp используются совместно с хост-системой, которой в данном случае является Debian. Может ли это быть причиной? Я не думаю, что это так.
Прошу прощения, если это глупый вопрос. Спасибо.
Вам не нужно каким-либо образом устанавливать операционную систему - это сделает Facter. Бегать facter
в системе, чтобы убедиться в правильности установки фактов.
Какую версию Puppet вы используете? Вроде задыхается от использования $::
как явная спецификация верхней области видимости, которая должна нормально работать в любой последней версии.