Я использую самую последнюю версию puppet
и шаг за шагом следовали руководству Apress "Pro Puppet". Я установил puppet
sudo aptitude install ruby libshadow-ruby1.8
sudo aptitude install puppet puppetmaster facter
Я редактировал /etc/puppet/puppet.conf
включить имя сертификата
[master]
certname=puppet.mydomain.com
Я отредактировал / etc / hosts и добавил следующую строку
127.0.0.1 puppet.mydomain.com puppet
Я установил имя хоста сервера
echo "puppet.mydomain.com" > /etc/hostname
hostname -F /etc/hostname
А потом я пытаюсь бежать puppet
из командной строки.
puppet master --verbose --no-daemonize
И puppet
дает мне эту ошибку:
Could not parse for environment production:
Could not find file /master.pp
Я запускаю все команды с sudo
и последняя строка сообщения об ошибке всегда говорит, что он не может найти master.pp
и путь до моего текущего рабочего каталога.
Что я делаю не так?
Я также должен упомянуть, что у меня нет DNS-записи для puppet.mydomain.com
- Я видел онлайн-документацию, в которой упоминалось, что это может быть проблемой, однако я был почти уверен, что hosts
файл позволил бы мне обойти это.
Кажется, что вы используете старую версию Puppet, которая не понимает главную подкоманду и вместо этого пытается запустить ее как манифест. Где-то около 0.25 был введен новый синтаксис команд.
Еще раз проверьте, какая у вас версия. Текущая версия должна быть 2.7. Я часто обнаруживал, что дистрибутивы содержат более старые версии. Например, Ubuntu 10.04LTS устанавливает 0.25.4, что довольно давно.
Чтобы узнать версию пакета марионеток, запустите:
sudo apt-cache policy puppet
Мартейн является право. Ваша версия марионетки определенно старше 2.6. Вы используете старую версию Ubuntu или Debian? Squeeze уже включает 2.6, а Ubuntu 11 включает 2.7. Если вы используете Lenny, вы можете найти более новую версию Puppet на бэкпорте. И, если ничего из этого не помогает, я думаю, что у puppetlabs есть репозиторий для новых версий марионеток, хотя это может вызвать некоторые проблемы с версией ruby.