近日,自己维护的一组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