azure.azcollection.azure_rm_networkinterface 模块 – 管理 Azure 网络接口
注意
此模块是 azure.azcollection 集合 (版本 3.1.0) 的一部分。
如果您使用的是 ansible
软件包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install azure.azcollection
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: azure.azcollection.azure_rm_networkinterface
。
azure.azcollection 0.1.0 中的新增功能
概要
创建、更新或删除网络接口。
创建网络接口时,必须提供现有虚拟网络的名称和虚拟网络中现有子网的名称。
将自动创建一个默认安全组和公有 IP 地址。
或者,您可以提供现有安全组和公有 IP 地址的名称。
有关更多详细信息,请参见下面的示例。
要求
执行此模块的主机需要以下要求。
python >= 2.7
执行此模块的主机必须通过 galaxy 安装 azure.azcollection 集合
集合的 requirements.txt 中列出的所有 python 包都必须通过 pip 安装在执行 azure.azcollection 集合中模块的主机上
完整的安装说明可在 https://galaxy.ansible.com/azure/azcollection 找到
参数
参数 |
注释 |
---|---|
Active Directory 用户名。在使用 Active Directory 用户而不是服务主体进行身份验证时使用。 |
|
Azure AD 授权 URL。在使用用户名/密码进行身份验证并且拥有您自己的 ADFS 授权时使用。 |
|
选择与 Azure 服务通信时要使用的 API 配置文件。对于公共云, 默认值: |
|
用于控制标签字段是规范的还是仅附加到现有标签。 当规范时,在 tags 参数中找不到的任何标签都将从对象的元数据中删除。 选项
|
|
控制用于身份验证的凭据来源。 也可以通过 当设置为 当设置为 当设置为 当设置为 当设置为 Ansible 2.6 中添加了 选项
|
|
控制 Azure 端点的证书验证行为。默认情况下,所有模块都将验证服务器证书,但在使用 HTTPS 代理或针对 Azure Stack 时,可能需要通过传递 选项
|
|
Azure 客户端 ID。在使用服务主体或托管身份 (msi) 进行身份验证时使用。 也可以通过 |
|
对于美国公共云以外的云环境,需要指定环境名称(由 Azure Python SDK 定义,例如 默认值: |
|
是否应与虚拟网络接口 (NIC) 一起创建安全组。 如果此标志设置为 选项
|
|
确定在尝试进行身份验证时是否执行实例发现。将其设置为 true 将完全禁用实例发现和权限验证。此功能旨在用于无法访问元数据端点的场景,例如私有云或 Azure Stack。实例发现过程需要从 https://login.microsoft.com/ 获取权限元数据以验证权限。将其设置为 **True** 将禁用权限验证。因此,必须确保已配置的权限主机有效且值得信赖。 通过凭据文件配置文件或 选项
|
|
NIC 应查找哪些 DNS 服务器。 IP 地址列表。 |
|
是否应使用加速网络功能创建网络接口。 选项
|
|
是否启用 IP 转发。 选项
|
|
IP 配置列表。每个配置对象都应包含字段 *private_ip_address*、*private_ip_allocation_method*、*public_ip_address_name*、*public_ip*、*public_ip_allocation_method*、*name*。 默认值: |
|
要与网络接口关联的现有应用程序网关后端地址池列表。 可以写成资源 ID。 也可以是包含 *name* 和 *application_gateway* 的字典。 |
|
包含 IP 配置的应用程序安全组列表。 列表的元素可以是应用程序安全组的资源 ID,也可以是当前资源组中应用程序安全组的名称,或者是一个包含资源组和名称的字典。 |
|
要与网络接口关联的现有负载均衡器后端地址池列表。 可以写成资源 ID。 也可以是包含 *name* 和 *load_balancer* 的字典。 |
|
IP 配置的名称。 |
|
IP 配置是否为列表中的主要配置。 第一个 IP 配置默认为 *primary=True*。 选项
|
|
IP 配置的私有 IP 地址。 |
|
IP 配置的版本。 选项
|
|
私有 IP 分配方法。 选项
|
|
公有 IP 地址的名称。禁用 IP 地址时为 None。 |
|
公有 IP 分配方法。 选项
|
|
有效的 Azure 位置。默认为资源组的位置。 |
|
父参数。 |
|
父参数。 |
|
网络接口的名称。 |
|
为 Linux 主机创建默认安全组时,将添加一条规则,允许传入 TCP 连接到默认 SSH 端口 |
|
确定要添加到默认安全组的任何规则。 创建网络接口时,如果未提供安全组名称,则将创建一个默认安全组。 如果 *os_type=Windows*,则将添加允许 RDP 访问的规则。 如果 *os_type=Linux*,则将添加允许 SSH 访问的规则。 选项
|
|
Active Directory 用户密码。使用 Active Directory 用户而不是服务主体进行身份验证时使用。 |
|
在 ~/.azure/credentials 文件中找到的安全配置文件。 |
|
网络接口存在或将创建的资源组的名称。 |
|
Azure 客户端密钥。使用服务主体进行身份验证时使用。 |
|
要与网络接口关联的现有安全组。 如果未提供,则在 *create_with_security_group=true* 时将创建一个默认安全组。 可以是安全组的名称。 仅提供安全组名称时,请确保安全组位于相同的资源组中。 可以是资源 ID。 可以是包含安全组的 *name* 和 *resource_group* 的字典。 |
|
声明网络接口的状态。使用 选项
|
|
指定虚拟网络中现有子网的名称。创建网络接口时必填。 使用 创建时必填。 |
|
您的 Azure 订阅 ID。 |
|
字符串:字符串对的字典,作为元数据分配给对象。 对象的元数据标签将使用任何提供的数值进行更新。 要删除标签,请将 append_tags 选项设置为 false。 目前,Azure DNS 区域和流量管理器服务也不允许在标签中使用空格。 Azure 前端门户不支持使用 Azure 自动化和 Azure CDN 每个资源只支持 15 个标签。 |
|
Azure 租户 ID。使用服务主体进行身份验证时使用。 |
|
在 *x509_certificate_path* 中指定的私钥的指纹。 使用服务主体进行身份验证时使用。 如果定义了 *x509_certificate_path*,则必填。 |
|
要与网络接口关联的现有虚拟网络。创建网络接口时必填。 可以是虚拟网络的名称。 仅提供名称时,请确保虚拟网络与 NIC 位于相同的资源组中。 可以是虚拟网络的资源 ID。 可以是包含虚拟网络的 *name* 和 *resource_group* 的字典。 创建时必填。 |
|
PEM 格式下用于创建服务主体的 X509 证书的路径。 证书必须附加到私钥。 使用服务主体进行身份验证时使用。 |
注释
注意
要使用 Azure 进行身份验证,您可以传递参数、设置环境变量、使用存储在 ~/.azure/credentials 中的配置文件,或者在运行任务或剧本之前使用
az login
登录。也可以使用服务主体或 Active Directory 用户进行身份验证。
要通过服务主体进行身份验证,请传递 subscription_id、client_id、secret 和 tenant,或设置环境变量 AZURE_SUBSCRIPTION_ID、AZURE_CLIENT_ID、AZURE_SECRET 和 AZURE_TENANT。
要通过 Active Directory 用户进行身份验证,请传递 ad_user 和 password,或在环境中设置 AZURE_AD_USER 和 AZURE_PASSWORD。
或者,凭据可以存储在 ~/.azure/credentials 中。这是一个 ini 文件,包含一个 [default] 部分和以下键:subscription_id、client_id、secret 和 tenant,或 subscription_id、ad_user 和 password。也可以添加其他配置文件。通过传递 profile 或在环境中设置 AZURE_PROFILE 来指定配置文件。
另请参阅
另请参阅
- 使用 Azure CLI 登录
如何使用
az login
命令进行身份验证。
示例
- name: Create a network interface with minimal parameters
azure_rm_networkinterface:
name: nic001
resource_group: myResourceGroup
virtual_network: vnet001
subnet_name: subnet001
ip_configurations:
- name: ipconfig1
public_ip_address_name: publicip001
primary: true
- name: Create a network interface with private IP address only (no Public IP)
azure_rm_networkinterface:
name: nic001
resource_group: myResourceGroup
virtual_network: vnet001
subnet_name: subnet001
create_with_security_group: false
ip_configurations:
- name: ipconfig1
primary: true
- name: Create a network interface for use in a Windows host (opens RDP port) with custom RDP port
azure_rm_networkinterface:
name: nic002
resource_group: myResourceGroup
virtual_network: vnet001
subnet_name: subnet001
os_type: Windows
rdp_port: 3399
security_group: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurit
yGroups/nsg001"
ip_configurations:
- name: ipconfig1
public_ip_address_name: publicip001
primary: true
- name: Create a network interface using existing security group and public IP
azure_rm_networkinterface:
name: nic003
resource_group: myResourceGroup
virtual_network: vnet001
subnet_name: subnet001
security_group: secgroup001
ip_configurations:
- name: ipconfig1
public_ip_address_name: publicip001
primary: true
- name: Create a network with multiple ip configurations
azure_rm_networkinterface:
name: nic004
resource_group: myResourceGroup
subnet_name: subnet001
virtual_network: vnet001
security_group:
name: testnic002
resource_group: Testing1
ip_configurations:
- name: ipconfig1
public_ip_address_name: publicip001
primary: true
- name: ipconfig2
load_balancer_backend_address_pools:
- "{{ loadbalancer001.state.backend_address_pools[0].id }}"
- name: backendaddrpool1
load_balancer: loadbalancer001
- name: Create network interface attached to application gateway backend address pool
azure_rm_networkinterface:
name: nic-appgw
resource_group: myResourceGroup
virtual_network: vnet001
subnet_name: subnet001
create_with_security_group: false
ip_configurations:
- name: default
primary: true
application_gateway_backend_address_pools:
- name: myApplicationGatewayBackendAddressPool
application_gateway: myApplicationGateway
- name: Create a network interface in accelerated networking mode
azure_rm_networkinterface:
name: nic005
resource_group: myResourceGroup
virtual_network_name: vnet001
subnet_name: subnet001
enable_accelerated_networking: true
- name: Create a network interface with IP forwarding
azure_rm_networkinterface:
name: nic001
resource_group: myResourceGroup
virtual_network: vnet001
subnet_name: subnet001
ip_forwarding: true
ip_configurations:
- name: ipconfig1
public_ip_address_name: publicip001
primary: true
- name: Create a network interface with dns servers
azure_rm_networkinterface:
name: nic009
resource_group: myResourceGroup
virtual_network: vnet001
subnet_name: subnet001
dns_servers:
- 8.8.8.8
- name: Delete network interface
azure_rm_networkinterface:
resource_group: myResourceGroup
name: nic003
state: absent
返回值
常见的返回值已在此处记录,以下是此模块特有的字段:
键 |
描述 |
---|---|
网络接口的当前状态。 返回值:始终 |
|
NIC 应查找哪些 DNS 服务器。 IP 地址列表。 返回值:成功 示例: |
|
网络接口中的DNS设置。 返回值:成功 示例: |
|
是否应使用加速网络功能创建网络接口。 返回值:成功 示例: |
|
是否启用 IP 转发。 返回值:成功 示例: |
|
每当资源更新时都会更改的唯一只读字符串。 返回值:成功 示例: |
|
网络接口的ID。 返回值:成功 示例: |
|
IP配置列表。 返回值:成功 |
|
与网络接口关联的现有应用程序网关后端地址池资源 ID 列表。 返回值:成功 示例: |
|
与网络接口关联的现有负载均衡器后端地址池列表。 返回值:成功 |
|
IP 配置的名称。 返回值:成功 示例: |
|
IP 配置的私有 IP 地址。 返回值:成功 示例: |
|
IP 配置的版本。 返回值:成功 示例: |
|
私有 IP 分配方法。 返回值:成功 示例: |
|
公有 IP 地址的名称。禁用 IP 地址时为 None。 返回值:成功 示例: |
|
子网资源的引用。 返回值:成功 示例: |
|
网络接口资源位置。 返回值:成功 示例: |
|
网络接口的MAC地址。 返回值:成功 |
|
网络接口的名称。 返回值:成功 示例: |
|
网络安全组资源的引用。 返回值:成功 示例: |
|
获取此虚拟机上是否是主网络接口。 返回值:成功 示例: |
|
公共IP资源的预配状态。 返回值:成功 示例: |
|
-网络接口的标签。 返回值:成功 示例: |
|
资源的类型。 返回值:成功 示例: |