ресурс habitat_packages
Используйте ресурс аудита InSpec habitat_package (единственное число), чтобы выполнить глубокий аудит одного пакета.
Используйте ресурс аудита InSpec habitat_packages (множественное число), чтобы перечислить пакеты Habitat и выполнить массовые операции.
Доступность
Статус: ЭКСПЕРИМЕНТАЛЬНЫЙ
Этот ресурс, как и все ресурсы пакета inspec-habitat, находится на ранних стадиях разработки и исследования. Функциональность может быть неполной, содержать ошибки или быть удалена в будущем. Если вы заинтересованы в развитии этого проекта, пожалуйста, присоединяйтесь к обсуждению или внесите свой вклад в код в проекте inspec-habitat.
Подключение к Habitat
Чтобы настроить inspec для связи с Chef Habitat, обязательно следуйте инструкциям по настройке параметров подключения. Это предотвратит ошибки «неподдерживаемая платформа».
Примеры
Убедитесь, что установлены httpd и memcached
describe habitat_packages do
its('names') { should include 'httpd' }
its('names') { should include 'memcached' }
end
Убедитесь, что все пакеты были обновлены после 1 января 2018 года
describe habitat_packages.where { release <= '20180101000000' } do
it { should_not exist }
end
Поиск пакетов, а затем подробное их изучение с помощью habitat_package
# Use the plural resource as a data lookup (not as a test)...
habitat_packages.where { origin != 'core' }.habitat_package_params.each do |params|
# ... then use the singular resource to do in-depth testing
describe habitat_package(params) do
# ...
end
end
Ограничения
API по сравнению с доступом через командную строку
Habitat предоставляет определенные данные через командную строку и другие данные через API шлюза HTTP. Этот ресурс недоступен через API; для использования ресурса необходимо предоставить учетные данные командной строки. См. документацию train-habitat для получения дополнительной информации.
Если вы используете этот ресурс без командной строки, этот ресурс всегда будет возвращать ноль совпадений.
Доступность
Установка
Этот ресурс находится в пакете ресурсов inspec-habitat. Вы можете использовать этот ресурс, задав зависимость профиля InSpec от пакета ресурсов. См. инструкции по inspec-habitat.
Версия
Этот ресурс впервые стал доступен в версии 0.1.0 пакета ресурсов.
Параметры ресурса
Параметры ресурса — это аргументы, передаваемые ресурсу в коде управления.
Этот ресурс не принимает параметры ресурса, что типично для ресурсов во множественном числе.
Критерии фильтрации
Критерии фильтрации используются для выбора пакетов, которые вы хотите изучить. Если критерии фильтрации не используются, выбираются все пакеты.
name
Строка. (Неполное) имя пакета, который рассматривается.
# No packages named *ftp* permitted
describe habitat_packages.where(name: /ftp/) do
it { should_not exist }
end
origin
Строка. Имя источника, создавшего рассматриваемый пакет.
# Examine only packages released by Chef
describe habitat_packages.where(origin: 'bad-origin') do
it { should_not exist }
end
release
Строка. 14-значный отметка времени в формате YYYYMMDDHHMmmSS. Отметка времени отражает время выпуска пакета, лежащего в основе пакета. Эти строки можно сортировать и сравнивать.
# Examine packages older than Jan 1 2018
describe habitat_packages.where { release < '20180101000000' } do
it { should_not exist }
end
# Examine packages older than 1 year
describe habitat_packages.where { Date.parse(release[0..7]) < Date.today - 365 } do
it { should_not exist }
end
# Another way
describe habitat_packages.where { release < (Date.today - 365).strftime('%Y%m%d000000') } do
it { should_not exist }
end
Свойства
Используйте свойства, чтобы создавать тесты, сравнивающие ожидаемое значение с фактическим значением.
count
Число. Количество пакетов, соответствующих критериям фильтрации.
# Expect 12 total
describe habitat_packages do
its(count) { should cmp 12 }
end
habitat_package_params
Array Hashов. Возвращает список набора параметров, которые можно передать напрямую в habitat_package (единственное число), чтобы загрузить отдельный пакет для углубленного анализа.
# Use the plural resource as a data lookup (not as a test)...
habitat_packages.where { origin != 'core' }.habitat_package_params.each do |params|
# ... then use the singular resource to do in-depth testing
describe habitat_package(params) do
its('release') { should_not be < '201904090000' }
end
end
names
Массив строк. Неполное имя пакета, например, «httpd». Этот список дедублицирован, хотя имя почти всегда уникально.
describe habitat_packages do
its('names') { should include 'httpd' }
its('names') { should include 'memcached' }
its('names') { should_not include 'telnetd' }
end
origins
Массив строк. Имена источников, создавших соответствующие пакеты. Этот список дедублицирован.
# Only allow core and mycorp-packaged packages
describe habitat_packages do
its('origins') { should include 'core' }
its('origins') { should include 'mycorp' }
# Advanced usage - count an array-valued property
its('origins', 'count') { should cmp 2 }
end
releases
Массив строк. Каждая строка представляет собой 14-значную отметку времени в формате YYYYMMDDHHMmmSS. Отметка времени отражает время выпуска пакета, лежащего в основе пакета. Эти строки можно сортировать и сравнивать. Этот список дедублицирован.
# We had a bad Monday
describe habitat_packages do
its('releases') { should_not include '20180325000000' }
end
Сопоставители
Используйте сопоставители, чтобы создавать тесты, которые проверяют истинность или ложность утверждения.
InSpec включает ряд универсальных сопоставителей.
Этот ресурс не определяет каких-либо специфичных для ресурса сопоставителей.
© 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/resources/habitat_packages/