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