azure_rm_networkinterface
Manage Azure network interfaces
Collection: azure.azcollection
Full Name: azure.azcollection.azure_rm_networkinterface
Synopsis
Manage Azure network interfaces
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| ad_user | string | Active Directory username. Use when authenticating with an Active Directory user rather than service principal. | ||
| adfs_authority_url | string | Azure AD authority url. Use when authenticating with Username/password, and has your own ADFS authority. | ||
| api_profile | string | latest | Selects an API profile to use when communicating with Azure services. Default value of C(latest) is appropriate for public clouds; future values will allow use with Azure Stack. | |
| append_tags | bool | true | Use to control if tags field is canonical or just appends to existing tags. | |
| When canonical, any tags not found in the tags parameter will be removed from the object’s metadata. | ||||
| auth_source | string | auto | Controls the source of the credentials to use for authentication. | |
| Can also be set via the C(ANSIBLE_AZURE_AUTH_SOURCE) environment variable. | ||||
| When set to C(auto) (the default) the precedence is module parameters -> C(env) -> C(credential_file) -> C(cli). | ||||
| When set to C(env), the credentials will be read from the environment variables. | ||||
| When set to C(credential_file), it will read the profile from C(~/.azure/credentials). | ||||
| When set to C(cli), the credentials will be sources from the Azure CLI profile. C(subscription_id) or the environment variable C(AZURE_SUBSCRIPTION_ID) can be used to identify the subscription ID if more than one is present otherwise the default az cli subscription is used. | ||||
| When set to C(msi), the host machine must be an azure resource with an enabled MSI extension. C(subscription_id) or the environment variable C(AZURE_SUBSCRIPTION_ID) can be used to identify the subscription ID if the resource is granted access to more than one subscription, otherwise the first subscription is chosen. | ||||
| The C(msi) was added in Ansible 2.6. | ||||
| cert_validation_mode | string | Controls the certificate validation behavior for Azure endpoints. By default, all modules will validate the server certificate, but when an HTTPS proxy is in use, or against Azure Stack, it may be necessary to disable this behavior by passing C(ignore). Can also be set via credential file profile or the C(AZURE_CERT_VALIDATION) environment variable. | ||
| client_id | string | Azure client ID. Use when authenticating with a Service Principal or Managed Identity (msi). | ||
| Can also be set via the C(AZURE_CLIENT_ID) environment variable. | ||||
| cloud_environment | string | AzureCloud | For cloud environments other than the US public cloud, the environment name (as defined by Azure Python SDK, eg, C(AzureChinaCloud), C(AzureUSGovernment)), or a metadata discovery endpoint URL (required for Azure Stack). Can also be set via credential file profile or the C(AZURE_CLOUD_ENVIRONMENT) environment variable. | |
| create_with_security_group | bool | true | Whether a security group should be be created with the NIC. | |
| If this flag set to C(True) and no I(security_group) set, a default security group will be created. | ||||
| disable_instance_discovery | bool | false | Determines whether or not instance discovery is performed when attempting to authenticate. Setting this to true will completely disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to True, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy. | |
| Set via credential file profile or the C(AZURE_DISABLE_INSTANCE_DISCOVERY) environment variable. | ||||
| dns_servers | list | Which DNS servers should the NIC lookup. | ||
| List of IP addresses. | ||||
| enable_accelerated_networking | bool | false | Whether the network interface should be created with the accelerated networking feature or not. | |
| enable_ip_forwarding | bool | false | Whether to enable IP forwarding. | |
| ip_configurations | list | [] | List of IP configurations. Each configuration object should include field I(private_ip_address), I(private_ip_allocation_method), I(public_ip_address_name), I(public_ip), I(public_ip_allocation_method), I(name). | |
| location | string | Valid Azure location. Defaults to location of the resource group. | ||
| log_mode | string | Parent argument. | ||
| log_path | string | Parent argument. | ||
| name | string | yes | Name of the network interface. | |
| oidc_token | string | Direct OpenID Connect (OIDC) token (JWT) used for workload identity authentication. | ||
| This token is exchanged with Azure AD using OIDC federated identity. | ||||
| Useful in CI systems (for example GitHub Actions, Azure DevOps) where an OIDC token is provided directly by the platform. | ||||
| Can also be set via the C(AZURE_FEDERATED_TOKEN) environment variable. | ||||
| oidc_token_file_path | string | Path to a file containing an OpenID Connect (OIDC) token (JWT) used for workload identity authentication. | ||
| The file must contain only raw token. | ||||
| This method is commonly used in platforms that materialize OIDC tokens as files | ||||
| Can also be set via the C(AZURE_FEDERATED_TOKEN_FILE) environment variable. | ||||
| open_ports | list | When a default security group is created for a Linux host a rule will be added allowing inbound TCP connections to the default SSH port C(22), and for a Windows host rules will be added allowing inbound access to RDP ports C(3389) and C(5986). Override the default ports by providing a list of open ports. | ||
| os_type | string | Linux | Determines any rules to be added to a default security group. | |
| When creating a network interface, if no security group name is provided, a default security group will be created. | ||||
| If the I(os_type=Windows), a rule allowing RDP access will be added. | ||||
| If the I(os_type=Linux), a rule allowing SSH access will be added. | ||||
| password | string | Active Directory user password. Use when authenticating with an Active Directory user rather than service principal. | ||
| profile | string | Security profile found in ~/.azure/credentials file. | ||
| resource_group | string | yes | Name of a resource group where the network interface exists or will be created. | |
| secret | string | Azure client secret. Use when authenticating with a Service Principal. | ||
| security_group | raw | An existing security group with which to associate the network interface. | ||
| If not provided, a default security group will be created when I(create_with_security_group=true). | ||||
| It can be the name of security group. | ||||
| Make sure the security group is in the same resource group when you only give its name. | ||||
| It can be the resource id. | ||||
| It can be a dict contains security_group’s I(name) and I(resource_group). | ||||
| state | string | present | Assert the state of the network interface. Use C(present) to create or update an interface and C(absent) to delete an interface. | |
| subnet_name | string | Name of an existing subnet within the specified virtual network. Required when creating a network interface. | ||
| Use the C(virtual_network)’s resource group. | ||||
| Required when creating. | ||||
| subscription_id | string | Your Azure subscription Id. | ||
| tags | dict | Dictionary of string:string pairs to assign as metadata to the object. | ||
| Metadata tags on the object will be updated with any provided values. | ||||
| To remove tags set append_tags option to false. | ||||
| Currently, Azure DNS zones and Traffic Manager services also don’t allow the use of spaces in the tag. | ||||
| Azure Front Door doesn’t support the use of | ||||
| Azure Automation and Azure CDN only support 15 tags on resources. | ||||
| tenant | string | Azure tenant ID. Use when authenticating with a Service Principal. | ||
| thumbprint | string | The thumbprint of the private key specified in I(x509_certificate_path). | ||
| Use when authenticating with a Service Principal. | ||||
| Required if I(x509_certificate_path) is defined. | ||||
| virtual_network | raw | An existing virtual network with which the network interface will be associated. Required when creating a network interface. | ||
| It can be the virtual network’s name. | ||||
| Make sure your virtual network is in the same resource group as NIC when you give only the name. | ||||
| It can be the virtual network’s resource id. | ||||
| It can be a dict which contains I(name) and I(resource_group) of the virtual network. | ||||
| Required when creating. | ||||
| x509_certificate_path | string | Path to the X509 certificate used to create the service principal in PEM format. | ||
| The certificate must be appended to the private key. | ||||
| Use when authenticating with a Service Principal. |
Example
yaml
- name: Create a network interface with minimal parameters
azure.azcollection.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.azcollection.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.azcollection.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.azcollection.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.azcollection.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.azcollection.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.azcollection.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.azcollection.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.azcollection.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.azcollection.azure_rm_networkinterface:
resource_group: myResourceGroup
name: nic003
state: absent