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
?