google.cloud.gcp_compute_subnetwork 模块 – 创建 GCP 子网
注意
此模块是 google.cloud 集合(版本 1.4.1)的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install google.cloud
。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。
要在 Playbook 中使用它,请指定:google.cloud.gcp_compute_subnetwork
。
注意
由于违反了 Ansible 包含要求,google.cloud 集合将从 Ansible 12 中删除。该集合有 未解决的健全性测试失败。有关更多信息,请参阅讨论线程。
概要
VPC 网络是传统物理网络的虚拟版本,这些物理网络存在于物理数据中心内部和之间。VPC 网络为您的 Compute Engine 虚拟机 (VM) 实例、容器引擎容器、App Engine Flex 服务和其他网络相关资源提供连接。
每个 GCP 项目都包含一个或多个 VPC 网络。每个 VPC 网络都是一个全局实体,跨越所有 GCP 区域。此全局 VPC 网络允许 VM 实例和其他资源通过内部专用 IP 地址相互通信。
每个 VPC 网络都细分为子网,并且每个子网都包含在单个区域中。对于给定的 VPC 网络,您可以在一个区域中拥有多个子网。每个子网都有一个连续的私有 RFC1918 IP 空间。您在这些子网中创建实例、容器等。
当您创建实例时,您必须在子网中创建它,并且实例从该子网中提取其内部 IP 地址。
VPC 网络中的虚拟机 (VM) 实例可以使用其 RFC1918 专用 IP 地址与同一 VPC 网络中所有其他子网中的实例进行通信,而不管区域如何。您可以使用防火墙规则隔离网络的部分,甚至整个子网。
要求
执行此模块的主机需要满足以下要求。
python >= 2.6
requests >= 2.18.4
google-auth >= 1.3.0
参数
参数 |
注释 |
---|---|
如果凭据类型是 accesstoken,则为 OAuth2 访问令牌。 |
|
所用凭据的类型。 选项
|
|
此资源的可选描述。创建资源时提供此属性。此字段只能在资源创建时设置。 |
|
指定您在此模块中运行的 Ansible 环境。 除非您知道自己在做什么,否则不应设置此项。 这只会更改任何 API 请求的用户代理字符串。 |
|
此子网拥有的内部地址范围。 创建子网时提供此属性。例如,10.0.0.0/8 或 192.168.0.0/16。范围必须在一个网络内唯一且不重叠。仅支持 IPv4。 |
|
客户端最初创建资源时提供的资源名称。名称长度必须为 1-63 个字符,并且符合 RFC1035。具体来说,名称长度必须为 1-63 个字符,并且与正则表达式 `[a-z]([-a-z0-9]*[a-z0-9])?` 匹配,这意味着第一个字符必须是小写字母,并且所有后续字符必须是破折号、小写字母或数字,但最后一个字符不能是破折号。 |
|
此子网所属的网络。 只有处于分布式模式的网络才能拥有子网。 此字段表示指向 GCP 中网络资源的链接。可以通过两种方式指定它。首先,您可以放置一个字典,其中包含键 'selfLink' 和您的资源的 selfLink 值。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_network 任务,然后将此网络字段设置为“{{ name-of-resource }}” |
|
启用后,此子网中没有外部 IP 地址的 VM 可以通过使用专用 Google 访问来访问 Google API 和服务。 选项
|
|
此子网中虚拟机的专用 IPv6 Google 访问类型。 |
|
要使用的 Google Cloud Platform 项目。 |
|
此子网的 GCP 区域。 |
|
要使用的范围数组 |
|
包含在此子网中的 VM 实例的辅助 IP 范围的配置数组。此类 VM 的主 IP 必须属于子网的主 ipCidrRange。别名 IP 可以属于主范围或辅助范围。 |
|
属于此子网辅助范围的 IP 地址范围。创建子网时提供此属性。 范围必须在一个网络内与所有主 IP 范围和辅助 IP 范围唯一且不重叠。仅支持 IPv4。 |
|
与此子网辅助范围关联的名称,在将别名 IP 范围添加到 VM 实例时使用。名称长度必须为 1-63 个字符,并且符合 RFC1035。该名称在子网内必须唯一。 |
|
服务帐户 JSON 文件的内容,可以是字典形式,也可以是表示它的 JSON 字符串。 |
|
如果选择了 machineaccount 并且用户不希望使用默认电子邮件,则为可选的服务帐户电子邮件地址。 |
|
如果选择 serviceaccount 作为类型,则为服务帐户 JSON 文件的路径。 |
|
给定对象是否应存在于 GCP 中 选项
|
注释
注意
API 参考:https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks
专用 Google 访问通道:https://cloud.google.com/vpc/docs/configure-private-google-access
对于身份验证,您可以使用
GCP_SERVICE_ACCOUNT_FILE
环境变量设置 service_account_file。对于身份验证,您可以使用
GCP_SERVICE_ACCOUNT_CONTENTS
环境变量设置 service_account_contents。对于身份验证,您可以使用
GCP_SERVICE_ACCOUNT_EMAIL
环境变量设置 service_account_email。对于身份验证,您可以使用
GCP_ACCESS_TOKEN
环境变量设置 access_token。对于身份验证,您可以使用
GCP_AUTH_KIND
环境变量设置 auth_kind。对于身份验证,您可以使用
GCP_SCOPES
环境变量设置 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
返回值
通用返回值记录在此处,以下是此模块独有的字段
键 |
描述 |
---|---|
以 RFC3339 文本格式表示的创建时间戳。 返回:成功 |
|
此资源的可选描述。创建资源时提供此属性。此字段只能在资源创建时设置。 返回:成功 |
|
默认路由用于到达此子网外部的目标地址的网关地址。 返回:成功 |
|
资源的唯一标识符。 返回:成功 |
|
此子网拥有的内部地址范围。 创建子网时提供此属性。例如,10.0.0.0/8 或 192.168.0.0/16。范围必须在一个网络内唯一且不重叠。仅支持 IPv4。 返回:成功 |
|
客户端最初创建资源时提供的资源名称。名称长度必须为 1-63 个字符,并且符合 RFC1035。具体来说,名称长度必须为 1-63 个字符,并且与正则表达式 `[a-z]([-a-z0-9]*[a-z0-9])?` 匹配,这意味着第一个字符必须是小写字母,并且所有后续字符必须是破折号、小写字母或数字,但最后一个字符不能是破折号。 返回:成功 |
|
此子网所属的网络。 只有处于分布式模式的网络才能拥有子网。 返回:成功 |
|
启用后,此子网中没有外部 IP 地址的 VM 可以通过使用专用 Google 访问来访问 Google API 和服务。 返回:成功 |
|
此子网中虚拟机的专用 IPv6 Google 访问类型。 返回:成功 |
|
此子网的 GCP 区域。 返回:成功 |
|
包含在此子网中的 VM 实例的辅助 IP 范围的配置数组。此类 VM 的主 IP 必须属于子网的主 ipCidrRange。别名 IP 可以属于主范围或辅助范围。 返回:成功 |
|
属于此子网辅助范围的 IP 地址范围。创建子网时提供此属性。 范围必须在一个网络内与所有主 IP 范围和辅助 IP 范围唯一且不重叠。仅支持 IPv4。 返回:成功 |
|
与此子网辅助范围关联的名称,在将别名 IP 范围添加到 VM 实例时使用。名称长度必须为 1-63 个字符,并且符合 RFC1035。该名称在子网内必须唯一。 返回:成功 |