近日,自己维护的一组Puppet Agent机器,出现了如下报错:

[root@client src]# puppetd --test --server server.cn7788.com
notice: Run of Puppet configuration client already in progress; skipping

形成这种原因的可能之一:就是我们已经在客户端以服务的形式启动了puppet进程命令,但是现在我们又用puppetd --test --server命令来主动连接 puppetmaster,所以会导致客户端报错。

解决方法:

之前用网上的方法,删除puppet.lock文件,命令如下:

rm /var/lib/puppet/state/puppet.lock

发现故障依旧;后来发现出现此现象是由于/etc/puppet/manifests/site.pp配置文件没有写正确,我们将其改正就行了,其实以后像puppet server里面的site.pp和init.pp有比较大的改动时,最好先用puppet parser validate命令先检查,示例如下:

[root@server manifests]# puppet parser validate site.pp
err: Could not parse for environment production: Syntax error at 'source'; expected '}' at 
/etc/puppet/manifests/site.pp:8
err: Try 'puppet help parser validate' for usage

如上所示,很明显提标示site.pp第8行有错误,提示我们改正,改正以后故障排除,事实上puppet parser validate命令用于puppet server语法非常有用,示例如下:

puppet parser validate node.pp
node.pp本身语法就存在错误,第10行缺少}号,报错信息如下:
err: Could not parse for environment production: Syntax error 
at end of file; expected '}' at /etc/puppet/manifests/node.pp:10
err: Try 'puppet help parser validate' for usage