ngine_io.cloudstack.cs_portforward 模块 – 管理基于 Apache CloudStack 云的端口转发规则。
注意
此模块是 ngine_io.cloudstack 集合 (版本 2.5.0) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install ngine_io.cloudstack
。您需要其他需求才能使用此模块,有关详细信息,请参见 需求。
要在 playbook 中使用它,请指定:ngine_io.cloudstack.cs_portforward
。
ngine_io.cloudstack 0.1.0 中的新增功能
概要
创建、更新和删除端口转发规则。
需求
执行此模块的主机需要以下需求。
python >= 2.6
cs >= 0.9.0
参数
参数 |
注释 |
---|---|
vm 所关联的账户。 |
|
用于查询 API 端点的 HTTP 方法。 如果没有给出,则考虑 选项
|
|
CloudStack API 的 API 密钥。 如果没有给出,则考虑 |
|
CloudStack API 的密钥。 如果未设置,则考虑 |
|
HTTP 超时时间(秒)。 如果没有给出,则考虑 默认值: |
|
CloudStack API 的 URL,例如 https://cloud.example.com/client/api。 如果没有给出,则考虑 |
|
验证 CA 权威证书文件。 如果没有给出,则考虑 |
|
vm 所关联的域。 |
|
分配给该规则的公网 IP 地址。 |
|
网络名称。在 VPC 中转发端口时需要。 |
|
创建新规则时是否应创建公网端口的防火墙规则。 在 VPC 中转发端口时不支持。 使用 ngine_io.cloudstack.cs_firewall 管理防火墙规则。 选项
|
|
轮询异步作业,直到作业完成。 选项
|
|
此规则的私有端口结束范围。 如果未指定,则等于 private_port。 |
|
此规则的私有端口起始范围。 |
|
vm 所在项目的名称。 |
|
端口转发规则的协议。 选项
|
|
此规则的公网端口结束范围。 如果未指定,则等于 public_port。 |
|
此规则的公网端口起始范围。 |
|
端口转发规则的状态。 选项
|
|
标签列表。标签是包含键 key 和 value 的字典列表。 要删除所有标签,请设置空列表,例如 tags: []。 |
|
如果 如果没有给出,则考虑 这仅应在使用自签名证书的个人控制站点上使用。 选项
|
|
我们将为其创建端口转发规则的虚拟机的名称。 如果 state=present,则需要。 |
|
端口转发规则的虚拟机客户机 NIC 次要 IP 地址。 |
|
VPC 的名称。 |
|
虚拟机所在的区域的名称。 |
备注
注意
有关 cloudstack 模块的详细指南,请参见 CloudStack 云指南。
此模块支持检查模式。
示例
- name: 1.2.3.4:80 -> web01:8080
ngine_io.cloudstack.cs_portforward:
ip_address: 1.2.3.4
zone: zone01
vm: web01
public_port: 80
private_port: 8080
- name: forward SSH and open firewall
ngine_io.cloudstack.cs_portforward:
ip_address: '{{ public_ip }}'
zone: zone01
vm: '{{ inventory_hostname }}'
public_port: '{{ ansible_ssh_port }}'
private_port: 22
open_firewall: true
- name: forward DNS traffic, but do not open firewall
ngine_io.cloudstack.cs_portforward:
ip_address: 1.2.3.4
zone: zone01
vm: '{{ inventory_hostname }}'
public_port: 53
private_port: 53
protocol: udp
- name: remove ssh port forwarding
ngine_io.cloudstack.cs_portforward:
ip_address: 1.2.3.4
zone: zone01
public_port: 22
private_port: 22
state: absent
- name: forward SSH in backend tier of VPC
ngine_io.cloudstack.cs_portforward:
ip_address: '{{ public_ip }}'
zone: zone01
vm: '{{ inventory_hostname }}'
public_port: '{{ ansible_ssh_port }}'
private_port: 22
vpc: myVPC
network: backend
返回值
公共返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
公网 IP 地址的 UUID。 已返回:成功 示例: |
|
公网 IP 地址。 已返回:成功 示例: |
|
网络名称。 已返回:成功 示例: |
|
虚拟机 IP 地址上的端口结束范围。 已返回:成功 示例: |
|
虚拟机 IP 地址上的端口起始范围。 已返回:成功 示例: |
|
协议。 已返回:成功 示例: |
|
公网 IP 地址的结束端口。 已返回:成功 示例: |
|
公网 IP 地址的起始端口。 已返回:成功 示例: |
|
与端口转发相关的标签。 已返回:成功 示例: |
|
虚拟机的显示名称。 已返回:成功 示例: |
|
虚拟机的IP地址。 已返回:成功 示例: |
|
虚拟机的名称。 已返回:成功 示例: |
|
VPC 的名称。 已返回:成功 示例: |