azurerm_virtual_network ресурс
Используйте ресурс проверки 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_groupname
Примеры параметров
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
Атрибуты
idnamelocationtagstypesubnetsaddress_spacedns_serversvnet_peeringsenable_ddos_protectionenable_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/