Spec-Zone.ru › Chef 17

powershell ресурс

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

Используйте powershell ресурс аудита Chef InSpec для проверки скрипта Powershell на платформе Windows.

Доступность

Установка

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

Версия

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

Синтаксис

Блок ресурса powershell объявляет скрипт Powershell для проверки и затем сравнивает вывод этой команды с совпадением в тесте:

script = <<-EOH
  # a PowerShell script
EOH

describe powershell(script) do
  its('property') { should eq 'output' }
end

где

  • 'script' должен указать скрипт Powershell для выполнения
  • 'matcher' — это одно из exit_status, stderr, или stdout
  • 'output' проверяет вывод команды, запущенной на системе, по отношению к указанному значению вывода в тесте

Свойства

exit_status

Свойство exit_status проверяет код завершения команды:

its('exit_status') { should eq 123 }

stderr

Свойство stderr проверяет результаты команды, возвращённые в стандартной ошибке (stderr):

its('stderr') { should eq 'error' }

stdout

Свойство stdout проверяет результаты команды, возвращённые в стандартном выводе (stdout):

its('stdout') { should eq '/^1$/' }

Примеры

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

Получить все группы пользователя Администратор

script = <<-EOH
  # find user
  $user = Get-WmiObject Win32_UserAccount -filter "Name = 'Administrator'"
  # get related groups
  $groups = $user.GetRelated('Win32_Group') | Select-Object -Property Caption, Domain, Name, LocalAccount, SID, SIDType, Status
  $groups | ConvertTo-Json
EOH

describe powershell(script) do
  its('stdout') { should_not eq '' }
end

Write-Output ‘hello’

Следующий скрипт Powershell:

script = <<-EOH
  Write-Output 'hello'
EOH

может быть проверен следующими способами.

Для новой строки:

describe powershell(script) do
  its('stdout') { should eq "hello\r\n" }
  its('stderr') { should eq '' }
end

Удаление пробелов \r\n из stdout:

describe powershell(script) do
  its('strip') { should eq "hello" }
end

Без новой строки:

describe powershell("'hello' | Write-Host -NoNewLine") do
  its('stdout') { should eq 'hello' }
  its('stderr') { should eq '' }
end

Совпадения

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

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

Spec-Zone.ru

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