我正在使用最新版本的puppet ,一直在逐步跟随Apress“Pro Puppet”指南。 我已经安装了puppet
sudo aptitude install ruby libshadow-ruby1.8 sudo aptitude install puppet puppetmaster facter
我编辑了/etc/puppet/puppet.conf来包含certname
[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以及它到达我当前工作目录前的path。
我究竟做错了什么?
我还应该提到,我没有为puppet.mydomain.com设置DNSlogging – 我看到一些提及这个问题的在线文档可能是一个问题 – 但是我确信hosts文件能让我解决这个问题。
它几乎看起来像你使用旧版本的Puppet,它不理解主子命令,并试图运行它作为一个清单,而不是。 大约0.25的地方引入了新的命令语法。
仔细检查您正在运行的版本。 目前的版本应该是2.7。 我经常发现distros打包旧版本。 例如,Ubuntu 10.04LTS安装了0.25.4,这很古老。
要找出puppet包的版本,运行:
sudo apt-cache policy puppet
Martijn是对的 。 你的傀儡版本肯定比2.6大。 你运行的是Ubuntu还是Debian的旧版本? 挤压已经包括2.6和Ubuntu 11包括2.7。 如果你在Lenny上,你可以在backports上find更新版本的Puppet。 而且,如果没有任何帮助,我认为puppetlabs有一个较新的木偶版本的存储库,尽pipe它可能会给你一些ruby版本的麻烦。