Spec-Zone.ru › Chef 17

processes ресурс

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

Используйте processes ресурс аудита Chef InSpec, чтобы проверить свойства выполняемых на системе программ.

Доступность

Установка

Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.

Синтаксис

Блок ресурса processes объявляет имя проверяемого процесса, а затем объявляет одну (или несколько) пару свойство/значение:

describe processes('process_name') do
  its('property_name') { should eq ['property_value'] }
end

где

  • processes('process_name') указывает имя процесса для проверки. Если это строка, она будет преобразована в регулярное выражение. Для большей точности передайте регулярное выражение напрямую. Если поле оставлено пустым, будут возвращены все процессы.
  • property_name можно использовать для проверки свойств пользователя (its('users')) и состояния (its('states'))

Примеры

Следующие примеры демонстрируют использование этого ресурса аудита Chef InSpec.

Проверка длины списка для процесса mysqld

describe processes('mysqld') do
  its('list.length') { should eq 1 }
end

Проверка того, что процесс принадлежит конкретному пользователю

describe processes('init') do
  its('users') { should eq ['root'] }
end

describe processes('winlogon') do
  its('users') { should cmp "NT AUTHORITY\\SYSTEM" }
end

Проверка того, что запущен процесс высокой приоритетности

describe processes('linux_process') do
  its('states') { should eq ['R<'] }
end

describe processes('windows_process') do
  its('labels') { should cmp "High" }
end

Проверка наличия процесса в системе

describe processes('some_process') do
  it { should exist }
end

Проверка процесса с помощью определенного регулярного выражения

Если имя процесса слишком общее для однозначной идентификации строкой, можно использовать регулярное выражение. Возможно, потребуется включить пробелы.

describe processes(Regexp.new("/usr/local/bin/swap -d")) do
  its('list.length') { should eq 1 }
end

Примечания для аудита систем Windows

Иногда с системными свойствами нет прямого соответствия между различными операционными системами. Большинство property_name соответствуют различным ОС.

Однако существуют исключения, например, в Linux states предлагает несколько свойств. Windows не имеет прямого сравнения, которое является единственным свойством, поэтому вместо этого states сопоставляется со свойством Responding, Это флаг типа true/false, помогающий определить, завис ли процесс.

Ниже приведена таблица сопоставления, помогающая понять, какому свойству unix поле сопоставляется со свойством Windows Get-Process

unix поле ps свойство Windows PowerShell
метки PriorityClass
идентификаторы процессов Id
процессоры CPU
память PM
виртуальный размер VirtualMemorySize
резервная память NPM
терминал SessionId
состояния Responding
начало StartTime
время TotalProcessorTime
пользователи UserName
команды Path

Сопоставители

Полный список доступных сопоставителей см. на нашей странице сопоставителей.

property_name

Сопоставитель property_name проверяет указанное свойство на соответствие заданному значению:

its('property_name') { should eq ['property_value'] }

© 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/processes/

Spec-Zone.ru

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