google.cloud.gcp_compute_subnetwork – Создаёт GCP подсеть
Примечание
Этот плагин является частью коллекции google.cloud (версия 1.0.2).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Чтобы использовать его в playbook, укажите: 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. В этих подсетях создаются виртуальные машины, контейнеры и т.п.
- При создании виртуальной машины (VM) её необходимо создать в подсети, и виртуальная машина получает свой внутренний 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. | |
| private_ipv6_google_access строка | Тип доступа к частному IPv6 Google для виртуальных машин в этой подсети. | ||
| 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
- Private Google Access: https://cloud.google.com/vpc/docs/configure-private-google-access
- Сеть облака: 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. - Значения переменных среды будут использоваться только в том случае, если значения в playbook не заданы.
- Параметры 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. | |
| privateIpv6GoogleAccess строка | успех | Тип доступа к частному IPv6 Google для виртуальных машин в этой подсети. | |
| region строка | успех | Регион GCP для этой подсети. | |
| secondaryIpRanges сложный тип | успех | Массив конфигураций для вторичных диапазонов IP-адресов для виртуальных машин, содержащихся в этой подсети. Основной IP такой виртуальной машины должен принадлежать основному диапазону ipCidrRange подсети. IP-адреса-алиасы могут принадлежать как основному, так и вторичным диапазонам. | |
| ipCidrRange строка | успех | Диапазон IP-адресов, принадлежащих вторичному диапазону этой подсети. Укажите это свойство при создании подсети. Диапазоны должны быть уникальными и не перекрываться со всеми основными и вторичными IP-диапазонами в рамках сети. Поддерживается только IPv4. | |
| rangeName строка | успех | Имя, связанное со вторичным диапазоном этой подсети, используемое при добавлении диапазона IP-адресов-алиасов к виртуальной машине. Длина имени должна быть от 1 до 63 символов и соответствовать RFC1035. Имя должно быть уникальным в рамках подсети. | |
Авторы
- 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_subnetwork_module.html