google.cloud.gcp_compute_subnetwork – Создаёт подсеть GCP
Примечание
Этот плагин входит в сборку google.cloud (версия 1.0.1).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Для использования в книге задач укажите: google.cloud.gcp_compute_subnetwork.
Описание
- Сеть VPC — виртуальная версия традиционных физических сетей, существующих внутри и между физическими центрами обработки данных. Сеть VPC обеспечивает подключение для ваших виртуальных машин Compute Engine (VM), контейнеров Container Engine, сервисов App Engine Flex и других ресурсов, связанных с сетью.
- Каждый проект GCP содержит одну или несколько сетей VPC. Каждая сеть VPC — это глобальный сущность, охватывающая все регионы GCP. Эта глобальная сеть VPC позволяет виртуальным машинам и другим ресурсам общаться друг с другом через внутренние, частные IP-адреса.
- Каждая сеть VPC подразделяется на подсети, и каждая подсеть содержится в одном регионе. В регионе для данной сети VPC может быть несколько подсетей. Каждая подсеть имеет непрерывное частное пространство IP адресов RFC1918. В этих подсетях создаются виртуальные машины, контейнеры и т.п.
- При создании виртуальной машины, она должна быть создана в подсети, и виртуальная машина получает свой внутренний IP-адрес из этой подсети.
- Виртуальные машины (VM) в сети VPC могут общаться с виртуальными машинами в других подсетях той же сети VPC, независимо от региона, используя их частные IP-адреса RFC1918. Вы можете изолировать части сети, даже целые подсети, с помощью правил брандмауэра.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется данный модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | |
| description строка | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. Это поле может быть установлено только при создании ресурса. | ||
| env_type строка | Указывает, в какой среде Ansible выполняется этот модуль. Это не нужно устанавливать, если вы не знаете, что делаете. Это изменяет только строку User Agent для всех запросов API. | ||
| ip_cidr_range строка / обязательно | Диапазон внутренних адресов, принадлежащих этой подсети. Укажите это свойство при создании подсети. Например, 10.0.0.0/8 или 192.168.0.0/16. Диапазоны должны быть уникальными и непересекающимися в пределах одной сети. Поддерживается только IPv4. | ||
| name строка / обязательно | Имя ресурса, указанное клиентом при первоначальном создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. То есть длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. | ||
| network словарь / обязательно | Сеть, к которой принадлежит эта подсеть. Только сети в режиме распределённости могут иметь подсети. Это поле представляет ссылку на ресурс Network в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: name-of-resource` в задачу gcp_compute_network, а затем установить это поле network в "{{ name-of-resource }}" | ||
| private_ip_google_access булево |
| При включении виртуальные машины в этой подсети без внешних IP-адресов могут получить доступ к Google API и сервисам, используя Private Google Access. | |
| project строка | Проект Google Cloud Platform, который нужно использовать. | ||
| region строка / обязательно | Регион GCP для этой подсети. | ||
| scopes список / элементы=строка | Массив областей, которые будут использоваться | ||
| secondary_ip_ranges список / элементы=словарь | Массив конфигураций для вторичных диапазонов IP для виртуальных машин, содержащихся в этой подсети. Основной IP такой виртуальной машины должен принадлежать первичному диапазону ipCidrRange подсети. IP-адреса псевдонима могут принадлежать как первичному, так и вторичному диапазонам. | ||
| ip_cidr_range строка / обязательно | Диапазон IP-адресов, принадлежащих вторичному диапазону этой подсети. Укажите это свойство при создании подсети. Диапазоны должны быть уникальными и непересекающимися со всеми первичными и вторичными диапазонами IP в пределах сети. Поддерживается только IPv4. | ||
| range_name строка / обязательно | Имя, связанное со вторичным диапазоном этой подсети, используемое при добавлении диапазона псевдонимов IP к виртуальной машине. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. Имя должно быть уникальным в пределах подсети. | ||
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в словаре, либо как строка JSON, представляющая его. | ||
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | ||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если выбран тип serviceaccount. | ||
| state строка |
| Указывает, должен ли данный объект существовать в GCP | |
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks
- Частный доступ к Google: https://cloud.google.com/vpc/docs/configure-private-google-access
- Сеть Cloud: https://cloud.google.com/vpc/docs/using-vpc
- для аутентификации можно установить 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. - Значения переменных окружения будут использоваться только в том случае, если значения в книге задач не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a network
google.cloud.gcp_compute_network:
name: network-subnetwork
auto_create_subnetworks: 'true'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: network
- name: create a subnetwork
google.cloud.gcp_compute_subnetwork:
name: ansiblenet
region: us-west1
network: "{{ network }}"
ip_cidr_range: 172.16.0.0/16
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны в этом месте, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| creationTimestamp строка | успех | Отметка времени создания в формате RFC3339. | |
| description строка | успех | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. Это поле можно установить только при создании ресурса. | |
| gatewayAddress строка | успех | Адрес шлюза для маршрутов по умолчанию для достижения адресов назначения за пределами этой подсети. | |
| id целое число | успех | Уникальный идентификатор ресурса. | |
| ipCidrRange строка | успех | Диапазон внутренних адресов, принадлежащих этой подсети. Укажите это свойство при создании подсети. Например, 10.0.0.0/8 или 192.168.0.0/16. Диапазоны должны быть уникальными и не перекрывающимися в пределах сети. Поддерживается только IPv4. | |
| name строка | успех | Имя ресурса, указанное клиентом при первоначальном создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. Точнее, длина имени должна составлять 1–63 символа и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |
| network словарь | успех | Сеть, к которой принадлежит эта подсеть. Только сети в распределенном режиме могут иметь подсети. | |
| privateIpGoogleAccess булево | успех | При включении виртуальные машины в этой подсети без внешних IP-адресов могут получать доступ к Google API и службам с помощью Private Google Access. | |
| region строка | успех | Регион GCP для этой подсети. | |
| secondaryIpRanges сложный тип | успех | Массив конфигураций для вторичных диапазонов IP-адресов для виртуальных машин, содержащихся в этой подсети. Основной IP такой виртуальной машины должен принадлежать основному диапазону ipCidrRange подсети. Адреса псевдонимов могут принадлежать как основному, так и вторичным диапазонам. | |
| ipCidrRange строка | успех | Диапазон IP-адресов, принадлежащих вторичному диапазону этой подсети. Укажите это свойство при создании подсети. Диапазоны должны быть уникальными и не перекрывающимися со всеми первичными и вторичными диапазонами IP-адресов в пределах сети. Поддерживается только IPv4. | |
| rangeName строка | успех | Имя, связанное с этим вторичным диапазоном подсети, используемое при добавлении диапазона адресов псевдонимов к виртуальной машине. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. Имя должно быть уникальным в пределах подсети. | |
Авторы
- 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.10/collections/google/cloud/gcp_compute_subnetwork_module.html