google.cloud.gcp_compute_disk – Создаёт диск GCP
Примечание
Этот плагин входит в состав коллекции google.cloud (версия 1.0.2).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Чтобы использовать его в книге задач, укажите: google.cloud.gcp_compute_disk.
Обзор
- Накопители — это долговременные устройства хранения данных, функционирующие аналогично физическим дискам на настольном компьютере или сервере. Compute Engine управляет оборудованием этих устройств, чтобы обеспечить избыточность данных и оптимизировать производительность. Накопители могут быть стандартными жёсткими дисками (HDD) или твердотельными накопителями (SSD).
- Накопители расположены независимо от виртуальных машин, поэтому вы можете отсоединить или переместить накопители, чтобы сохранить данные даже после удаления виртуальных машин. Производительность накопителей автоматически масштабируется с размером, поэтому вы можете изменить размер существующих накопителей или добавить больше накопителей к виртуальной машине, чтобы удовлетворить требованиям к производительности и объёму хранения.
- Добавьте накопитель к виртуальной машине, когда вам нужно надёжное и доступное хранилище с постоянными характеристиками производительности.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | |
| description строка | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | ||
| disk_encryption_key словарь | Шифрует диск с помощью предоставленного пользователем ключа шифрования. После шифрования диска с помощью предоставленного пользователем ключа, вам необходимо предоставить тот же ключ, если вы в дальнейшем используете диск (например, для создания снимка диска или образа, или для подключения диска к виртуальной машине). Ключи шифрования, предоставленные пользователем, не защищают доступ к метаданным диска. Если вы не предоставите ключ шифрования при создании диска, то диск будет зашифрован с помощью автоматически сгенерированного ключа, и вам не нужно будет предоставлять ключ для дальнейшего использования диска. | ||
| kms_key_name строка | Имя ключа шифрования, хранящегося в Google Cloud KMS. Служебный аккаунт вашей проектной системы Compute Engine (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) должен иметь роль `roles/cloudkms.cryptoKeyEncrypterDecrypter`, чтобы использовать эту функцию. | ||
| kms_key_service_account строка | Служебный аккаунт, используемый для запроса шифрования для данного ключа KMS. Если отсутствует, используется служебный аккаунт агента Compute Engine. | ||
| raw_key строка | Определяет 256-битный ключ шифрования, предоставленный пользователем, закодированный в RFC 4648 base64 для шифрования или расшифрования этого ресурса. | ||
| env_type строка | Указывает, в какой среде Ansible вы выполняете этот модуль. Это не следует устанавливать, если вы не знаете, что делаете. Это изменяет только строку User Agent для любых запросов к API. | ||
| labels словарь | Метки для применения к этому диску. Список пар ключ-значение. | ||
| licenses список / элементы=строка | Любые применимые общедоступные лицензии. | ||
| name строка / обязательно | Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. То есть, длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. | ||
| physical_block_size_bytes целое число | Физический размер блока постоянного диска в байтах. Если не указано в запросе, используется значение по умолчанию. В настоящее время поддерживаются размеры 4096 и 16384, в будущем могут быть добавлены другие размеры. Если запрошен недопустимый размер, сообщение об ошибке перечислит поддерживаемые значения для проекта вызывающего. | ||
| project строка | Проект Google Cloud Platform для использования. | ||
| scopes список / элементы=строка | Массив используемых областей видимости | ||
| service_account_contents jsonarg | Содержимое файла JSON служебного аккаунта, либо в словаре, либо как строка JSON, которая его представляет. | ||
| service_account_email строка | Необязательный адрес электронной почты служебного аккаунта, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | ||
| service_account_file путь | Путь к файлу JSON служебного аккаунта, если serviceaccount выбран в качестве типа. | ||
| size_gb целое число | Размер постоянного диска в ГБ. Вы можете указать это поле при создании постоянного диска, используя параметр sourceImage или sourceSnapshot, или указать его самостоятельно, чтобы создать пустой постоянный диск. Если вы укажете это поле вместе с sourceImage или sourceSnapshot, значение sizeGb не должно быть меньше размера sourceImage или размера снимка. | ||
| source_image строка | Образ, используемый для создания этого диска. Если исходный образ удален, это поле не будет установлено. Чтобы создать диск с одним из общедоступных образов операционной системы, укажите образ по его семейному имени. Например, укажите family/debian-9, чтобы использовать последний образ Debian 9: projects/debian-cloud/global/images/family/debian-9 В качестве альтернативы, используйте определенную версию общедоступного образа операционной системы: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD Чтобы создать диск с частным образом, который вы создали, укажите имя образа в следующем формате: global/images/my-private-image Вы также можете указать частный образ по его семейному имени, что возвращает последнюю версию образа в этом семействе. Замените имя образа на family/family-name: global/images/family/my-private-family . | ||
| source_image_encryption_key словарь | Ключ шифрования, предоставленный пользователем, исходного образа. Требуется, если исходный образ защищен ключом шифрования, предоставленным пользователем. | ||
| kms_key_name строка | Имя ключа шифрования, хранящегося в Google Cloud KMS. | ||
| kms_key_service_account строка | Служебный аккаунт, используемый для запроса шифрования для данного ключа KMS. Если отсутствует, используется служебный аккаунт агента Compute Engine. | ||
| raw_key строка | Определяет 256-битный ключ шифрования, предоставленный пользователем, закодированный в RFC 4648 base64 для шифрования или расшифрования этого ресурса. | ||
| source_snapshot словарь | Исходный снимок, используемый для создания этого диска. Вы можете предоставить его как частичный или полный URL-адрес ресурса. Это поле представляет ссылку на ресурс Snapshot в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: name-of-resource` к задаче gcp_compute_snapshot и затем установить это поле source_snapshot в "{{ name-of-resource }}" | ||
| source_snapshot_encryption_key словарь | Ключ шифрования, предоставленный пользователем, исходного снимка. Требуется, если исходный снимок защищен ключом шифрования, предоставленным пользователем. | ||
| kms_key_name строка | Имя ключа шифрования, хранящегося в Google Cloud KMS. | ||
| kms_key_service_account строка | Служебный аккаунт, используемый для запроса шифрования для данного ключа KMS. Если отсутствует, используется служебный аккаунт агента Compute Engine. | ||
| raw_key строка | Определяет 256-битный ключ шифрования, предоставленный пользователем, закодированный в RFC 4648 base64 для шифрования или расшифрования этого ресурса. | ||
| state строка |
| Указывает, должен ли данный объект существовать в GCP | |
| type строка | URL ресурса типа диска, описывающего тип диска, который следует использовать для создания диска. Укажите это при создании диска. | ||
| zone строка / обязательно | Ссылка на зону, где находится диск. | ||
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/v1/disks
- Добавление постоянного диска: https://cloud.google.com/compute/docs/disks/add-persistent-disk
- для аутентификации можно установить service_account_file с помощью переменной среды
gcp_service_account_file. - для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - для аутентификации можно установить 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 disk
google.cloud.gcp_compute_disk:
name: test_object
size_gb: 50
disk_encryption_key:
raw_key: SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=
zone: us-central1-a
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращено | Описание | |
|---|---|---|---|
| creationTimestamp строка | успешно | Маркер создания в формате текста RFC3339. | |
| description строка | успешно | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |
| diskEncryptionKey сложный | успешно | Шифрует диск с помощью предоставленного клиентом ключа шифрования. После шифрования диска с помощью ключа, предоставленного клиентом, вы должны предоставить тот же ключ, если используете диск позднее (например, для создания моментального снимка диска или образа, или для подключения диска к виртуальной машине). Ключи шифрования, предоставленные клиентом, не защищают доступ к метаданным диска. Если вы не предоставите ключ шифрования при создании диска, то диск будет зашифрован с помощью автоматически сгенерированного ключа, и вам не нужно будет предоставлять ключ для использования диска позднее. | |
| kmsKeyName строка | успешно | Имя ключа шифрования, хранящегося в Google Cloud KMS. Учетная запись службы Compute Engine вашего проекта (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) должна иметь роль `roles/cloudkms.cryptoKeyEncrypterDecrypter`, чтобы использовать эту функцию. | |
| kmsKeyServiceAccount строка | успешно | Учетная запись службы, используемая для запроса шифрования для данного ключа KMS. Если отсутствует, используется учетная запись агента службы Compute Engine. | |
| rawKey строка | успешно | Указывает 256-битный ключ шифрования, предоставленный клиентом, закодированный в base64 RFC 4648 для шифрования или дешифрования этого ресурса. | |
| sha256 строка | успешно | Закодированный в base64 RFC 4648 хэш SHA-256 ключа шифрования, предоставленного клиентом, который защищает этот ресурс. | |
| id целое число | успешно | Уникальный идентификатор ресурса. | |
| labelFingerprint строка | успешно | Отпечаток, используемый для оптимистической блокировки этого ресурса. Используется внутри при обновлениях. | |
| labels словарь | успешно | Метки для применения к этому диску. Список пар ключ-значение. | |
| lastAttachTimestamp строка | успешно | Последняя метка времени подключения в формате текста RFC3339. | |
| lastDetachTimestamp строка | успешно | Последняя метка времени отключения в формате текста RFC3339. | |
| licenses список / элементы=строка | успешно | Все применимые общедоступные лицензии. | |
| name строка | успешно | Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. | |
| physicalBlockSizeBytes целое число | успешно | Физический размер блока постоянного диска в байтах. Если отсутствует в запросе, используется значение по умолчанию. В настоящее время поддерживаются размеры 4096 и 16384; другие размеры могут быть добавлены в будущем. Если запрашивается недопустимое значение, сообщение об ошибке будет содержать список поддерживаемых значений для проекта вызывающего. | |
| sizeGb целое число | успешно | Размер постоянного диска в ГБ. Вы можете указать это поле при создании постоянного диска с помощью параметра sourceImage или sourceSnapshot, или указать его отдельно для создания пустого постоянного диска. Если вы указываете это поле вместе с sourceImage или sourceSnapshot, значение sizeGb должно быть не меньше размера sourceImage или размера снимка. | |
| sourceImage строка | успешно | Образ, используемый для создания этого диска. Если образ удален, это поле не будет установлено. Для создания диска с одним из общедоступных образов операционных систем укажите имя семейства образа. Например, укажите family/debian-9 для использования последнего образа Debian 9: projects/debian-cloud/global/images/family/debian-9 Или используйте конкретную версию общедоступного образа операционной системы: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD Для создания диска с частным образом, который вы создали, укажите имя образа в следующем формате: global/images/my-private-image Вы также можете указать частный образ по его семейству образов, что возвращает последнюю версию образа в этом семействе. Замените имя образа на family/family-name: global/images/family/my-private-family . | |
| sourceImageEncryptionKey сложный | успешно | Ключ шифрования, предоставленный клиентом, для исходного образа. Требуется, если исходный образ защищен ключом шифрования, предоставленным клиентом. | |
| kmsKeyName строка | успешно | Имя ключа шифрования, хранящегося в Google Cloud KMS. | |
| kmsKeyServiceAccount строка | успешно | Учетная запись службы, используемая для запроса шифрования для данного ключа KMS. Если отсутствует, используется учетная запись агента службы Compute Engine. | |
| rawKey строка | успешно | Указывает 256-битный ключ шифрования, предоставленный клиентом, закодированный в base64 RFC 4648 для шифрования или дешифрования этого ресурса. | |
| sha256 строка | успешно | Закодированный в base64 RFC 4648 хэш SHA-256 ключа шифрования, предоставленного клиентом, который защищает этот ресурс. | |
| sourceImageId строка | успешно | Значение ID образа, используемого для создания этого диска. Это значение идентифицирует точный образ, который был использован для создания этого постоянного диска. Например, если вы создали постоянный диск из образа, который позже был удален и воссоздан под тем же именем, идентификатор исходного образа определит точную версию образа, которая была использована. | |
| sourceSnapshot словарь | успешно | Исходный снимок, используемый для создания этого диска. Вы можете предоставить его как частичный или полный URL-адрес ресурса. | |
| sourceSnapshotEncryptionKey сложный | успешно | Ключ шифрования, предоставленный клиентом, для исходного снимка. Требуется, если исходный снимок защищен ключом шифрования, предоставленным клиентом. | |
| kmsKeyName строка | успешно | Имя ключа шифрования, хранящегося в Google Cloud KMS. | |
| kmsKeyServiceAccount строка | успешно | Учетная запись службы, используемая для запроса шифрования для данного ключа KMS. Если отсутствует, используется учетная запись агента службы Compute Engine. | |
| rawKey строка | успешно | Указывает 256-битный ключ шифрования, предоставленный клиентом, закодированный в base64 RFC 4648 для шифрования или дешифрования этого ресурса. | |
| sha256 строка | успешно | Закодированный в base64 RFC 4648 хэш SHA-256 ключа шифрования, предоставленного клиентом, который защищает этот ресурс. | |
| sourceSnapshotId строка | успешно | Уникальный идентификатор снимка, используемого для создания этого диска. Это значение идентифицирует точный снимок, который был использован для создания этого постоянного диска. Например, если вы создали постоянный диск из снимка, который был позже удален и воссоздан под тем же именем, идентификатор исходного снимка определит точную версию снимка, которая была использована. | |
| type строка | успешно | URL ресурса типа диска, описывающего тип диска, который следует использовать для создания диска. Укажите это при создании диска. | |
| users список / элементы=строка | успешно | Ссылки на пользователей диска (подключенные виртуальные машины) в форме: project/zones/zone/instances/instance . | |
| zone строка | успешно | Ссылка на зону, в которой находится диск. | |
Авторы
- Google Inc. (@googlecloudplatform)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/google/cloud/gcp_compute_disk_module.html