Spec-Zone.ru › Chef 16

ресурс процессов

[редактировать на 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 свойство PowerShell Windows
labels PriorityClass
pids Id
cpus CPU
mem PM
vsz VirtualMemorySize
rss NPM
tty SessionId
states Responding
start StartTime
time TotalProcessorTime
users UserName
commands 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