如何使用 Ansible-azure 为 Azure 负载均衡器入站 NAT 规则设置目标 VM?

时间:2021-01-06 16:09:23

标签: azure ansible

我需要在我的负载均衡器上创建一个入站 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 规则相关的内容。

2 个答案:

答案 0 :(得分:0)

你要找的不是Ansible中的azure_rm_virtualmachine模块,应该是azure_rm_networkinterface模块。您可以配置 azure_rm_networkinterfaceip_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>