ресурс habitat_packages
Используйте habitat_package (единственное число) ресурс проверки InSpec, чтобы выполнить глубокую проверку одного пакета.
Используйте habitat_packages (множественное число) ресурс проверки InSpec, чтобы перечислить пакеты 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/