gcp_compute_instance_template - Создаёт шаблон виртуальной машины GCP
Новая версия с 2.6.
Обзор
- Определяет ресурс шаблона виртуальной машины, который предоставляет параметры конфигурации для ваших виртуальных машин. Шаблоны виртуальных машин не привязаны к жизненному циклу экземпляра и могут использоваться и повторно использоваться для развертывания виртуальных машин. Вы также можете использовать различные шаблоны для создания различных конфигураций виртуальных машин. Шаблоны виртуальных машин необходимы при создании управляемой группы экземпляров.
- Подсказка: Диски должны быть настроены с autoDelete=true, чтобы после удаления машины не оставались лишние диски.
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||||
|---|---|---|---|---|---|---|
| auth_kind обязательно |
| Тип используемых учетных данных. | ||||
| description | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |||||
| name обязательно | Имя ресурса. Имя состоит из 1-63 символов и соответствует RFC1035. | |||||
| project | Проект Google Cloud Platform для использования. | |||||
| properties | Свойства виртуальной машины для этой модели виртуальной машины. | |||||
| can_ip_forward bool |
| Разрешает экземплярам, созданным на основе этой модели, отправлять пакеты с исходными IP-адресами, отличными от их собственных, и принимать пакеты с целевыми IP-адресами, отличными от их собственных. Если эти экземпляры будут использоваться в качестве IP-шлюза или будут установлены как следующий узел в ресурсе маршрута, укажите true. Если не уверены, оставьте это значение false. | ||||
| description | Необязательное текстовое описание экземпляров, созданных из этой модели виртуальной машины. | |||||
| disks | Массив дисков, связанных с экземплярами, созданными из этой модели. | |||||
| auto_delete bool |
| Указывает, будет ли диск автоматически удален при удалении экземпляра (но не при отделении диска от экземпляра). Совет: Диски должны быть установлены autoDelete=true, чтобы избежать оставшихся дисков при удалении машины. | ||||
| boot bool |
| Указывает, что это загрузочный диск. Виртуальная машина будет использовать первый раздел диска для своей корневой файловой системы. | ||||
| device_name | Указывает уникальное имя устройства по вашему выбору, которое отображается в дереве /dev/disk/by-id/google-* операционной системы Linux, работающей в экземпляре. Это имя можно использовать для ссылки на устройство для монтирования, изменения размера и т. д. изнутри экземпляра. | |||||
| disk_encryption_key | Шифрует или расшифровывает диск с помощью предоставленного пользователем ключа шифрования. | |||||
| raw_key | Указывает 256-битный ключ шифрования, предоставленный пользователем, закодированный в base64 RFC 4648 для шифрования или дешифрования этого ресурса. | |||||
| rsa_encrypted_key | Указывает закодированный в base64 RFC 4648, обернутый RSA, 2048-битный ключ шифрования, предоставленный пользователем, для шифрования или дешифрования этого ресурса. | |||||
| sha256 | Закодированный в base64 RFC 4648 SHA-256 хэш ключа шифрования, предоставленного пользователем, который защищает этот ресурс. | |||||
| index | Назначает индекс, начинающийся с нуля, этому диску, где 0 зарезервирован для загрузочного диска. Например, если у вас много дисков, подключенных к экземпляру, каждый диск будет иметь уникальный номер индекса. Если не указано, сервер выберет соответствующее значение. | |||||
| initialize_params | Указывает параметры для нового диска, который будет создан вместе с новым экземпляром. Используйте параметры инициализации для создания загрузочных дисков или локальных SSD, подключенных к новому экземпляру. | |||||
| disk_name | Указывает имя диска. Если не указано, по умолчанию используется имя экземпляра. | |||||
| disk_size_gb | Указывает размер диска в ГБ. | |||||
| disk_type | Ссылка на ресурс типа диска. | |||||
| source_image | Исходный образ для создания этого диска. При создании нового экземпляра требуется один из initializeParams.sourceImage или disks.source. Чтобы создать диск с одним из общедоступных образов операционной системы, укажите имя семейства образа. | |||||
| source_image_encryption_key | Ключ шифрования, предоставленный пользователем, исходного образа. Требуется, если исходный образ защищен ключом шифрования, предоставленным пользователем. Шаблоны экземпляров не хранят ключи шифрования, предоставленные пользователем, поэтому вы не можете создавать диски для экземпляров в управляемой группе экземпляров, если исходные образы зашифрованы с помощью ваших собственных ключей. | |||||
| raw_key | Указывает 256-битный ключ шифрования, предоставленный пользователем, закодированный в base64 RFC 4648 для шифрования или дешифрования этого ресурса. | |||||
| sha256 | Закодированный в base64 RFC 4648 SHA-256 хэш ключа шифрования, предоставленного пользователем, который защищает этот ресурс. | |||||
| interface |
| Указывает интерфейс диска для подключения этого диска, который может быть SCSI или NVME. По умолчанию используется SCSI. Постоянные диски всегда должны использовать SCSI, и запрос завершится ошибкой, если вы попытаетесь подключить постоянный диск в любом другом формате, кроме SCSI. | ||||
| mode |
| Режим подключения этого диска, либо READ_WRITE, либо READ_ONLY. Если не указано, по умолчанию диск подключается в режиме READ_WRITE. | ||||
| source | Ссылка на ресурс диска. | |||||
| type |
| Указывает тип диска, либо SCRATCH, либо PERSISTENT. Если не указано, по умолчанию используется PERSISTENT. | ||||
| machine_type обязательно | Ссылка на ресурс типа виртуальной машины. | |||||
| metadata | Ключевые пары метаданных для назначения экземплярам, созданным из этой модели. Эти пары могут состоять из пользовательских метаданных или предопределённых ключей. | |||||
| guest_accelerators | Список типа и количества ускорителей, подключенных к экземпляру. | |||||
| accelerator_count | Количество ускорителей гостевой ОС, доступных для этого экземпляра. | |||||
| accelerator_type | Полный или частичный URL ресурса типа ускорителя, доступного для этого экземпляра. | |||||
| network_interfaces | Массив конфигураций для этого интерфейса. Это определяет, как этот интерфейс настроен для взаимодействия с другими сетевыми службами, например, для подключения к интернету. Поддерживается только один сетевой интерфейс на один экземпляр. | |||||
| access_configs | Массив конфигураций для этого интерфейса. В настоящее время поддерживается только одна конфигурация доступа ONE_TO_ONE_NAT. Если конфигурации доступа не указаны, у этого экземпляра не будет внешнего доступа к интернету. | |||||
| name обязательно | Имя этой конфигурации доступа. По умолчанию и рекомендуется использовать имя External NAT, но можно использовать любую произвольную строку. Например, My external IP или Network Access. | |||||
| nat_ip обязательно | Ссылка на ресурс адреса. | |||||
| тип обязательно |
| Тип конфигурации. По умолчанию и единственный вариант — ONE_TO_ONE_NAT. | ||||
| alias_ip_ranges | Массив псевдонимов диапазонов IP-адресов для этого сетевого интерфейса. Может быть указан только для сетевых интерфейсов на сетях в режиме подсети. | |||||
| ip_cidr_range | Диапазон IP CIDR, представленный этим псевдонимом IP-адреса. Этот диапазон IP CIDR должен принадлежать указанной подсети и не должен содержать IP-адреса, зарезервированные системой или используемые другими сетевыми интерфейсами. Этот диапазон может представлять собой один IP-адрес (например, 10.2.3.4), маску сети (например, /24) или строку в формате CIDR (например, 10.1.2.0/24). | |||||
| subnetwork_range_name | Необязательное имя вторичного диапазона подсети, указывающее вторичный диапазон, из которого следует выделить диапазон IP CIDR для этого псевдонима IP-адреса. Если не указано, будет использоваться основной диапазон подсети. | |||||
| имя | Имя сетевого интерфейса, сгенерированное сервером. Для сетевых устройств это eth0, eth1 и т. д. | |||||
| сеть | Ссылка на сетевой ресурс. | |||||
| network_ip | Внутренний IPv4-адрес сети для назначения экземпляру для этого сетевого интерфейса. Если не указан пользователем, система присваивает неиспользуемый внутренний IP-адрес. | |||||
| подсеть | Ссылка на ресурс подсети. | |||||
| планирование | Устанавливает параметры планирования для этого экземпляра. | |||||
| автоматический_перезапуск bool |
| Указывает, следует ли автоматически перезапускать экземпляр, если он завершается системой Compute Engine (а не пользователем). Вы можете установить параметр автоматического перезапуска только для стандартных экземпляров. Для предварительно предопределённых экземпляров автоматический перезапуск недоступен. | ||||
| при_техническом_обслуживании | Определяет поведение при техническом обслуживании для этого экземпляра. Для стандартных экземпляров поведение по умолчанию — MIGRATE. Для предварительно предопределённых экземпляров поведение по умолчанию и единственно возможное — TERMINATE. Для получения дополнительной информации см. Установка параметров планирования экземпляров. | |||||
| предварительно_определённый bool |
| Определяет, является ли экземпляр предварительно предопределённым. Это может быть установлено только во время создания экземпляра, оно не может быть установлено или изменено после создания экземпляра. | ||||
| service_accounts | Список учётных записей службы с указанными областями, авторизованными для этого экземпляра. Поддерживается только одна учётная запись службы на виртуальной машине. | |||||
| email bool |
| Электронный адрес учётной записи службы. | ||||
| scopes | Список областей, которые должны быть доступны для этой учётной записи службы. | |||||
| теги | Список тегов, применяемых к этому экземпляру. Теги используются для идентификации допустимых источников или целей сетевых брандмауэров и указываются клиентом при создании экземпляра. Теги могут быть позже изменены методом setTags. Каждый тег в списке должен соответствовать RFC1035. | |||||
| отпечаток | Указывает отпечаток для этого запроса, который представляет собой хэш содержимого метаданных и используется для оптимистической блокировки. Отпечаток первоначально генерируется Compute Engine и меняется после каждого запроса на изменение или обновление метаданных. Вы всегда должны предоставить актуальный хэш отпечатка для обновления или изменения метаданных. | |||||
| элементы | Массив тегов. Каждый тег должен иметь длину от 1 до 63 символов и соответствовать RFC1035. | |||||
| области обязательно | Массив областей, которые будут использоваться. | |||||
| service_account_email | Необязательный адрес электронной почты учётной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |||||
| service_account_file | Путь к файлу JSON учётной записи службы, если тип serviceaccount выбран. | |||||
| состояние обязательно |
| Должен ли данный объект существовать в GCP | ||||
Примечания
Примечание
- Для аутентификации вы можете установить service_account_file с помощью переменной среды
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации вы можете установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации вы можете установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации вы можете установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в playbook не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a network
gcp_compute_network:
name: 'network-instancetemplate'
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-instancetemplate'
region: 'us-west1'
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 template
gcp_compute_instance_template:
name: testObject
properties:
disks:
- auto_delete: true
boot: true
initialize_params:
source_image: 'projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts'
machine_type: n1-standard-1
network_interfaces:
- network: "{{ network }}"
access_configs:
- name: 'test-config'
type: 'ONE_TO_ONE_NAT'
nat_ip: "{{ address }}"
project: testProject
auth_kind: service_account
service_account_file: /tmp/auth.pem
scopes:
- https://www.googleapis.com/auth/compute
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||||
|---|---|---|---|---|---|---|
| creation_timestamp str | success | Маркер времени создания в формате RFC3339. | ||||
| description str | success | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | ||||
| id int | success | Уникальный идентификатор ресурса. Этот идентификатор определяется сервером. | ||||
| name str | success | Имя ресурса. Длина имени составляет от 1 до 63 символов и соответствует RFC1035. | ||||
| properties complex | success | Свойства экземпляра для этой шаблона экземпляра. | ||||
| can_ip_forward bool | success | Включает возможность для экземпляров, созданных на основе этого шаблона, отправлять пакеты с исходными IP-адресами, отличными от их собственных, и получать пакеты с целевыми IP-адресами, отличными от их собственных. Если эти экземпляры будут использоваться в качестве IP-шлюза или они будут установлены как следующий узел в ресурсе маршрута, укажите true. Если не уверены, оставьте это значение false. | ||||
| description str | success | Необязательное текстовое описание для экземпляров, которые создаются из этого шаблона экземпляра. | ||||
| disks complex | success | Массив дисков, связанных с экземплярами, которые создаются из этого шаблона. | ||||
| auto_delete bool | success | Указывает, будет ли диск автоматически удален при удалении экземпляра (но не при отделении диска от экземпляра). Подсказка: диски должны быть настроены на autoDelete=true, чтобы не оставались ненужные диски после удаления машины. | ||||
| boot bool | success | Указывает, что это загрузочный диск. Виртуальная машина будет использовать первый раздел диска для своей корневой файловой системы. | ||||
| device_name str | success | Указывает уникальное имя устройства по вашему выбору, которое отображается в дереве /dev/disk/by-id/google-* операционной системы Linux, работающей внутри экземпляра. Это имя можно использовать для ссылки на устройство для монтирования, изменения размера и т. д. изнутри экземпляра. | ||||
| disk_encryption_key complex | success | Шифрует или дешифрует диск с помощью предоставленного пользователем ключа шифрования. | ||||
| raw_key str | success | Указывает 256-битный ключ шифрования, предоставленный пользователем, закодированный в формате RFC 4648 base64 для шифрования или дешифрования этого ресурса. | ||||
| rsa_encrypted_key str | success | Указывает закодированный в формате RFC 4648 base64 ключ шифрования, защищённый RSA, 2048-битный ключ, предоставленный пользователем, для шифрования или дешифрования этого ресурса. | ||||
| sha256 str | success | Закодированный в RFC 4648 base64 SHA-256 хэш ключа шифрования, предоставленного пользователем, который защищает этот ресурс. | ||||
| index int | success | Назначает индекс от нуля до этого диска, где 0 зарезервирован для загрузочного диска. Например, если к экземпляру подключено много дисков, каждый диск будет иметь уникальный номер индекса. Если не указано, сервер выберет подходящее значение. | ||||
| initialize_params complex | success | Указывает параметры для нового диска, который будет создан вместе с новым экземпляром. Используйте параметры инициализации для создания загрузочных дисков или локальных SSD, подключенных к новому экземпляру. | ||||
| disk_name str | success | Указывает имя диска. Если не указано, по умолчанию используется имя экземпляра. | ||||
| disk_size_gb int | success | Указывает размер диска в ГБ (в двоичной системе). | ||||
| disk_type str | success | Ссылка на ресурс DiskType. | ||||
| source_image str | success | Источник образа для создания этого диска. При создании нового экземпляра необходимо указать либо initializeParams.sourceImage, либо disks.source. Для создания диска с одним из публичных образов операционной системы укажите имя семейства образа. | ||||
| source_image_encryption_key complex | success | Ключ шифрования источника образа, предоставленный пользователем. Требуется, если образ источника защищен пользовательским ключом шифрования. Шаблоны экземпляров не хранят ключи шифрования, предоставленные пользователем, поэтому вы не можете создавать диски для экземпляров в управляемой группе экземпляров, если образы источника зашифрованы вашими собственными ключами. | ||||
| raw_key str | success | Указывает 256-битный ключ шифрования, предоставленный пользователем, закодированный в RFC 4648 base64, для шифрования или дешифрования этого ресурса. | ||||
| sha256 str | success | Закодированный в RFC 4648 base64 SHA-256 хэш ключа шифрования, предоставленного пользователем, который защищает этот ресурс. | ||||
| interface str | success | Указывает интерфейс диска для подключения, который может быть SCSI или NVME. По умолчанию используется SCSI. Постоянные диски всегда должны использовать SCSI, и запрос завершится ошибкой, если вы попытаетесь подключить постоянный диск в другом формате, кроме SCSI. | ||||
| mode str | success | Режим подключения диска, либо READ_WRITE, либо READ_ONLY. Если не указано, по умолчанию используется режим READ_WRITE. | ||||
| source dict | success | Ссылка на ресурс диска. | ||||
| type str | success | Указывает тип диска, либо SCRATCH, либо PERSISTENT. Если не указано, по умолчанию используется PERSISTENT. | ||||
| machine_type str | success | Ссылка на ресурс типа машины. | ||||
| metadata dict | success | Ключевые значения метаданных, которые нужно назначить экземплярам, созданным из этого шаблона. Эти пары могут состоять из пользовательских метаданных или предопределённых ключей. | ||||
| guest_accelerators complex | success | Список типов и количества ускорителей, подключённых к экземпляру. | ||||
| accelerator_count int | success | Количество ускорителей гостя, доступных для этого экземпляра. | ||||
| accelerator_type str | success | Полный или частичный URL ресурса типа ускорителя, доступного этому экземпляру. | ||||
| network_interfaces complex | success | Массив конфигураций для этого интерфейса. Это определяет, как этот интерфейс настроен для взаимодействия с другими сетевыми службами, такими как подключение к интернету. На экземпляр поддерживается только один сетевой интерфейс. | ||||
| 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-адресов для этого сетевого интерфейса. Может быть указан только для сетевых интерфейсов на сетях в режиме подсети. | ||||
| 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 | Список областей видимости, доступных для этой учетной записи сервиса. | ||||
| tags complex | success | Список тегов для применения к этому экземпляру. Теги используются для идентификации допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании экземпляра. Теги можно позже изменить методом setTags. Каждый тег в списке должен соответствовать RFC1035. | ||||
| fingerprint str | success | Указывает отпечаток для этого запроса, который представляет собой хэш содержимого метаданных и используется для оптимистической блокировки. Отпечаток первоначально генерируется Compute Engine и изменяется после каждого запроса для изменения или обновления метаданных. Для обновления или изменения метаданных всегда необходимо предоставить актуальный хэш отпечатка. | ||||
| items list | success | Массив тегов. Каждый тег должен иметь длину от 1 до 63 символов и соответствовать RFC1035. | ||||
Статус
Этот модуль помечен как preview, что означает, что он не гарантирует обратную совместимость.
Обслуживание
Этот модуль помечен как community, что означает, что он поддерживается сообществом 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_template_module.html