Spec-Zone.ru › Chef 16

azurerm_subnet ресурс

[править на GitHub]

Используйте azurerm_subnet ресурс проверки InSpec для проверки свойств подсети заданной виртуальной сети.

Версия Azure REST API

Этот ресурс взаимодействует с версией 2018-02-01 API Azure Management. Дополнительную информацию можно найти в официальной документации Azure.

В настоящее время, похоже, нет способа выбрать версию документации Azure API. Если вы обнаружите упоминание новой версии в официальной документации, пожалуйста, создайте вопрос или отправьте запрос на добавление с обновленной версией.

Доступность

Установка

Этот ресурс доступен в inspec-azure пакете ресурсов. Для его использования добавьте следующее в ваш inspec.yml в вашем профиле верхнего уровня:

depends:
  - name: inspec-azure
    git: https://github.com/inspec/inspec-azure.git

Вам также потребуется настроить свои учетные данные Azure; см. README пакета ресурсов.

Версия

Этот ресурс стал доступен в версии 1.2.0 пакета ресурсов inspec-azure.

Синтаксис

Необходимо указать resource_group, виртуальную сеть vnet и имя подсети в качестве параметров. Поскольку подсеть должна находиться в контексте виртуальной сети, этот параметр необходимо было включить.

describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
  ...
end

Примеры

Убедитесь, что подсеть существует для заданной виртуальной сети

describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
  it { should exist }
end

Убедитесь, что префикс адреса подсети настроен как ожидается

describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
    its('address_prefix') { should eq [192.168.0.0/24] }
end

Убедитесь, что подсеть подключена к правильному сетевому контролю доступа

describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
    its('nsg') { should eq 'NetworkSecurityGroupName'}
end

Параметры

  • resource_group
  • vnet
  • name

Примеры параметров

resource_group (обязательно)

Определяет группу ресурсов подсети, в которой вы хотите проверить наличие.

describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
  ...
end

vnet (обязательно)

Определяет виртуальную сеть, частью которой является подсеть, которую вы хотите проверить.

describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
  ...
end

name (обязательно)

Определяет имя подсети, которую вы хотите проверить.

describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
  ...
end

Атрибуты

  • id
  • name
  • type
  • address_prefix
  • nsg

id

Идентификатор подсети.

its('id') { should eq(id) }

Идентификатор будет в формате:

'/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/Inspec-Azure-mmclane/providers/Microsoft.Network/virtualNetworks/Inspec-VNet/subnets/Inspec-Subnet'

name

Имя подсети.

its('name') { should eq('MySubnetName') }

type

Тип ресурса виртуальной сети.

its('type') { should eq 'Microsoft.Network/virtualNetworks/subnets' }

address_prefix

Префикс адреса подсети.

its('address_prefix') { should eq "x.x.x.x/x" }

nsg

Группа сетевой безопасности, присоединенная к подсети.

its('nsg') { should eq 'MyNetworkSecurityGroupName' }

Другие атрибуты

Существуют дополнительные атрибуты, к которым можно получить доступ, которые мы не документировали. Пожалуйста, ознакомьтесь с документацией Azure. Любой атрибут в ответе можно получить по имени ключа, разделенных точками (.).

API не всегда возвращает ключи, не имеющие связанных данных. Может возникнуть ситуация, когда глубоко вложенное свойство не содержит нужного атрибута по цепочке вызова. Если вы обнаруживаете, что пишете тесты на свойства, которые могут быть nil, создайте форк этого пакета ресурсов и добавьте к нему метод доступа к ресурсу. В этом методе вы сможете защититься от nil-ключей. Запросы на добавление всегда приветствуются.

Сопоставители

Этот ресурс проверки InSpec имеет следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице Универсальных сопоставителей.

exists

# If a subnet is found it will exist
describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'MySubnetName') do
  it { should exist }
end

# subnets that aren't found will not exist
describe azurerm_subnet(resource_group: 'MyResourceGroup', vnet: 'MyVnetName', name: 'DoesNotExist') do
  it { should_not exist }
end

Разрешения Azure

Ваш Сервисный принцип должен быть настроен с ролью contributor на подписке, которую вы хотите проверить.

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

Spec-Zone.ru

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