ansible.builtin.ops_command (v2.3.3.0-1) — module

Run arbitrary commands on OpenSwitch devices.

| "added in version" 2.1 of ansible.builtin"

Authors: Peter Sprygada (@privateip)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.3.3.0.post1

Description

Sends arbitrary commands to an OpenSwitch node and returns the results read from the device. This module includes an argument that will cause the module to wait for a specific condition before returning or timing out if the condition is not met.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Note: examples below use the following provider dict to handle
#       transport and authentication to the node.
---
vars:
  cli:
    host: "{{ inventory_hostname }}"
    username: netop
    password: netop
    transport: cli

---
- ops_command:
    commands:
      - show version
    provider: "{{ cli }}"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- ops_command:
    commands:
      - show version
    wait_for:
      - "result[0] contains OpenSwitch"
    provider: "{{ cli }}"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- ops_command:
    commands:
      - show version
      - show interfaces
    provider: "{{ cli }}"

Inputs

    
host:
    description:
    - Specifies the DNS host name or address for connecting to the remote device over
      the specified transport.  The value of host is used as the destination address for
      the transport.  Note this argument does not affect the SSH argument.
    type: str

port:
    default: 0 (use common port)
    description:
    - Specifies the port to use when building the connection to the remote device.  This
      value applies to either I(cli) or I(rest).  The port value will default to the appropriate
      transport common port if none is provided in the task.  (cli=22, http=80, https=443).  Note
      this argument does not affect the SSH transport.
    type: int

match:
    choices:
    - any
    - all
    default: all
    description:
    - The I(match) argument is used in conjunction with the I(wait_for) argument to specify
      the match policy.  Valid values are C(all) or C(any).  If the value is set to C(all)
      then all conditionals in the I(wait_for) must be satisfied.  If the value is set
      to C(any) then only one of the values must be satisfied.
    required: false
    version_added: '2.2'
    version_added_collection: ansible.builtin

retries:
    default: 10
    description:
    - Specifies the number of retries a command should by tried before it is considered
      failed. The command is run on the target device every retry and evaluated against
      the I(wait_for) conditions.
    required: false

timeout:
    default: 10
    description:
    - Specifies the timeout in seconds for communicating with the network device for either
      connecting or sending commands.  If the timeout is exceeded before the operation
      is completed, the module will error.
    type: int

use_ssl:
    default: true
    description:
    - Configures the I(transport) to use SSL if set to C(yes) only when the I(transport)
      argument is configured as rest.  If the transport argument is not I(rest), this
      value is ignored.
    type: bool

commands:
    description:
    - List of commands to send to the remote ops device over the configured provider.
      The resulting output from the command is returned. If the I(wait_for) argument is
      provided, the module is not returned until the condition is satisfied or the number
      of retires as expired.
    required: true

interval:
    default: 1
    description:
    - Configures the interval in seconds to wait between I(retries) of the command. If
      the command does not pass the specified conditions, the interval indicates how long
      to wait before trying the command again.
    required: false

password:
    description:
    - Specifies the password to use to authenticate the connection to the remote device.  This
      is a common argument used for either I(cli) or I(rest) transports.  Note this argument
      does not affect the SSH transport. If the value is not specified in the task, the
      value of environment variable C(ANSIBLE_NET_PASSWORD) will be used instead.
    type: str

provider:
    description:
    - Convenience method that allows all I(openswitch) arguments to be passed as a dict
      object.  All constraints (required, choices, etc) must be met either by individual
      arguments or values in this dict.
    type: dict

username:
    description:
    - Configures the username to use to authenticate the connection to the remote device.  This
      value is used to authenticate either the CLI login or the eAPI authentication depending
      on which transport is used. Note this argument does not affect the SSH transport.
      If the value is not specified in the task, the value of environment variable C(ANSIBLE_NET_USERNAME)
      will be used instead.
    type: str

wait_for:
    aliases:
    - waitfor
    default: null
    description:
    - List of conditions to evaluate against the output of the command. The task will
      wait for each condition to be true before moving forward. If the conditional is
      not true within the configured number of retries, the task fails. See examples.
    required: false
    version_added: '2.2'
    version_added_collection: ansible.builtin

transport:
    choices:
    - cli
    - rest
    - ssh
    default: ssh
    description:
    - Configures the transport connection to use when connecting to the remote device.  The
      transport argument supports connectivity to the device over ssh, cli or REST.
    required: true
    type: str

ssh_keyfile:
    description:
    - Specifies the SSH key to use to authenticate the connection to the remote device.  This
      argument is only used for the I(cli) transports. If the value is not specified in
      the task, the value of environment variable C(ANSIBLE_NET_SSH_KEYFILE) will be used
      instead.
    type: path

Outputs

failed_conditions:
  description: the conditionals that failed
  returned: failed
  sample:
  - '...'
  - '...'
  type: list
stdout:
  description: the set of responses from the commands
  returned: always
  sample:
  - '...'
  - '...'
  type: list
stdout_lines:
  description: The value of stdout split into a list
  returned: always
  sample:
  - - '...'
    - '...'
  - - '...'
  - - '...'
  type: list