Spec-Zone.ru › Chef 16

Ресурс google_compute_instance

Синтаксис

Используется для проверки ресурса экземпляра Google Instance

Ресурс Beta

Этот ресурс имеет доступные поля beta. Для получения этих полей включите beta: true в конструктор для ресурса

Примеры


describe google_compute_instance(project: 'chef-gcp-inspec', zone: 'zone', name: 'inspec-instance') do
  it { should exist }
  its('machine_type') { should match 'n1-standard-1' }
  its('tags.items') { should include 'foo' }
  its('tags.items') { should include 'bar' }
  its('tag_count') { should cmp 2 }
  its('service_account_scopes') { should include 'https://www.googleapis.com/auth/compute.readonly' }
  its('metadata_keys') { should include '123' }
  its('metadata_values') { should include 'asdf' }
end

describe google_compute_instance(project: 'chef-gcp-inspec', zone: 'zone', name: 'nonexistent') do
  it { should_not exist }
end

Проверка, что экземпляр GCP compute instance не существует

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm-not-there') do
  it { should_not exist }
end

Проверка, что экземпляр GCP compute instance находится в ожидаемом состоянии (посмотреть возможные состояния здесь)

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('status') { should eq 'RUNNING' }
end

Проверка, что экземпляр GCP compute instance имеет ожидаемый размер

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('machine_type') { should match "f1-micro" }
end

Проверка, что экземпляр GCP compute instance имеет ожидаемую платформу процессора

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('cpu_platform') { should match "Intel" }
end

Проверка, что экземпляр GCP compute instance имеет ожидаемое количество подключенных дисков

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('disk_count'){should eq 2}
end

Проверка, что экземпляр GCP compute instance имеет ожидаемое количество подключенных сетевых интерфейсов

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('network_interfaces_count'){should eq 1}
end

Проверка, что экземпляр GCP compute instance имеет ожидаемое количество тегов

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('tag_count'){should eq 1}
end

Проверка, что экземпляр GCP compute instance имеет один публичный IP-адрес

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('first_network_interface_nat_ip_exists'){ should be true }
  its('first_network_interface_name'){ should eq "external-nat" }
  its('first_network_interface_type'){ should eq "one_to_one_nat" }
end

Проверка, что у экземпляра compute instance присутствует определённый ключ метки

describe google_compute_instance(project: 'chef-inspec-gcp',  zone: 'us-east1-b', name: 'inspec-test-vm') do
  its('labels_keys') { should include 'my_favourite_label' }
end

Проверка, что значение метки определённого экземпляра compute instance соответствует регулярному выражению

describe google_compute_instance(project: 'chef-inspec-gcp', zone:'us-east1-b', name:'inspec-test-vm').label_value_by_key('business-area') do
  it { should match '^(marketing|research)$' }
end

Проверка, что у экземпляра compute instance присутствует определённый ключ метаданных

describe google_compute_instance(project: 'chef-inspec-gcp', zone:'us-east1-b', name:'inspec-test-vm') do
  its('metadata_keys') { should include 'patching-type' }
end

Проверка, что значение метаданных определённого экземпляра compute instance соответствует регулярному выражению

describe google_compute_instance(project: 'chef-inspec-gcp', zone:'us-east1-b', name:'inspec-test-vm').metadata_value_by_key('patching-window') do
  it { should match '^\d{1}-\d{2}$' }
end

Свойства

Свойства, которые можно получить из ресурса google_compute_instance:

can_ip_forward
Разрешает этому экземпляру отправлять и получать пакеты с несовпадающими IP-адресами назначения или источника. Это необходимо, если вы планируете использовать этот экземпляр для переадресации маршрутов.
cpu_platform
Платформа процессора, используемая этим экземпляром.
creation_timestamp
Маркер создания в формате текста RFC3339.
deletion_protection
Необходимо ли защищать ресурс от удаления.
disks
Массив дисков, связанных с экземплярами, созданными из этой шаблона.
auto_delete
Указывает, будет ли диск автоматически удален при удалении экземпляра (но не при отделении диска от экземпляра). Совет: Диски должны быть настроены на autoDelete=true, чтобы после удаления машины не оставались лишние диски.
boot
Указывает, что это загрузочный диск. Виртуальная машина будет использовать первый раздел диска для своей корневой файловой системы.
device_name
Указывает уникальное имя устройства по вашему выбору, которое отражается в дереве /dev/disk/by-id/google-* операционной системы Linux, работающей внутри экземпляра. Это имя можно использовать для ссылки на устройство для монтирования, изменения размера и т. д. внутри экземпляра.
disk_encryption_key
Шифрует или расшифровывает диск с помощью предоставленного клиентом ключа шифрования.
raw_key
Указывает 256-битный ключ шифрования, предоставленный клиентом, закодированный в RFC 4648 base64 для шифрования или дешифрования этого ресурса.
rsa_encrypted_key
Указывает закодированный в RFC 4648 base64 ключ шифрования RSA длиной 2048 бит, предоставленный клиентом, для шифрования или дешифрования этого ресурса.
sha256
Закодированный в RFC 4648 base64 SHA-256 хэш ключа шифрования, предоставленного клиентом, который защищает этот ресурс.
index
Присваивает этому диску индекс, начинающийся с нуля, где 0 зарезервирован для загрузочного диска. Например, если к экземпляру подключено много дисков, каждый диск будет иметь уникальный номер индекса. Если не указано, сервер выберет подходящее значение.
initialize_params
Указывает параметры для нового диска, который будет создан вместе с новым экземпляром. Используйте параметры инициализации для создания загрузочных дисков или локальных твердотельных накопителей, подключенных к новому экземпляру.
disk_name
Указывает имя диска. Если не указано, используется имя экземпляра по умолчанию.
disk_size_gb
Указывает размер диска в гигабайтах в двоичной системе.
disk_type
Ссылка на тип диска. Указывает тип диска, который следует использовать для создания экземпляра. Если не указано, используется pd-standard по умолчанию.
source_image
Исходный образ для создания этого диска. При создании нового экземпляра требуется либо initializeParams.sourceImage, либо disks.source. Для создания диска с одним из общедоступных образов операционных систем укажите имя семейства образа.
source_image_encryption_key
Ключ шифрования, предоставленный клиентом, исходного образа. Требуется, если исходный образ защищен ключом шифрования, предоставленным клиентом. Шаблоны экземпляров не хранят ключи шифрования, предоставленные клиентом, поэтому вы не можете создать диски для экземпляров в управляемой группе экземпляров, если исходные образы зашифрованы своими собственными ключами.
raw_key
Указывает 256-битный ключ шифрования, предоставленный клиентом, закодированный в RFC 4648 base64 для шифрования или дешифрования этого ресурса.
sha256
Закодированный в RFC 4648 base64 SHA-256 хэш ключа шифрования, предоставленного клиентом, защищающего этот ресурс.
interface
Указывает интерфейс диска для подключения этого диска, который может быть SCSI или NVME. По умолчанию используется SCSI. Постоянные диски всегда должны использовать SCSI, и запрос завершится ошибкой, если вы попытаетесь подключить постоянный диск в любом другом формате, кроме SCSI.

Возможные значения:

  • SCSI
  • NVME
mode
Режим подключения этого диска, либо READ_WRITE, либо READ_ONLY. Если не указано, диск подключается по умолчанию в режиме READ_WRITE.

Возможные значения:

  • READ_WRITE
  • READ_ONLY
source
Ссылка на диск. При создании нового экземпляра требуется либо initializeParams.sourceImage, либо disks.source. При необходимости вы также можете подключить существующие постоянные диски, не являющиеся корневыми, с помощью этого свойства. Это поле применимо только к постоянным дискам.
type
Указывает тип диска, либо SCRATCH, либо PERSISTENT. Если не указано, по умолчанию используется PERSISTENT.

Возможные значения:

  • SCRATCH
  • PERSISTENT
licenses
Любые применимые общедоступные лицензии.
guest_accelerators
Список типов и количества ускорительных карт, подключенных к экземпляру.

accelerator_count : Количество ускорительных карт гостя, доступных для этого экземпляра.

accelerator_type : Полный или частичный URL ресурса типа ускорителя, который необходимо предоставить этому экземпляру.

hostname
Имя хоста создаваемого экземпляра. Указанное имя хоста должно соответствовать RFC1035. Если имя хоста не указано, используется имя хоста по умолчанию [INSTANCE_NAME].c.[PROJECT_ID].internal при использовании глобального DNS и [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal при использовании зонального DNS.
id
Уникальный идентификатор ресурса. Этот идентификатор определяется сервером.
label_fingerprint
Отпечаток, используемый для оптимистической блокировки этого ресурса. Используется внутри при обновлениях.
labels
Метки для применения к этому экземпляру. Список пар ключ-значение.
metadata
Пары значений метаданных ключ/значение, которые необходимо назначить экземплярам, созданным из этого шаблона. Эти пары могут содержать пользовательские метаданные или предопределенные ключи.
machine_type
Ссылка на тип машины, которая определяет тип ВМ.
min_cpu_platform
Указывает минимальную платформу процессора для экземпляра ВМ. Применимы дружественные имена платформ процессоров.
name
Имя ресурса, предоставленное клиентом при первоначальном создании ресурса. Имя ресурса должно быть длиной от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению [a-z]([-a-z0-9]*[a-z0-9])?, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом.
network_interfaces
Массив конфигураций для этого интерфейса. Это определяет, как этот интерфейс настроен для взаимодействия с другими сетевыми службами, такими как подключение к Интернету. Поддерживается только один сетевой интерфейс на экземпляр.

access_configs : Массив конфигураций для этого интерфейса. В настоящее время поддерживается только один access config, ONE_TO_ONE_NAT. Если accessConfigs не указаны, то у этого экземпляра не будет внешнего доступа к Интернету.

`name`
: The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would like. For example, My external IP or Network Access.

`nat_ip`
: Reference to an address. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.

`type`
: The type of configuration. The default and only option is ONE_TO_ONE_NAT.

  Possible values:
  - ONE_TO_ONE_NAT

`set_public_ptr`
: Specifies whether a public DNS PTR record should be created to map the external IP address of the instance to a DNS domain name.

`public_ptr_domain_name`
: The DNS domain name for the public PTR record. You can set this field only if the setPublicPtr field is enabled.

`network_tier`
: This signifies the networking tier used for configuring this access configuration. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP.
  
  Possible values:
  - PREMIUM
  - STANDARD

alias_ip_ranges : Массив псевдонимов диапазонов IP-адресов для этого сетевого интерфейса. Может быть указан только для сетевых интерфейсов на сетях в режиме подсети.

`ip_cidr_range`
: The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).

`subnetwork_range_name`
: Optional subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. If left unspecified, the primary range of the subnetwork will be used.

name : Имя сетевого интерфейса, сгенерированное сервером. Для сетевых устройств это eth0, eth1 и т. д.

network : Указывает заголовок существующей сети. При создании экземпляра, если ни сеть, ни подсеть не указаны, используется сеть по умолчанию global/networks/default; если сеть не указана, но подсеть указана, сеть определяется неявно.

network_ip : Внутренний IP-адрес IPv4 для назначения экземпляру для этого сетевого интерфейса. Если не указано пользователем, система назначает неиспользуемый внутренний IP-адрес.

subnetwork : Ссылка на сетевую сеть VPC. Если сетевой ресурс находится в режиме legacy, не предоставляйте это свойство. Если сеть находится в режиме автоматической подсети, предоставление подсети необязательно. Если сеть находится в режиме подсети пользовательской настройки, это поле должно быть указано.

scheduling
Устанавливает параметры планирования для этого экземпляра.

automatic_restart : Указывает, должен ли экземпляр автоматически перезапускаться, если он был завершен Compute Engine (не пользователем). Вы можете установить параметр автоматического перезапуска только для стандартных экземпляров. Предварительно выделенные экземпляры не могут быть автоматически перезапущены.

on_host_maintenance : Определяет поведение обслуживания для этого экземпляра. Для стандартных экземпляров поведение по умолчанию — MIGRATE. Для предварительно выделенных экземпляров поведение по умолчанию и единственное возможное — TERMINATE. Дополнительную информацию см. в разделе Настройка параметров планирования экземпляров.

preemptible : Определяет, является ли экземпляр предварительно выделенным. Это может быть установлено только во время создания экземпляра, оно не может быть установлено или изменено после создания экземпляра.

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

email : Электронный адрес учетной записи сервиса.

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

shielded_instance_config
Настройка различных параметров, связанных с защищенными экземплярами.

enable_secure_boot : Определяет, включен ли Secure Boot в экземпляре.

enable_vtpm : Определяет, включен ли vTPM в экземпляре.

enable_integrity_monitoring : Определяет, включен ли мониторинг целостности в экземпляре.

status
Состояние экземпляра. Одно из следующих значений: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED и TERMINATED. В качестве пользователя используйте RUNNING для поддержания машины «включенной» и TERMINATED для выключения машины.

Возможные значения:

  • PROVISIONING
  • STAGING
  • RUNNING
  • STOPPING
  • SUSPENDING
  • SUSPENDED
  • TERMINATED
status_message
Необязательное, читаемое человеком, объяснение состояния.
tags
Список меток для применения к этому экземпляру. Метки используются для идентификации допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании экземпляра. Метки могут быть позже изменены методом setTags. Каждая метка в списке должна соответствовать RFC1035.
fingerprint
Указывает отпечаток для этого запроса, который представляет собой хэш содержимого метаданных и используется для оптимистической блокировки. Отпечаток первоначально генерируется Compute Engine и изменяется после каждого запроса на изменение или обновление метаданных. Вы всегда должны предоставлять обновленный хэш отпечатка для обновления или изменения метаданных.
items
Массив меток. Каждая метка должна быть длиной от 1 до 63 символов и соответствовать RFC1035.
zone
Ссылка на зону, где находится машина.

Разрешения GCP

Убедитесь, что для текущего проекта включен API Compute Engine.

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

Spec-Zone.ru

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