Spec-Zone.ru › Chef 17

azurerm_virtual_network ресурс

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

Используйте ресурс проверки InSpec azurerm_virtual_network для проверки свойств, связанных с виртуальной сетью.

Версия Azure REST API

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

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

Доступность

Установка

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

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

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

Версия

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

Синтаксис

resource_group и виртуальная сеть name должны быть указаны в качестве параметров.

describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  ...
end

Примеры

Убедиться, что виртуальная сеть существует в регионе Восточная США

describe azurerm_virtual_network(resource_group: resource_group, name: 'MyVnetName') do
  it               { should exist }
  its('location')  { should eq 'East US' }
end

Убедиться, что DNS-серверы виртуальной сети настроены как ожидается

describe azurerm_virtual_network(resource_group: resource_group, name: 'MyVnetName') do
    its('dns_servers') { should eq ["192.168.0.6"] }
end

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

describe azurerm_virtual_network(resource_group: resource_group, name: 'MyVnetName') do
    its('address_space') { should eq ["192.168.0.0/24"] }
end

Параметры

  • resource_group
  • name

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

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

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

describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  ...
end

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

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

describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  ...
end

Атрибуты

  • id
  • name
  • location
  • tags
  • type
  • subnets
  • address_space
  • dns_servers
  • vnet_peerings
  • enable_ddos_protection
  • enable_vm_protection

id

Идентификатор виртуальной сети.

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

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

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

name

Имя виртуальной сети.

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

location

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

its('location') { should eq('East US') }

type

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

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

метки

Метки виртуальной сети.

its('tags') { should eq({ 'key' => 'value' }) }

подсети

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

its('subnets') { should eq ["MySubnetName"] }

адресное пространство

Список адресных пространств, используемых виртуальной сетью.

its('address_space') { should eq ["x.x.x.x/x"] }

dns_серверы

Список DNS-серверов, настроенных для виртуальной сети. Виртуальная сеть возвращает эти IP-адреса, когда виртуальные машины делают запрос DHCP.

its('dns_servers') { should eq ["x.x.x.x", "x.x.x.x"] }

vnet_peerings

Сопоставление имен и идентификаторов виртуальных сетей виртуальных сетевых пейрингов.

its('vnet_peerings') { should eq "MyVnetPeeringConnection"=>"PeeringConnectionID"}

enable_ddos_protection

Булевое значение, показывающее, включена ли стандартная защита Azure DDoS для виртуальной сети.

its('enable_ddos_protection') { should eq true }

enable_vm_protection

Булевое значение, показывающее, включена ли защита виртуальных машин для виртуальной сети.

its('enable_vm_protection') { should eq false }

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

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

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

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

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

exists

# If a virtual network is found it will exist
describe azurerm_virtual_network(resource_group: 'MyResourceGroup', name: 'MyVnetName') do
  it { should exist }
end

# virtual networks that aren't found will not exist
describe azurerm_virtual_network(resource_group: 'MyResourceGroup', 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_virtual_network/

Spec-Zone.ru

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