mirror of
https://github.com/inspec/inspec
synced 2024-11-30 00:20:28 +00:00
35d2b9c78a
Change "that users Ruby variables" to "that uses Ruby variables". Obvious fix. Signed-off-by: Ken Crouch <kcrouch@chef.io>
176 lines
4.4 KiB
Markdown
176 lines
4.4 KiB
Markdown
---
|
|
title: Chef InSpec Reporters
|
|
---
|
|
|
|
# Chef InSpec Reporters
|
|
|
|
Introduced in Chef InSpec 1.51.6
|
|
|
|
A `reporter` is a facility for formatting and delivering the results of a Chef InSpec auditing run.
|
|
|
|
Chef InSpec allows you to output your test results to one or more reporters. Configure the reporter(s) using either the `--reporter` option or as part of the general config file using the `--config` (or `--json-config`, prior to v3.6) option. While you can configure multiple reporters to write to different files, only one reporter can output to the screen(stdout).
|
|
|
|
## Syntax
|
|
|
|
You can specify one or more reporters using the `--reporter` cli flag. You can also specify a output by appending a path separated by a colon.
|
|
|
|
Output json to screen.
|
|
|
|
```bash
|
|
inspec exec example_profile --reporter json
|
|
# or explicitly specifying output to STDOUT:
|
|
inspec exec example_profile --reporter json:-
|
|
```
|
|
|
|
Output yaml to screen
|
|
|
|
```bash
|
|
inspec exec example_profile --reporter yaml
|
|
# or
|
|
inspec exec example_profile --reporter yaml:-
|
|
```
|
|
|
|
Output cli to screen and write json to a file.
|
|
|
|
```bash
|
|
inspec exec example_profile --reporter cli json:/tmp/output.json
|
|
```
|
|
|
|
Output nothing to screen and write junit and html to a file.
|
|
|
|
```bash
|
|
inspec exec example_profile --reporter junit:/tmp/junit.xml html:www/index.html
|
|
```
|
|
|
|
Output json to screen and write to a file. Write junit to a file.
|
|
|
|
```bash
|
|
inspec exec example_profile --reporter json junit:/tmp/junit.xml | tee out.json
|
|
```
|
|
|
|
If you wish to pass the profiles directly after specifying the reporters you will need to use the end of options flag `--`.
|
|
|
|
```bash
|
|
inspec exec --reporter json junit:/tmp/junit.xml -- profile1 profile2
|
|
```
|
|
|
|
If you are using the cli option `--config`, you can also set reporters.
|
|
|
|
Output cli to screen.
|
|
|
|
```json
|
|
{
|
|
"reporter": {
|
|
"cli" : {
|
|
"stdout" : true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Output cli to screen and write json to a file.
|
|
|
|
```json
|
|
{
|
|
"reporter": {
|
|
"cli" : {
|
|
"stdout" : true
|
|
},
|
|
"json" : {
|
|
"file" : "/tmp/output.json",
|
|
"stdout" : false
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Supported Reporters
|
|
|
|
The following are the current supported reporters:
|
|
|
|
### cli
|
|
|
|
This is the basic text base report. It includes details about which tests passed and failed and includes an overall summary at the end.
|
|
|
|
### json
|
|
|
|
This reporter includes all information about the profiles and test results in standard json format.
|
|
|
|
### json-min
|
|
|
|
This reporter is a redacted version of the json and only includes test results.
|
|
|
|
### yaml
|
|
|
|
This reporter includes all information about the profiles and test results in standard yaml format.
|
|
|
|
### documentation
|
|
|
|
This reporter is a very minimal text base report. It shows you which tests passed by name and has a small summary at the end.
|
|
|
|
### junit
|
|
|
|
This reporter outputs the standard junit spec in xml format.
|
|
|
|
### progress
|
|
|
|
This reporter is very condensed and gives you a `.`(pass), `f`(fail), or `*`(skip) character per test and a small summary at the end.
|
|
|
|
### json-rspec
|
|
|
|
This reporter includes all information from the rspec runner. Unlike the json reporter this includes rspec specific details.
|
|
|
|
### html
|
|
|
|
This renders html code to view your tests in a browser. It includes all the test and summary information.
|
|
|
|
## Automate Reporter
|
|
|
|
The `automate` reporter type is a special reporter used with [Chef Automate](https://automate.chef.io/). To use this reporter you must pass in the correct configuration via a json config `--config`.
|
|
|
|
Example config:
|
|
|
|
```json
|
|
"reporter": {
|
|
"automate" : {
|
|
"stdout" : false,
|
|
"url" : "https://YOUR_A2_URL/data-collector/v0/",
|
|
"token" : "YOUR_A2_ADMIN_TOKEN",
|
|
"insecure" : true,
|
|
"node_name" : "inspec_test_node",
|
|
"environment" : "prod"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Mandatory fields
|
|
|
|
#### stdout
|
|
|
|
This will either suppress or show the automate report in the CLI screen on completion
|
|
|
|
#### url
|
|
|
|
This is your Automate 2 url. Append `data-collector/v0/` at the end.
|
|
|
|
#### token
|
|
|
|
This is your Automate 2 token. You can generate this token by navigating to the admin tab of A2 and then api keys.
|
|
|
|
### Optional fields
|
|
|
|
#### insecure
|
|
|
|
This will disable or enable the ssl check when accessing the Automate 2 instance.
|
|
|
|
#### node_name
|
|
|
|
This will be the node name which shows up in Automate.
|
|
|
|
#### node_uuid
|
|
|
|
This will be the node UUID which shows up in Automate. You will want to use a single static UUID per node for all your reports.
|
|
|
|
#### environment
|
|
|
|
This will set the environment metadata for Automate.
|