我需要在我的负载均衡器上创建一个入站 nat 规则以将某个端口重定向到虚拟机。我已经像这样创建了我的负载均衡器。我使用的是 Ansible 2.9.6。
- name: Create loadbalancers
azure_rm_loadbalancer:
resource_group: "{{ item.lb_resource_group }}"
name: "{{ item.lb_name }}"
frontend_ip_configurations: "{{ item.lb_frontend_ip_configurations }}"
backend_address_pools: "{{ item.lb_backend_address_pools }}"
probes: "{{ item.lb_probes }}"
load_balancing_rules: "{{ item.lb_load_balancing_rules }}"
inbound_nat_rules: "{{ item.lb_inbound_nat_rules }}"
with_items:
- "{{ lbs }}"
tags:
- lb
入站 nat 规则如下所示。
- name: "nat-rule-in"
backend_port: 821
protocol: Tcp
frontend_port: 380
frontend_ip_configuration: "lb-frontend"
我查看了 this documentation 并没有找到任何可以说明这一点的内容。是否无法使用 Ansible 为入站 nat 规则设置目标虚拟机,还是我需要在其他地方进行设置?
我也搜索了 the VM documentation for Ansible-azure,但也找不到任何与 NAT 规则相关的内容。
答案 0 :(得分:0)
你要找的不是Ansible中的azure_rm_virtualmachine
模块,应该是azure_rm_networkinterface
模块。您可以配置 azure_rm_networkinterface
的 ip_configurations
属性来设置 load_balancer_backend_address_pools
,该属性可以将 VM 关联到负载均衡器。
答案 1 :(得分:0)
似乎这真的不是 Ansible-azure 本身的一个选项。
我改为使用带有 SPN 的 Azure-CLI,并使用 command
通过 Ansible 运行命令。
$ sudo apt-get install azure-cli
在 Ansible 中,我使用下面的代码在创建入站 nat 规则后设置目标 VM。
- name: Create inbound NAT rules
command: az network nic ip-config inbound-nat-rule add --ip-config-name <name> --resource-group <name> --lb-name <name> --nic-name <name> --inbound-nat-rule <name>