Spec-Zone.ru › Chef 18

Ресурс azure_virtual_machine

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

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

Доступность

Установка

Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс стал доступен в версии InSpec v2.0.16.

Синтаксис

Имя машины и группа ресурсов требуются как свойства ресурса.

describe azure_virtual_machine(group_name: 'MyResourceGroup', name: 'MyVM') do
  its('property') { should eq 'value' }
end

где

  • MyVm — имя виртуальной машины, как видно в Azure; это не имя хоста машины
  • MyResourceGroup — имя группы ресурсов машины
  • property — одно из свойств ресурса
  • value — ожидаемый результат соответствия

Примеры

В следующих примерах показано использование этого ресурса аудита Chef InSpec.

Проверка правильности размера первого диска данных

describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Linux-Internal-VM').where(number: 1) do
  its('size') { should cmp >= 15 }
end

Параметры

  • group_name
  • name
  • apiversion

Ниже приведены параметры, которые могут быть переданы ресурсу.

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

Используйте этот параметр для определения группы ресурсов Azure, которая должна быть проверена.

describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure') do
    ...
end

name

Используйте этот параметр для определения имени проверяемого ресурса Azure.

describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM') do
    ...
end

apiversion

Версия API для использования при запросе ресурса. По умолчанию используется последняя версия для ресурса.

describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM', apiversion: '2.0') do
    ...
end

Эти параметры также можно задать с помощью переменных окружения:

  • AZURE_RESOURCE_GROUP_NAME
  • AZURE_RESOURCE_NAME
  • AZURE_RESOURCE_API_VERSION

При установке параметров и переменных окружения приоритет имеют переменные окружения.

Свойства

  • type, location, name, publisher, offer, sku, os_type, os_disk_name, have_managed_osdisk, caching, create_option, disk_size_gb, have_data_disks, data_disk_count , storage_account_type, vm_size, computer_name, admin_username, have_nics, nic_count, connected_nics, have_password_authentication, password_authentication?, have_custom_data, custom_data?, have_ssh_keys, ssh_keys?, ssh_key_count, ssh_keys, have_boot_diagnostics, boot_diagnostics_storage_uri

Примеры свойств

Этот ресурс аудита Chef InSpec имеет следующие свойства, которые можно проверить:

тип

Тип ресурса Azure. Для виртуальной машины всегда возвращает Microsoft.Compute/virtualMachines

its('type') { should cmp 'Microsoft.Compute/virtualMachines' }

местоположение

Местоположение машины

its('location') { should eq 'westeurope' }

имя

Имя виртуальной машины в Azure. Имейте в виду, что это не имя компьютера или хоста, а имя машины, как она отображается в портале Azure.

its('name') { should cmp 'InSpec-Azure' }

издатель

Издатель образа сборки этой машины.

nil если машина была создана на основе пользовательского образа.

its('publisher') { should cmp 'MicrosoftWindowsServer' }

предложение

Предложение от издателя образа сборки.

nil если машина была создана на основе пользовательского образа.

its('offer') { should cmp 'WindowsServer' }

sku

Элемент от издателя, использованный для создания образа.

nil если машина была создана на основе пользовательского образа.

its('sku') { should cmp '2016-Datacenter' }

тип_ос

Проверка, возвращающая классификацию типа операционной системы в Azure. Обычно либо Linux либо Windows.

its('os_type') { should cmp 'Windows' }

имя_диска_ос

Возвращает имя диска операционной системы, подключенного к машине.

its('os_disk_name') { should cmp 'Windows-Internal-OSDisk-MD' }

кэширование

Возвращает тип кэширования, установленного на диске операционной системы.

its('caching') { should cmp 'ReadWrite' }

параметр_создания

При создании диска операционной системы задается свойство, указывающее способ создания. Это свойство возвращает способ создания диска.

its('create_option') { should cmp 'FromImage' }

размер_диска_gb

Возвращает размер диска операционной системы.

its('disk_size_gb') { should be >= 30 }

количество_дисков_данных

Возвращает количество подключенных к машине дисков данных.

тип_хранилища

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

its('storage_account_type') { should cmp 'Standard_LRS' }

размер_вм

Размер машины в Azure

its('vm_size') { should eq 'Standard_DS2_v2' }

имя_компьютера

Имя машины. Это имя, присвоенное машине во время развертывания, и оно должно возвращаться командой hostname.

its('computer_name') { should cmp 'win-internal-1' }

имя_пользователя_админа

Имя пользователя администратора, назначенное машине

ПРИМЕЧАНИЕ: Azure не разрешает использовать Administrator в качестве имени пользователя администратора на машине с Windows

its('admin_username') { should cmp 'azure' }

количество_сетевых_интерфейсов

Количество сетевых адаптеров, подключенных к машине.

its('nic_count') { should eq 1 }

подключенные_сетевые_интерфейсы

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

its('connected_nics') { should include /Inspec-NIC-1/ }

Обратите внимание на использование регулярного выражения. Это связано с тем, что идентификатор сетевого адаптера — это длинная строка, содержащая идентификатор подписки, группу ресурсов, идентификатор машины и другие данные. Используя регулярное выражение, можно проверить сетевой адаптер, не разбивая эту строку. Это также означает, что можно выполнить другие проверки.

Пример строки идентификатора: /subscriptions/1e0b427a-d58b-494e-ae4f-ee558463ebbf/resourceGroups/Inspec-Azure/providers/Microsoft.Network/networkInterfaces/Inspec-NIC-1

пароль_аутентификация?

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

its('password_authentication?') { should be false }

Это относится только к машинам Linux и всегда возвращает true для Windows.

пользовательские_данные

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

its('custom_data') { should be true }

ключи_ssh?

Булево значение, указывающее, доступна ли машина по ключам SSH.

its('ssh_keys?') { should be true }

### ssh_key_count

Возвращает количество ключей SSH, примененных к машине.

Это относится только к машинам Linux и всегда возвращает 0 для Windows.

its('ssh_key_count') { should eq '0' }

ключи_ssh

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

Большинство общедоступных ключей SSH имеют подпись в конце, которую можно проверить. Например:

its('ssh_keys') { should include /azure@inspec.local/ }

boot_diagnostics_storage_uri

Если для машины включены диагностические данные запуска, они будут сохранены в учетной записи хранения. Этот метод возвращает URI учетной записи хранения.

its('boot_diagnostics_storage_uri') { should match 'ghjgjhgjg' }

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

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

Для получения информации обо всех доступных операторах обратитесь к странице справки по сопоставителям Chef InSpec Chef InSpec Matchers Reference.

boot_diagnostics?

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

it { should have_boot_diagnostics }

have_custom_data

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

it { should have_custom_data }

have_data_disks

Указывает, подключены ли к машине диски данных.

it { should have_data_disks }

have_managed_osdisk

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

Этот тест можно использовать следующим образом:

it { should have_managed_osdisk }

have_nics

Возвращает булево значение, указывающее, подключены ли к машине сетевые адаптеры.

Это можно использовать следующим образом:

it { should have_nics }

have_password_authentication

Возвращает булево значение, указывающее, доступна ли машина по паролю.

it { should have_password_authentication }

have_ssh_keys

Булево значение, указывающее, назначены ли машине ключи SSH.

it { should have_ssh_keys }

Для машины с Windows это значение всегда будет false.

Теги

Можно проверить теги, назначенные ресурсу. Доступно несколько свойств для проверки наличия тегов, их количества и соответствия заданным.

have_tags

Простая проверка наличия или отсутствия тегов у машины.

it { should have_tags }

tag_count

Возвращает количество тегов, назначенных ресурсу.

its ('tag_count') { should eq 2 }

теги

Можно проверить, установлен ли конкретный тег на ресурсе.

its('tags') { should include 'Owner' }

xxx_тег

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

Например, если на ресурсе установлен следующий тег:

  • owner: J.G. Jingleheimerschmidt

Тогда доступна проверка, называемая Owner_tag.

its('owner_tag') { should cmp 'J.G. Jingleheimerschmidt' }

Примечание: имя тега чувствительно к регистру, что делает тест чувствительным к регистру. Например, owner_tag не равно Owner_tag.

Ссылки

  • Azure Ruby SDK — Ресурсы
  • Внешняя виртуальная машина
  • Внутренняя виртуальная машина

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

Spec-Zone.ru

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