Spec-Zone.ru › Chef 16

Ресурс os

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

Используйте ресурс аудита 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 OS darwin, freebsd, netbsd, и openbsd.
  • debian
  • hpux
  • linux. Для платформ, которые являются частью семейства Linux alpine, amazon, arch, coreos, exherbo, fedora, gentoo, и slackware.
  • redhat. Для платформ, которые являются частью семейства Redhat centos.
  • solaris. Для платформ, которые являются частью семейства Solaris nexentacore, omnios, openindiana, opensolaris, и smartos.
  • suse
  • unix
  • windows

Например, оба следующих теста должны иметь одинаковый результат:

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/

Spec-Zone.ru

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