Spec-Zone.ru › Chef 18

Отчётчики Chef InSpec

[править на GitHub]

Введён в Chef InSpec 1.51.6

Отчётчик — это механизм для форматирования и предоставления результатов выполнения аудита Chef InSpec.

Chef InSpec позволяет выводить результаты ваших тестов в один или несколько отчётчиков. Настройте отчётчик(и) с помощью параметра --reporter или в файле конфигурации общего назначения с помощью параметра --config (или --json-config, до версии v3.6). Хотя вы можете настроить несколько отчётчиков для записи в разные файлы, только один отчётчик может выводить данные на экран (stdout).

Синтаксис

Вы можете указать один или несколько отчётчиков с помощью флага командной строки --reporter. Вы также можете указать вывод, добавив путь, разделённый двоеточием.

Вывод json на экран.

inspec exec example_profile --reporter json
# or explicitly specifying output to STDOUT:
inspec exec example_profile --reporter json:-

Вывод yaml на экран

inspec exec example_profile --reporter yaml
# or
inspec exec example_profile --reporter yaml:-

Вывод cli на экран и запись json в файл.

inspec exec example_profile --reporter cli json:/tmp/output.json

Не выводить ничего на экран и записать junit и html в файл.

inspec exec example_profile --reporter junit2:/tmp/junit.xml html:www/index.html

Вывод json на экран и запись в файл. Запись junit в файл.

inspec exec example_profile --reporter json junit2:/tmp/junit.xml | tee out.json

Если вы хотите передать профили непосредственно после указания отчётчиков, вам необходимо использовать флаг окончания опций --.

inspec exec --reporter json junit2:/tmp/junit.xml -- profile1 profile2

Если вы используете опцию командной строки --config, вы также можете настроить отчётчики.

Вывод cli на экран.

{
    "reporter": {
        "cli" : {
            "stdout" : true
        }
    }
}

Вывод cli на экран и запись json в файл.

{
    "reporter": {
        "cli" : {
            "stdout" : true
        },
        "json" : {
            "file" : "/tmp/output.json",
            "stdout" : false
        }
    }
}

Параметры отчётчиков

Ниже приведены параметры командной строки, которые можно использовать для изменения поведения отчётчиков. Многие из этих параметров позволяют ограничивать размер отчёта, поскольку некоторые отчётчики (например, отчётчик json-automate) имеют ограничение на общий размер отчёта, который может быть обработан.

--diff, --no-diff

Включает сравнение текстовых различий в выводе не пройденного теста (по умолчанию: true).

Используйте --no-diff для ограничения размера вывода отчёта, когда тесты содержат большое количество текстового вывода.

--filter-empty-profiles

Удаляет пустые профили (те, которые содержат нулевые управления, такие как пакеты ресурсов) из вывода отчётчика.

--reporter-backtrace-inclusion, --no-reporter-backtrace-inclusion

Включает трассировку стека кода в данных отчёта (по умолчанию: true).

Параметр --no-reporter-backtrace-inclusion можно использовать для ограничения размера отчёта, когда в выводе присутствуют большие трассировки стека кода.

--reporter-include-source

(Только отчётчик командной строки) Включает полный исходный код управлений в отчёт.

--reporter-message-truncation=N

Количество символов для обрезки сообщений об ошибках в данных отчёта (по умолчанию: нет обрезки).

Это может быть использовано для ограничения размера отчётов, когда сообщения об ошибках являются чрезвычайно большими.

Поддерживаемые отчётчики

Ниже приведены текущие поддерживаемые отчётчики:

cli

Это базовый текстовый отчёт. Он включает информацию о пройденных и не пройденных тестах и содержит общий итог в конце.

json

Этот отчётчик содержит всю информацию о профилях и результатах тестов в стандартном формате JSON. Вы можете дополнительно передать произвольные структурированные данные JSON, задав конфигурацию JSON с параметром --config.

Например:

{
    "reporter": {
      "json": {
        "stdout": true,
        "passthrough": {
          "a": 1,
          "b": false
        }
      }
    }
}

json-min

Этот отчётчик — это сокращённая версия json и включает только результаты тестов.

yaml

Этот отчётчик содержит всю информацию о профилях и результатах тестов в стандартном формате YAML.

документация

Этот отчётчик — это очень минимальный текстовый отчёт. Он показывает, какие тесты прошли по имени и содержит небольшой сводный результат в конце.

junit2

Этот отчётчик выводит стандартную спецификацию JUnit в формате XML и рекомендуется для всех новых пользователей JUnit.

junit

Этот устаревший отчётчик выводит нестандартный XML JUnit и предоставляется только для обратной совместимости.

progress

Этот отчётчик очень сжатый и предоставляет вам символ .(проход), f(не проход) или *(пропуск) за тест и небольшой сводный результат в конце.

json-rspec

Этот отчётчик содержит всю информацию из исполнителя rspec. В отличие от отчётчика json, он включает в себя специфичные для rspec детали.

html

Этот отчётчик — устаревший HTML-отчётчик RSpec, который сохраняется для обратной совместимости. Сгенерированный отчёт не осведомлён о профилях или управлениях и содержит только несортированную информацию о тестах. Большинство пользователей должны перейти к отчётчику html2 для более полных данных.

html2

Этот отчётчик — улучшенный HTML-отчётчик, который содержит полные данные о структуре профиля, управлениях и тестах. Сгенерированный отчёт отображает HTML-код для просмотра ваших тестов в браузере.

Для работы с отчётчиком html2 не требуется настройка. Однако доступны две опции — alternate_css_file и alternate_js_file, для настройки. Эти опции устанавливаются в файле конфигурации в формате JSON, который использует Chef InSpec. Подробности см. в нашем руководстве по файлам конфигурации.

Например:

{
  "version": "1.2",
  "plugins": {
    "inspec-reporter-html2": {
      "alternate_js_file":"/var/www/js/my-javascript.js",
      "alternate_css_file":"/var/www/css/my-style.css"
    }
  }
}

alternate_css_file

Указывает полный путь к расположению файла CSS, который будет прочитан и встроен в HTML-отчёт. Значение по умолчанию CSS не будет включено.

alternate_js_file

Указывает полный путь к расположению файла JavaScript, который будет прочитан и встроен в HTML-отчёт. Значение по умолчанию JavaScript не будет включено. Файл JavaScript должен реализовать по крайней мере функцию pageLoaded(), которая будет вызываться событием onload элемента HTML body.

Отчётчик Automate

Тип отчётчика automate — это специальный отчётчик, который отправляет свои результаты по сети в Chef Automate. Для использования этого отчётчика необходимо передать правильную конфигурацию через конфигурацию json --config.

Пример конфигурации:

{
    "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"
        }
    }
}

Обязательные поля

stdout

Это подавит или покажет отчёт automate в экране командной строки по завершении.

url

Это ваш URL Automate 2. В конце добавьте data-collector/v0/.

токен

Это ваш токен Automate 2. Вы можете сгенерировать этот токен, перейдя на вкладку «Администрирование» в A2, а затем в «API-ключи».

Дополнительные поля

небезопасный

Это отключит или включит проверку ssl при доступе к экземпляру Automate 2.

имя_узла

Это будет имя узла, которое отображается в Automate.

uuid_узла

Это будет UUID узла, который отображается в Chef Automate. Используйте один статический UUID для каждого узла для всех ваших отчётов. Вам необходимо указать node_uuid в файле конфигурации Chef InSpec, если вы запускаете Chef InSpec вне кулинарной книги аудита или другой среды, где chef_guid или node_uuid уже известны Chef InSpec.

среда

Это установит метаданные среды для Automate.

Отчётчик JSON-Automate

Отчётчик json-automate — это специальный отчётчик, который подготавливает формат данных, используемый отчётчиком Automate. json-automate не взаимодействует по сети; он просто генерирует формат отчёта JSON, который будет потреблять Automate. Отметим, что отчёт основан на отчётчике json с указанными изменениями:

  • Управления, которые появляются в дочерних профилях, дублируются по ID, объединяя их в родительский профиль.
  • Дочерние профили удаляются, что приводит к сплющиванию отчёта.

Отчётчик json-automate в основном используется для внутренних потребностей, но некоторые пользователи могут найти его полезным, если им нужен отчётчик на основе JSON, который объединяет управления.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/reporters/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API