gcp_compute_instance - Создаёт виртуальную машину GCP
Новая в версии 2.6.
Обзор
- Инстанция — это виртуальная машина (ВМ), размещённая на инфраструктуре Google.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |||
|---|---|---|---|---|---|
| auth_kind обязательно |
| Тип используемых учетных данных. | |||
| can_ip_forward bool |
| Разрешает этому экземпляру отправлять и получать пакеты с несовпадающими IP-адресами назначения или источника. Это требуется, если вы планируете использовать этот экземпляр для перенаправления маршрутов. | |||
| disks | Массив дисков, связанных с экземплярами, созданными по этому шаблону. | ||||
| auto_delete bool |
| Указывает, будет ли диск автоматически удален при удалении экземпляра (но не при отсоединении диска от экземпляра). Совет: Диски следует устанавливать с autoDelete=true, чтобы избежать оставшихся дисков при удалении машины. | |||
| boot bool |
| Указывает, что это загрузочный диск. Виртуальная машина будет использовать первый раздел диска для своей корневой файловой системы. | |||
| 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 | Устанавливает параметры для нового диска, который будет создан вместе с новым экземпляром. Используйте параметры инициализации для создания загрузочных дисков или локальных SSD, подключенных к новому экземпляру. | ||||
| disk_name | Указывает имя диска. Если не указано, используется имя экземпляра по умолчанию. | ||||
| disk_size_gb | Указывает размер диска в гигабайтах (base-2). | ||||
| disk_type | Ссылка на ресурс DiskType. | ||||
| 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. | |||
| mode |
| Режим подключения этого диска, либо READ_WRITE или READ_ONLY. Если не указано, диск подключается в режиме READ_WRITE по умолчанию. | |||
| source | Ссылка на ресурс Disk. | ||||
| type |
| Указывает тип диска, либо SCRATCH или PERSISTENT. Если не указано, по умолчанию используется PERSISTENT. | |||
| guest_accelerators | Список типов и количества ускорителей, подключенных к экземпляру. | ||||
| accelerator_count | Количество ускорителей гостевой системы, доступных этому экземпляру. | ||||
| accelerator_type | Полный или частичный URL ресурса типа ускорителя, доступного этому экземпляру. | ||||
| label_fingerprint | Отпечаток данного запроса, представляющий собой хэш содержимого метаданных и используемый для оптимистической блокировки. Отпечаток первоначально генерируется Compute Engine и изменяется после каждого запроса на изменение или обновление метаданных. Вы всегда должны предоставлять обновленный хэш отпечатка для обновления или изменения метаданных. | ||||
| machine_type | Ссылка на ресурс MachineType. | ||||
| metadata | Ключевые/значения метаданных, которые необходимо назначить экземплярам, созданным по этому шаблону. Эти пары могут состоять из пользовательских метаданных или предопределенных ключей. | ||||
| min_cpu_platform | Устанавливает минимальную платформу процессора для виртуальной машины. Допустимые значения — имена платформ процессоров. | ||||
| name | Имя ресурса, предоставленное клиентом при первоначальном создании ресурса. Имя ресурса должно иметь длину от 1 до 63 символов и соответствовать RFC1035. То есть имя должно иметь длину от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | ||||
| network_interfaces | Массив конфигураций для этого интерфейса. Это определяет, как этот интерфейс настроен для взаимодействия с другими сетевыми службами, например, для подключения к Интернету. Поддерживается только один сетевой интерфейс на экземпляр. | ||||
| access_configs | Массив конфигураций для этого интерфейса. В настоящее время поддерживается только одна конфигурация доступа, ONE_TO_ONE_NAT. Если accessConfigs не указаны, то этот экземпляр не будет иметь внешнего доступа к Интернету. | ||||
| name обязательно | Имя этой конфигурации доступа. Рекомендуемое имя по умолчанию — External NAT, но вы можете использовать любое произвольное строковое значение. Например, My external IP или Network Access. | ||||
| nat_ip обязательно | Ссылка на ресурс Address. | ||||
| type обязательно |
| Тип конфигурации. По умолчанию и единственный вариант — ONE_TO_ONE_NAT. | |||
| alias_ip_ranges | Массив диапазонов IP-адресов alias для этого сетевого интерфейса. Может быть указан только для сетевых интерфейсов на сетях в режиме подсети. | ||||
| ip_cidr_range | Диапазон IP CIDR, представленный этим диапазоном alias IP-адресов. Этот диапазон IP CIDR должен принадлежать указанной подсети и не может содержать IP-адреса, зарезервированные системой или используемые другими сетевыми интерфейсами. Этот диапазон может быть единственным IP-адресом (например, 10.2.3.4), маской сети (например, /24) или строкой в формате CIDR (например, 10.1.2.0/24). | ||||
| имя_диапазона_подсети | Необязательное имя дополнительного диапазона подсети, определяющее дополнительный диапазон, из которого необходимо выделить диапазон IP-адресов CIDR для этого диапазона IP-адресов алиаса. Если не указано, будет использован первичный диапазон подсети. | ||||
| имя | Имя сетевого интерфейса, сгенерированное сервером. Для сетевых устройств это eth0, eth1 и т. д. | ||||
| сеть | Ссылка на ресурс сети. | ||||
| сетевой_ip | Внутренний IPv4-адрес сети, который необходимо назначить экземпляру для этого сетевого интерфейса. Если пользователь не указывает, система назначает свободный внутренний IP-адрес. | ||||
| подсеть | Ссылка на ресурс подсети. | ||||
| проект | Используемый проект Google Cloud Platform. | ||||
| планирование | Устанавливает параметры планирования для данного экземпляра. | ||||
| автоматический_перезапуск bool |
| Указывает, следует ли автоматически перезапускать экземпляр, если он был завершён Compute Engine (но не пользователем). Вы можете установить параметр автоматического перезапуска только для стандартных экземпляров. Для предварительных экземпляров автоматический перезапуск невозможен. | |||
| при_обслуживании_хоста | Определяет поведение при обслуживании для данного экземпляра. Для стандартных экземпляров поведение по умолчанию — MIGRATE. Для предварительных экземпляров — TERMINATE. Для получения дополнительной информации см. Установка параметров планирования экземпляра. | ||||
| предварительный bool |
| Определяет, является ли экземпляр предварительным. Это можно задать только при создании экземпляра, изменить после создания нельзя. | |||
| разрешения обязательно | Массив разрешений для использования. | ||||
| электронная_почта_учета_службы | Необязательный адрес электронной почты учетной записи службы, если выбрано machineaccount и пользователь не хочет использовать адрес по умолчанию. | ||||
| файл_учета_службы | Путь к файлу JSON учетной записи службы, если тип учетной записи выбран как serviceaccount. | ||||
| учетные_записи_служб | Список учетных записей служб с указанными разрешениями, авторизованных для данного экземпляра. Поддерживается только одна учетная запись службы на виртуальной машине. | ||||
| электронная_почта bool |
| Адрес электронной почты учетной записи службы. | |||
| разрешения | Список разрешений, которые должны быть доступны для этой учетной записи службы. | ||||
| состояние обязательно |
| Требуется ли данному объекту существование в GCP | |||
| метки | Список меток, которые необходимо применить к этому экземпляру. Метки используются для идентификации допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании экземпляра. Метки можно позже изменить методом setTags. Каждая метка в списке должна соответствовать RFC1035. | ||||
| отпечаток | Указывает отпечаток для данного запроса, который представляет собой хэш содержимого метаданных и используется для оптимистического блокирования. Отпечаток первоначально генерируется Compute Engine и изменяется после каждого запроса для изменения или обновления метаданных. Для обновления или изменения метаданных необходимо всегда указывать актуальный хэш отпечатка. | ||||
| элементы | Массив меток. Каждая метка должна иметь длину от 1 до 63 символов и соответствовать RFC1035. | ||||
| зона обязательно | Ссылка на ресурс зоны. | ||||
Примечания
Примечание
- Для аутентификации можно задать service_account_file с помощью переменной среды
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации можно задать service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно задать auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно задать разрешения с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в плейбуке не заданы.
- Параметры service_account_email и service_account_file взаимоисключают друг друга.
Примеры
- name: create a disk
gcp_compute_disk:
name: 'disk-instance'
size_gb: 50
source_image: 'projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts'
zone: us-central1-a
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/compute
state: present
register: disk
- name: create a network
gcp_compute_network:
name: 'network-instance'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/compute
state: present
register: network
- name: create a address
gcp_compute_address:
name: 'address-instance'
region: 'us-central1'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/compute
state: present
register: address
- name: create a instance
gcp_compute_instance:
name: testObject
machine_type: n1-standard-1
disks:
- auto_delete: true
boot: true
source: "{{ disk }}"
metadata:
startup-script-url: 'gs:://graphite-playground/bootstrap.sh'
cost-center: '12345'
network_interfaces:
- network: "{{ network }}"
access_configs:
- name: 'External NAT'
nat_ip: "{{ address }}"
type: 'ONE_TO_ONE_NAT'
zone: 'us-central1-a'
project: testProject
auth_kind: service_account
service_account_file: /tmp/auth.pem
scopes:
- https://www.googleapis.com/auth/compute
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключевые параметры | Результат | Описание | |||
|---|---|---|---|---|---|
| can_ip_forward bool | успех | Разрешает этому экземпляру отправлять и получать пакеты с несовпадающими IP-адресами назначения или источника. Это необходимо, если вы планируете использовать этот экземпляр для переадресации маршрутов. | |||
| cpu_platform str | успех | Платформа процессора, используемая этим экземпляром. | |||
| creation_timestamp str | успех | Маркер создания в формате текста RFC3339. | |||
| disks complex | успех | Массив дисков, связанных с экземплярами, созданными по этому шаблону. | |||
| auto_delete bool | успех | Указывает, будет ли диск автоматически удален при удалении экземпляра (но не при отделении диска от экземпляра). Совет: Диски следует устанавливать в autoDelete=true, чтобы избежать остатков дисков после удаления машины. | |||
| boot bool | успех | Указывает, что это загрузочный диск. Виртуальная машина будет использовать первый раздел диска для своей корневой файловой системы. | |||
| device_name str | успех | Указывает уникальное имя устройства по вашему выбору, которое отображается в дереве /dev/disk/by-id/google-* операционной системы Linux, работающей внутри экземпляра. Это имя можно использовать для ссылки на устройство для монтирования, изменения размера и т. д. изнутри экземпляра. | |||
| disk_encryption_key complex | успех | Шифрует или расшифровывает диск с помощью предоставленного клиентом ключа шифрования. | |||
| raw_key str | успех | Указывает 256-битный ключ шифрования, предоставленный клиентом, закодированный в base64 по RFC 4648 для шифрования или расшифрования этого ресурса. | |||
| rsa_encrypted_key str | успех | Указывает закодированный в base64 по RFC 4648, обернутый RSA, 2048-битный ключ шифрования, предоставленный клиентом, для шифрования или расшифрования этого ресурса. | |||
| sha256 str | успех | Закодированный в base64 по RFC 4648 SHA-256 хэш ключа шифрования, предоставленного клиентом, который защищает этот ресурс. | |||
| index int | успех | Присваивает индекс с нуля этому диску, где 0 зарезервирован для загрузочного диска. Например, если к экземпляру подключено много дисков, каждый диск будет иметь уникальный индекс. Если не указано, сервер выберет подходящее значение. | |||
| initialize_params complex | успех | Указывает параметры для нового диска, который будет создан вместе с новым экземпляром. Используйте параметры инициализации для создания загрузочных дисков или локальных SSD, подключенных к новому экземпляру. | |||
| disk_name str | успех | Указывает имя диска. Если не указано, используется имя экземпляра по умолчанию. | |||
| disk_size_gb int | успех | Указывает размер диска в ГБ в базе-2. | |||
| disk_type str | успех | Ссылка на ресурс DiskType. | |||
| source_image str | успех | Исходный образ для создания этого диска. При создании нового экземпляра требуется либо initializeParams.sourceImage, либо disks.source. Для создания диска с одним из общедоступных образов операционной системы укажите имя семейства образа. | |||
| source_image_encryption_key complex | успех | Ключ шифрования исходного образа, предоставленный клиентом. Требуется, если исходный образ защищен ключом шифрования, предоставленным клиентом. Шаблоны экземпляров не хранят ключи шифрования, предоставленные клиентом, поэтому вы не можете создавать диски для экземпляров в управляемой группе экземпляров, если исходные образы зашифрованы вашими ключами. | |||
| raw_key str | успех | Указывает 256-битный ключ шифрования, предоставленный клиентом, закодированный в base64 по RFC 4648 для шифрования или расшифрования этого ресурса. | |||
| sha256 str | успех | Закодированный в base64 по RFC 4648 SHA-256 хэш ключа шифрования, предоставленного клиентом, который защищает этот ресурс. | |||
| interface str | успех | Указывает интерфейс диска для подключения, либо SCSI, либо NVME. По умолчанию SCSI. Постоянные диски всегда должны использовать SCSI, и запрос завершится ошибкой, если вы попытаетесь подключить постоянный диск в другом формате, кроме SCSI. | |||
| mode str | успех | Режим подключения диска, либо READ_WRITE, либо READ_ONLY. Если не указано, подключается в режиме READ_WRITE. | |||
| source dict | успех | Ссылка на ресурс диска. | |||
| type str | успех | Указывает тип диска, либо SCRATCH, либо PERSISTENT. По умолчанию PERSISTENT. | |||
| guest_accelerators complex | успех | Список типов и количества ускорителей, подключенных к экземпляру. | |||
| accelerator_count int | успех | Количество ускорителей, доступных для этого экземпляра. | |||
| accelerator_type str | успех | Полный или частичный URL ресурса типа ускорителя, доступного для этого экземпляра. | |||
| id int | успех | Уникальный идентификатор ресурса, определённый сервером. | |||
| label_fingerprint str | успех | Отпечаток запроса, представляющий собой хэш содержимого метаданных и используемый для оптимистической блокировки. Отпечаток первоначально генерируется Compute Engine и изменяется после каждого запроса на изменение или обновление метаданных. Для обновления или изменения метаданных всегда необходимо предоставить обновленный хэш отпечатка. | |||
| machine_type str | успех | Ссылка на ресурс MachineType. | |||
| metadata dict | успех | Ключи и значения метаданных, которые будут назначены экземплярам, созданным по этому шаблону. Эти пары могут содержать пользовательские метаданные или предопределённые ключи. | |||
| min_cpu_platform str | успех | Указывает минимальную платформу процессора для виртуальной машины. Допустимые значения — дружественные имена платформ процессоров. | |||
| name str | успех | Имя ресурса, предоставленное клиентом при первоначальном создании ресурса. Имя ресурса должно иметь длину от 1 до 63 символов и соответствовать RFC1035. То есть, длина должна быть от 1 до 63 символов, и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефис, строчная буква или цифра, за исключением последнего символа, который не может быть дефисом. | |||
| network_interfaces complex | успех | Массив конфигураций для этого интерфейса. Определяет, как этот интерфейс настроен для взаимодействия с другими сетевыми службами, например, для подключения к интернету. Поддерживается только один сетевой интерфейс на экземпляр. | |||
| access_configs complex | success | Массив конфигураций для этого интерфейса. В настоящее время поддерживается только одна конфигурация доступа ONE_TO_ONE_NAT. Если accessConfigs не указаны, то у этого экземпляра не будет внешнего доступа к интернету. | |||
| name str | success | Имя этой конфигурации доступа. Рекомендуемое имя — External NAT, но вы можете использовать любое произвольное строковое значение. Например, My external IP или Network Access. | |||
| nat_ip dict | success | Ссылка на ресурс Address. | |||
| type str | success | Тип конфигурации. Единственный и рекомендуемый вариант — ONE_TO_ONE_NAT. | |||
| alias_ip_ranges complex | success | Массив альтернативных диапазонов IP-адресов для этого сетевого интерфейса. Может быть указан только для сетевых интерфейсов на сетях с режимом subnet. | |||
| ip_cidr_range str | success | Диапазон IP CIDR, представленный этим альтернативным диапазоном IP-адресов. Этот диапазон IP CIDR должен принадлежать указанной подсети и не может содержать зарезервированные системой IP-адреса или адреса, используемые другими сетевыми интерфейсами. Этот диапазон может представлять собой одиночный IP-адрес (например, 10.2.3.4), маску сети (например, /24) или строку в формате CIDR (например, 10.1.2.0/24). | |||
| subnetwork_range_name str | success | Необязательное имя вторичного диапазона подсети, определяющее вторичный диапазон, из которого следует выделить диапазон IP CIDR для этого альтернативного диапазона IP-адресов. Если не указан, будет использован первичный диапазон подсети. | |||
| name str | success | Имя сетевого интерфейса, сгенерированное сервером. Для сетевых устройств это eth0, eth1 и т. д. | |||
| network dict | success | Ссылка на сетевой ресурс Network. | |||
| network_ip str | success | Внутренний IPv4-адрес сети для назначения экземпляру по этому сетевому интерфейсу. Если не указан пользователем, система назначает неиспользуемый внутренний IP-адрес. | |||
| subnetwork dict | success | Ссылка на ресурс подсети Subnetwork. | |||
| scheduling complex | success | Устанавливает параметры планирования для этого экземпляра. | |||
| automatic_restart bool | success | Указывает, должен ли экземпляр автоматически перезапускаться, если он завершается Compute Engine (а не пользователем). Вы можете установить параметр автоматического перезапуска только для стандартных экземпляров. Для предварительно назначаемых экземпляров автоматический перезапуск недоступен. | |||
| on_host_maintenance str | success | Определяет поведение при обслуживании хоста для этого экземпляра. Для стандартных экземпляров по умолчанию используется поведение MIGRATE. Для предварительно назначаемых экземпляров поведение по умолчанию и единственный возможный вариант — TERMINATE. Дополнительную информацию см. в разделе Установка параметров планирования экземпляров. | |||
| preemptible bool | success | Определяет, является ли экземпляр предварительно назначаемым. Этот параметр можно задавать только при создании экземпляра; после создания экземпляра его нельзя изменить. | |||
| service_accounts complex | success | Список учетных записей сервисов со своими указанными областями действия, авторизованных для этого экземпляра. Для одной виртуальной машины поддерживается только одна учетная запись сервиса. | |||
| email bool | success | Адрес электронной почты учетной записи сервиса. | |||
| scopes list | success | Список областей действия, которые должны быть доступны для этой учетной записи сервиса. | |||
| status str | success | Состояние экземпляра. Одно из следующих значений: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED и TERMINATED. | |||
| status_message str | success | Необязательное удобочитаемое описание состояния. | |||
| tags complex | success | Список тегов, применяемых к этому экземпляру. Теги используются для идентификации допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании экземпляра. Теги могут быть изменены методом setTags. Каждый тег в списке должен соответствовать RFC1035. | |||
| fingerprint str | success | Указывает отпечаток для этого запроса, который представляет собой по существу хеш содержимого метаданных и используется для оптимистической блокировки. Отпечаток первоначально генерируется Compute Engine и изменяется после каждого запроса на изменение или обновление метаданных. Чтобы обновить или изменить метаданные, вы всегда должны указать актуальный хеш отпечатка. | |||
| items list | success | Массив тегов. Каждый тег должен иметь длину от 1 до 63 символов и соответствовать RFC1035. | |||
| zone str | success | Ссылка на ресурс зоны Zone. | |||
Состояние
Этот модуль помечен как превью, что означает, что гарантии обратной совместимости интерфейса нет.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что его поддерживает сообщество Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, также поддерживаемых сообществом Ansible, см. здесь.
Автор
- Google Inc. (@googlecloudplatform)
Подсказка
Если вы обнаружите проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/gcp_compute_instance_module.html