openstack.cloud.port module – Add/Update/Delete ports from an OpenStack cloud.
Note
This module is part of the openstack.cloud collection (version 2.2.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install openstack.cloud
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: openstack.cloud.port
.
Synopsis
Add, Update or Remove ports from an OpenStack cloud.
Requirements
The below requirements are needed on the host that executes this module.
python >= 3.6
openstacksdk >= 1.0.0
Parameters
Parameter |
Comments |
---|---|
Allowed address pairs list. Allowed address pairs are supported with dictionary structure. e.g. allowed_address_pairs: - ip_address: 10.1.0.12 mac_address: ab:cd:ef:12:34:56 - ip_address: … The port will change during update if not all suboptions are specified, e.g. when ip_address is given but mac_address is not. |
|
The IP address. |
|
The MAC address. |
|
How long should the socket layer wait before timing out for API calls. If this is omitted, nothing will be passed to the requests library. |
|
Dictionary containing auth information as needed by the cloud’s auth plugin strategy. For the default password plugin, this would contain auth_url, username, password, project_name and any information about domains (for example, user_domain_name or project_domain_name) if the cloud supports them. For other plugins, this param will need to contain whatever parameters that auth plugin requires. This parameter is not needed if a named cloud is provided or OpenStack OS_* environment variables are present. |
|
Name of the auth plugin to use. If the cloud uses something other than password authentication, the name of the plugin should be indicated here and the contents of the auth parameter should be updated accordingly. |
|
Binding profile dict that the port should be created with. |
|
The type of the port that should be created Choices:
|
|
A path to a CA Cert bundle that can be used as part of verifying SSL API requests. |
|
A path to a client certificate to use as part of the SSL transaction. |
|
A path to a client key to use as part of the SSL transaction. |
|
Named cloud or cloud config to operate against. If cloud is a string, it references a named cloud config as defined in an OpenStack clouds.yaml file. Provides default values for auth and auth_type. This parameter is not needed if auth is provided or if OpenStack OS_* environment variables are present. If cloud is a dict, it contains a complete cloud configuration like would be in a section of clouds.yaml. |
|
Description of the port. |
|
Device ID of device using this port. |
|
The ID of the entity that uses this port. |
|
The dns domain of the port ( only with dns-integration enabled ) |
|
The dns name of the port ( only with dns-integration enabled ) |
|
Extra dhcp options to be assigned to this port. Extra options are supported with dictionary structure. Note that options cannot be removed only updated. e.g. extra_dhcp_opts: - ip_version: 4 opt_name: bootfile-name opt_value: pxelinux.0 - opt_name: … The port will change during update if not all suboptions are specified, e.g. when opt_name is given but ip_version is not. |
|
The IP version this DHCP option is for. |
|
The name of the DHCP option to set. |
|
The value of the DHCP option to set. |
|
Desired IP and/or subnet for this port. Subnet is referenced by subnet_id and IP is referenced by ip_address. The port will change during update if not all suboptions are specified, e.g. when ip_address is given but subnet_id is not. |
|
The fixed IP address to attempt to allocate. |
|
The subnet to attach the IP address to. |
|
Endpoint URL type to fetch from the service catalog. Choices:
|
|
Sets admin state. Choices:
|
|
Whether to enable or disable the port security on the network. Choices:
|
|
MAC address of this port. |
|
Name that has to be given to the port. This port attribute cannot be updated. |
|
ID or name of the network this port belongs to. Required when creating a new port. Must be a name when creating a port. This port attribute cannot be updated. |
|
Do not associate a security group with this port. Deprecated. Use security_groups: Choices:
|
|
Name of the region. |
|
Log level of the OpenStackSDK Choices:
|
|
Path to the logfile of the OpenStackSDK. If empty no log is written |
|
Security group(s) ID(s) or name(s) associated with the port. |
|
Should the resource be present or absent. Choices:
|
|
How long should ansible wait for the requested resource. Default: |
|
Whether or not SSL API requests should be verified. Before Ansible 2.3 this defaulted to Choices:
|
|
Should ansible wait until the requested resource is complete. Choices:
|
Notes
Note
The standard OpenStack environment variables, such as
OS_USERNAME
may be used instead of providing explicit values.Auth information is driven by openstacksdk, which means that values can come from a yaml config file in /etc/ansible/openstack.yaml, /etc/openstack/clouds.yaml or ~/.config/openstack/clouds.yaml, then from standard environment variables, then finally by explicit parameters in plays. More information can be found at https://docs.openstack.org/openstacksdk/
Examples
# Create a port
- openstack.cloud.port:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: port1
network: foo
# Create a port with a static IP
- openstack.cloud.port:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: port1
network: foo
fixed_ips:
- ip_address: 10.1.0.21
# Create a port with No security groups
- openstack.cloud.port:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: port1
network: foo
no_security_groups: True
# Update the existing 'port1' port with multiple security groups (version 1)
- openstack.cloud.port:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: port1
security_groups: 1496e8c7-4918-482a-9172-f4f00fc4a3a5,057d4bdf-6d4d-472...
# Update the existing 'port1' port with multiple security groups (version 2)
- openstack.cloud.port:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: port1
security_groups:
- 1496e8c7-4918-482a-9172-f4f00fc4a3a5
- 057d4bdf-6d4d-472...
# Create port of type 'direct'
- openstack.cloud.port:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: port1
network: foo
binding_vnic_type: direct
# Create a port with binding profile
- openstack.cloud.port:
state: present
auth:
auth_url: https://identity.example.com
username: admin
password: admin
project_name: admin
name: port1
network: foo
binding_profile:
pci_slot: "0000:03:11.1"
physical_network: "provider"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Dictionary describing the port. Returned: On success when state is |
|
Allowed address pairs. Returned: success Sample: |
|
The ID of the host where the port is allocated. In some cases, different implementations can run on different hosts. Returned: success Sample: |
|
A dictionary the enables the application running on the specified host to pass and receive vif port-specific information to the plug-in. Returned: success Sample: |
|
A dictionary that enables the application to pass information about functions that the Networking API provides. Returned: success |
|
The VIF type for the port. Returned: success |
|
The virtual network interface card (vNIC) type that is bound to the neutron port. Returned: success Sample: |
|
Timestamp when the port was created. Returned: success Sample: |
|
Status of the underlying data plane of a port. Returned: success |
|
The port description. Returned: success |
|
Device ID of this port. Returned: success Sample: |
|
Device owner of this port, e.g. Returned: success Sample: |
|
Device profile of this port, refers to Cyborg device-profiles: https://docs.openstack.org/api-ref/accelerator/v2/index.html# device-profiles. Returned: success |
|
DNS assignment for the port. Returned: success |
|
DNS domain assigned to the port. Returned: success |
|
DNS name for the port. Returned: success |
|
A set of zero or more extra DHCP option pairs. An option pair consists of an option value and name. Returned: success Sample: |
|
IP addresses for the port. Includes the IP address and subnet ID. Returned: success |
|
The port ID. Returned: success Sample: |
|
The ip_allocation indicates when ports use deferred, immediate or no IP allocation. Returned: success |
|
The administrative state of the port, which is up Returned: success Sample: |
|
The port security status, which is enabled Returned: success Sample: |
|
The MAC address of an allowed address pair. Returned: success Sample: |
|
The port name. Returned: success Sample: |
|
The ID of the attached network. Returned: success Sample: |
|
The NUMA affinity policy defined for this port. Returned: success Sample: |
|
The ID of the project who owns the network. Returned: success Sample: |
|
Whether to propagate uplink status of the port. Returned: success Sample: |
|
The ID of the QoS policy attached to the network where the port is bound. Returned: success Sample: |
|
The ID of the QoS policy attached to the port. Returned: success Sample: |
|
The port-resource-request exposes Placement resources (i.e.: minimum-bandwidth) and traits (i.e.: vnic-type, physnet) requested by a port to Nova and Placement. Returned: success |
|
The revision number of the resource. Returned: success Sample: |
|
The IDs of any attached security groups. Returned: success |
|
The port status. Value is Returned: success Sample: |
|
The list of tags on the resource. Returned: success Sample: |
|
Same as project_id. Deprecated. Returned: success Sample: |
|
The trunk referring to this parent port and its subports.
Present for trunk parent ports if Returned: success |
|
Timestamp when the port was last updated. Returned: success Sample: |