InSpec: "Невозможно загрузить <профиль>, поскольку он не указан как зависимость", когда определена зависимость

В InSpec 1.9.0 я определил следующий профиль с зависимостью, включая все элементы управления из зависимого профиля.

Однако при выполнении я получаю сообщение об ошибке, указывающее, что профиль "не указан как зависимость"

Что мне не хватает?


  • inspec.yml:

    name: my-profile
    version: 0.0.1
    supports:
      - os-family: unix
    depends:
      - name: ssh-baseline
        url: https://github.com/dev-sec/ssh-baseline/archive/master.zip
    
  • controls/include_ssh_baseline.rb:

    include_controls 'ssh-baseline'
    
  • Команда:

    inspec exec my-profile -t ssh://user@host.domain
    
  • Результат выполнения профиля:

    Невозможно загрузить ssh-baseline, так как он не указан как зависимость
    моего профиля.

    Зависимости, доступные из этого контекста:

    (две пустые строки)

Я не вижу синтаксическую ошибку. Это пример копирования и вставки со страницы профилей InSpec.

Следующее определение зависимости (git вместо url) также вызвала то же сообщение об ошибке, что и выше:

depends:
  - name: ssh-baseline
    git: https://github.com/dev-sec/ssh-baseline.git

2 ответа

Решение

inspec.lock Файл создается при первом выполнении профиля и содержит ссылку на зависимости. Если вы создаете свой профиль постепенно, вы можете получить inspec.yml файл, не содержащий зависимостей (с первого запуска):

---
lockfile_version: 1
depends: []

Вам нужно удалить файл, если вы хотите внести изменения в inspec.yml отразить или запустить следующее в каталоге профиля:

inspec vendor --overwrite

См. Зависимости от поставщиков (здесь не упоминается --overwrite, но сразу выдает ошибку, если ее нет):

Когда вы выполняете локальный профиль, inspec.yml файл будет прочитан для того, чтобы найти любые зависимости профиля. Затем он будет кэшировать зависимости локально и генерировать inspec.lock файл. Если вы добавляете или обновляете зависимости в inspec.ymlПожалуйста, обновите файл блокировки:

  • Бег inspec vendor внутри каталога профиля; или же
  • удаление inspec.lock перед запуском inspec exec

Я только что создал профиль на основе вашего поста, и он работает без проблем. Я использовал inspec 1.9.0. Просто чтобы быть уверенным, вы можете попробовать inspec exec ./my-profile -t ssh://user@host.domain?

Другие вопросы по тегам