Spec-Zone.ru › Chef 17

ресурс habitat_packages

[редактировать на GitHub]

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

Spec-Zone.ru

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