opentelekomcloud.cloud.router (0.14.2) — module

Create or delete routers from OpenStack

Authors: OpenStack Ansible SIG

Install collection

Install with ansible-galaxy collection install opentelekomcloud.cloud:==0.14.2


Add to requirements.yml

  collections:
    - name: opentelekomcloud.cloud
      version: 0.14.2

Description

Create or Delete routers from OpenStack. Although Neutron allows routers to share the same name, this module enforces name uniqueness to be more user friendly.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Create a simple router, not attached to a gateway or subnets.
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: present
    name: simple_router
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Create a simple router, not attached to a gateway or subnets for a given project.
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: present
    name: simple_router
    project: myproj
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Creates a router attached to ext_network1 on an IPv4 subnet and one
# internal subnet interface.
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: present
    name: router1
    network: ext_network1
    external_fixed_ips:
      - subnet: public-subnet
        ip: 172.24.4.2
    interfaces:
      - private-subnet
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Create another router with two internal subnet interfaces.One with user defined port
# ip and another with default gateway.
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: present
    name: router2
    network: ext_network1
    interfaces:
      - net: private-net
        subnet: private-subnet
        portip: 10.1.1.10
      - project-subnet
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Create another router with two internal subnet interface.One with user defined port
# ip and and another with default gateway.
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: present
    name: router2
    network: ext_network1
    interfaces:
      - net: private-net
        subnet: private-subnet
        portip: 10.1.1.10
      - project-subnet
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Create another router with two internal subnet interface. one with  user defined port
# ip and and another  with default gateway.
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: present
    name: router2
    network: ext_network1
    interfaces:
      - net: private-net
        subnet: private-subnet
        portip: 10.1.1.10
      - project-subnet
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Update existing router1 external gateway to include the IPv6 subnet.
# Note that since 'interfaces' is not provided, any existing internal
# interfaces on an existing router will be left intact.
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: present
    name: router1
    network: ext_network1
    external_fixed_ips:
      - subnet: public-subnet
        ip: 172.24.4.2
      - subnet: ipv6-public-subnet
        ip: 2001:db8::3
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Delete router1
- opentelekomcloud.cloud.router:
    cloud: mycloud
    state: absent
    name: router1

Inputs

    
auth:
    description:
    - Dictionary containing auth information as needed by the cloud's auth plugin strategy.
      For the default I(password) plugin, this would contain I(auth_url), I(username),
      I(password), I(project_name) and any information about domains (for example, I(os_user_domain_name)
      or I(os_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.
    type: dict

name:
    description:
    - Name to be give to the router
    required: true
    type: str

wait:
    default: true
    description:
    - Should ansible wait until the requested resource is complete.
    type: bool

cloud:
    description:
    - Named cloud or cloud config to operate against. If I(cloud) is a string, it references
      a named cloud config as defined in an OpenStack clouds.yaml file. Provides default
      values for I(auth) and I(auth_type). This parameter is not needed if I(auth) is
      provided or if OpenStack OS_* environment variables are present. If I(cloud) is
      a dict, it contains a complete cloud configuration like would be in a section of
      clouds.yaml.
    type: raw

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Indicate desired state of the resource
    type: str

ca_cert:
    aliases:
    - cacert
    description:
    - A path to a CA Cert bundle that can be used as part of verifying SSL API requests.
    type: str

network:
    description:
    - Unique name or ID of the external gateway network.
    - required I(interfaces) or I(enable_snat) are provided.
    type: str

project:
    description:
    - Unique name or ID of the project.
    type: str

timeout:
    default: 180
    description:
    - How long should ansible wait for the requested resource.
    type: int

auth_type:
    description:
    - 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 I(auth) parameter should be updated accordingly.
    type: str

interface:
    aliases:
    - endpoint_type
    choices:
    - admin
    - internal
    - public
    default: public
    description:
    - Endpoint URL type to fetch from the service catalog.
    type: str

client_key:
    aliases:
    - key
    description:
    - A path to a client key to use as part of the SSL transaction.
    type: str

interfaces:
    description:
    - List of subnets to attach to the router internal interface. Default gateway associated
      with the subnet will be automatically attached with the router's internal interface.
      In order to provide an ip address different from the default gateway,parameters
      are passed as dictionary with keys as network name or ID (I(net)), subnet name or
      ID (I(subnet)) and the IP of port (I(portip)) from the network. User defined portip
      is often required when a multiple router need to be connected to a single subnet
      for which the default gateway has been already used.
    elements: raw
    type: list

api_timeout:
    description:
    - 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.
    type: int

client_cert:
    aliases:
    - cert
    description:
    - A path to a client certificate to use as part of the SSL transaction.
    type: str

enable_snat:
    description:
    - Enable Source NAT (SNAT) attribute.
    type: bool

region_name:
    description:
    - Name of the region.
    type: str

sdk_log_path:
    description:
    - Path to the logfile of the OpenStackSDK. If empty no log is written
    type: str

sdk_log_level:
    choices:
    - ERROR
    - WARN
    - INFO
    - DEBUG
    default: WARN
    description: Log level of the OpenStackSDK
    type: str

admin_state_up:
    default: 'yes'
    description:
    - Desired admin state of the created or existing router.
    type: bool

validate_certs:
    aliases:
    - verify
    description:
    - Whether or not SSL API requests should be verified.
    - Before Ansible 2.3 this defaulted to C(yes).
    type: bool

Outputs

router:
  contains:
    admin_state_up:
      description: Administrative state of the router.
      sample: true
      type: bool
    external_gateway_info:
      description: The external gateway parameters.
      sample:
        enable_snat: true
        external_fixed_ips:
        - ip_address: 10.6.6.99
          subnet_id: 4272cb52-a456-4c20-8f3c-c26024ecfa81
      type: dict
    id:
      description: Router ID.
      sample: 474acfe5-be34-494c-b339-50f06aa143e4
      type: str
    name:
      description: Router name.
      sample: router1
      type: str
    routes:
      description: The extra routes configuration for L3 router.
      type: list
    status:
      description: The router status.
      sample: ACTIVE
      type: str
    tenant_id:
      description: The tenant ID.
      sample: 861174b82b43463c9edc5202aadc60ef
      type: str
  description: Dictionary describing the router.
  returned: On success when I(state) is 'present'
  type: complex