Spec-Zone.ru › Chef 18

Ресурс интерфейсов

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

Используйте ресурс аудита Chef InSpec, чтобы проверить свойства нескольких сетевых интерфейсов в системе.

Синтаксис

Блок ресурса interfaces может не принимать аргументов, в этом случае он выведет все интерфейсы:

describe interfaces do
  its('names') { should include 'eth0' }
end

Блок ресурса interfaces может принимать предложение where, фильтруя по критерию фильтрации:

# All eth- interfaces
describe interfaces.where(name: /^eth\d+/)
  its('names') { should include 'eth0' }
end

Как и любой ресурс Chef InSpec, вы также можете использовать его для поиска данных вместо проверки:

# We are an IPv6 shop
interfaces.where(name: /^eth/).names do |name|
  describe interface(name) do
    it { should have_ipv6_address }
  end
end

# Obtain the machine's main IP address
my_ip = interfaces.ipv4_address

Критерии фильтрации

name

Строка. Название интерфейса.

Свойства

count

Свойство count возвращает целое число, описывающее количество сопоставленных интерфейсов.

its(“count”) { should eq 6 }

ipv4_address

Попытка определить «первый» «действительный» IPv4-адрес на любом интерфейсе. Ищет интерфейсы, которые активны и имеют назначенные IPv4-адреса, затем пытается отфильтровать адреса loopback, управления (10/8) и локальные (192.168/16), возвращая лучший из доступных; вы по-прежнему можете получить значение nil или адрес loopback. Обратите внимание, что если машина находится за NAT, это не будет внешний IP-адрес; используйте ресурс http для запроса службы поиска IP-адресов.

its(‘ipv4_address’) { should_not eq ‘127.0.0.1’ }

names

Свойство names возвращает массив строк, представляющих имена интерфейсов.

its(“names”) { should include “eth0” }

Сравниватели

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

exist

Сравниватель exist проверяет истинность, если в системе существует хотя бы один интерфейс. Это почти всегда так.

it { should exist }

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

Spec-Zone.ru

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