我该如何修复 Puppet 拒绝启动并要求“master.pp”的问题?

我该如何修复 Puppet 拒绝启动并要求“master.pp”的问题?

我正在使用最新版本,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,并且它之前的路径是我当前的工作目录。

我究竟做错了什么?

我还应该提到,我没有设置 DNS 记录puppet.mydomain.com- 我看到一些在线文档提到这可能是一个问题 - 但我很确定该hosts文件可以让我解决这个问题。

答案1

看起来您使用的是旧版本的 Puppet,它不理解 master 子命令,而是尝试将其作为清单运行。大约在 0.25 版中引入了新的命令语法。

仔细检查你正在运行的版本。当前版本应该是 2.7。我经常发现发行版打包了旧版本。例如,Ubuntu 10.04LTS 安装的是 0.25.4,这个版本相当古老。

答案2

要找出 puppet 包的版本,请运行:

sudo apt-cache policy puppet

答案3

马丁正确的。您的 puppet 版本肯定比 2.6 旧。您运行的是旧版本的 Ubuntu 或 Debian 吗?Squeeze 已经包含 2.6,而 Ubuntu 11 包含 2.7。如果您使用的是 Lenny,您可以在 backports 上找到较新版本的 Puppet。如果这些都无济于事,我认为 puppetlabs 有一个较新版本的 puppet 存储库,尽管它可能会给您的 ruby​​ 版本带来一些麻烦。

相关内容