Spec-Zone.ru › Chef 16

ресурс habitat_packages

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

Используйте 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/

Spec-Zone.ru

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