Details
-
Bug
-
Status: Closed
-
Normal
-
Resolution: Fixed
-
SERVER 2.0.0
-
None
-
1
-
Server Emerald 2015-05-13, Server Emerald 2015-05-27
Description
I am attempting to use the /puppet/v3/status API to query the status of a Puppet Server. My goal is to be able to use our Nagios monitoring system to test not just whether Puppet Server is accepting connections on TCP port 8140, but whether the Puppet Server is alive and functioning.
Based on the API docs, I am using the follow curl command for testing:
$ curl -v -k 'https://puppet-ca.example.org:8140/puppet/v3/status/ignored?environment=ignored'
|
The /puppet/v3/status service is permitted in /etc/puppetlabs/puppet/auth.conf:
path /puppet/v3/status
|
method find
|
allow *
|
However, Puppet Server returns Not found:
> GET /puppet/v3/status/ignored?environment=ignored HTTP/1.1
|
> User-Agent: curl/7.29.0
|
> Host: puppet-ca.example.org:8140
|
> Accept: */*
|
>
|
< HTTP/1.1 404 Not Found
|
< Date: Wed, 22 Apr 2015 20:22:32 GMT
|
< Content-Type: text/html; charset=UTF-8
|
< Content-Length: 9
|
< Server: Jetty(9.1.z-SNAPSHOT)
|
Other services work properly. For example, if I permit the /puppet/v3/resource_type service in auth.conf, and use the Puppet client certificate to authenticate (because the /puppet/v3/resource_type service does not permit anonymous access), it works:
$ curl -v --cert /etc/puppetlabs/puppet/ssl/certs/client.example.org.pem --key /etc/puppetlabs/puppet/ssl/private_keys/client.example.org.pem --cacert /etc/puppetlabs/puppet/ssl-ca/ca/ca_crt.pem 'https://puppet-ca.example.org:8140/puppet/v3/resource_type/yum?environment=production'
|
[lines omitted]
|
> GET /puppet/v3/resource_type/yum?environment=production HTTP/1.1
|
> User-Agent: curl/7.29.0
|
> Host: puppet-ca.example.org:8140
|
> Accept: */*
|
>
|
< HTTP/1.1 200 OK
|
< Date: Wed, 22 Apr 2015 20:29:37 GMT
|
< Content-Type: text/pson;charset=ISO-8859-1
|
< X-Puppet-Version: 4.0.0
|
< Content-Length: 78
|
< Server: Jetty(9.1.z-SNAPSHOT)
|
<
|
* Connection #0 to host puppet-ca.example.org left intact
|
{"line":80,"parameters":{"installonly_limit":"3"},"name":"yum","kind":"class"}
|
So, in conclusion, I'm using the API as it is documented, but the /puppet/v3/status service simply doesn't seem to work.
For production monitoring purposes, we'd really, really like for this to work.
QA:
Risk Assessment: Medium (QA plans Functional Review, but no additional automated testing because this will be replaced in the near future. QA will target automated testing against the long term solution.)
Probability: High
Severity: Medium
Attachments
Issue Links
- relates to
-
SERVER-475 expose status information over HTTP
-
- Closed
-
- links to