Ресурс os
Используйте ресурс аудита Chef InSpec, чтобы проверить платформу, на которой запущена система.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен в версии v1.0.0 InSpec.
Синтаксис
Блок ресурса os объявляет платформу, которая должна быть протестирована. Платформа может быть указана с помощью соответствия или имени блока управления. Например, используя соответствие:
describe os.family do
it { should eq 'platform_family_name' }
end
-
'platform_family_name'(строка) является одним изaix,bsd,darwin,debian,hpux,linux,redhat,solaris,suse,unix, илиwindows
Параметры, доступные для os:
-
:name- имя операционной системы, напримерcentos -
:family- семейство операционной системы, напримерredhat -
:release- версия операционной системы, например7.3.1611 -
:arch- архитектура операционной системы, напримерx86_64
Примеры
Следующие примеры показывают, как использовать этот ресурс аудита Chef InSpec.
Тестирование для RedHat
describe os.family do
it { should eq 'redhat' }
end
Тестирование для Ubuntu
describe os.family do
it { should eq 'debian' }
end
Тестирование для Microsoft Windows
describe os.family do
it { should eq 'windows' }
end
Соответствия
Полный список доступных соответствий см. на нашей странице соответствий.
Справочные материалы os.family
Ресурс аудита os включает набор вспомогательных функций, которые позволяют более точно тестировать платформы, имена платформ, архитектуры и релизы. Используйте любые из следующих платформоспецифичных вспомогательных функций для тестирования конкретных платформ:
aix?-
bsd?(включая Darwin, FreeBSD, NetBSD и OpenBSD) darwin?debian?hpux?-
linux?(включая Alpine Linux, Amazon Linux, ArchLinux, CoreOS, Exherbo, Fedora, Gentoo и Slackware) -
redhat?(включая CentOS) -
solaris?(включая Nexenta Core, OmniOS, Open Indiana, Solaris Open и SmartOS) suse?unix?windows?
Например, для тестирования Darwin используйте:
describe os.bsd? do
it { should eq true }
end
Для тестирования Windows используйте:
describe os.windows? do
it { should eq true }
end
а для тестирования Redhat используйте:
describe os.redhat? do
it { should eq true }
end
Используйте следующие вспомогательные функции для тестирования имен операционных систем, релизов и архитектур:
describe os.name do
it { should eq 'foo' }
end
describe os.release do
it { should eq 'foo' }
end
describe os.arch do
it { should eq 'foo' }
end
Имена os.family
Используйте os.family для более точного тестирования платформ, имен платформ, архитектур и релизов. Используйте любые из следующих платформоспецифичных имен для тестирования конкретных платформ:
aix-
bsdДля платформ, которые являются частью семейства Berkeley OSdarwin,freebsd,netbsd, иopenbsd. debianhpux-
linux. Для платформ, которые являются частью семейства Linuxalpine,amazon,arch,coreos,exherbo,fedora,gentoo, иslackware. -
redhat. Для платформ, которые являются частью семейства Redhatcentos. -
solaris. Для платформ, которые являются частью семейства Solarisnexentacore,omnios,openindiana,opensolaris, иsmartos. suseunixwindows
Например, оба следующих теста должны иметь одинаковый результат:
if os.family == 'debian'
describe port(69) do
its('processes') { should include 'in.tftpd' }
end
elsif os.family == 'redhat'
describe port(69) do
its('processes') { should include 'xinetd' }
end
end
if os.debian?
describe port(69) do
its('processes') { should include 'in.tftpd' }
end
elsif os.redhat?
describe port(69) do
its('processes') { should include 'xinetd' }
end
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/os/