我正在使用最新版本,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