paloaltonetworks.panos.panos_type_cmd module – Execute arbitrary TYPE commands on PAN-OS

Note

This module is part of the paloaltonetworks.panos collection (version 2.19.1).

To install it, use: ansible-galaxy collection install paloaltonetworks.panos. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: paloaltonetworks.panos.panos_type_cmd.

New in paloaltonetworks.panos 1.0.0

Synopsis

  • This module allows you to execute arbitrary TYPE commands on PAN-OS.

  • This module does not provide guards of any sort, so USE AT YOUR OWN RISK.

  • Refer to the PAN-OS and Panorama API guide for more info.

  • https://docs.paloaltonetworks.com/pan-os.html

Requirements

The below requirements are needed on the host that executes this module.

  • pan-python

  • pandevice

Parameters

Parameter

Comments

api_key

string

Deprecated

Use provider to specify PAN-OS connectivity instead.


The API key to use instead of generating it using username / password.

cmd

string

dst

string

Used in cmd=move.

The reference object.

element

string

Used in cmd=set, cmd=edit, and cmd=override.

The element payload.

extra_qs

dictionary

A dict of extra params to pass in.

ip_address

string

Deprecated

Use provider to specify PAN-OS connectivity instead.


The IP address or hostname of the PAN-OS device being configured.

new_name

string

Used in cmd=rename and cmd=clone.

The new name.

password

string

Deprecated

Use provider to specify PAN-OS connectivity instead.


The password to use for authentication. This is ignored if api_key is specified.

port

integer

Deprecated

Use provider to specify PAN-OS connectivity instead.


The port number to connect to the PAN-OS device on.

Default: :ansible-option-default:`443`

provider

dictionary

added in paloaltonetworks.panos 1.0.0

A dict object containing connection details.

api_key

string

The API key to use instead of generating it using username / password.

ip_address

string

The IP address or hostname of the PAN-OS device being configured.

password

string

The password to use for authentication. This is ignored if api_key is specified.

port

integer

The port number to connect to the PAN-OS device on.

Default: :ansible-option-default:`443`

serial_number

string

The serial number of a firewall to use for targeted commands. If ip_address is not a Panorama PAN-OS device, then this param is ignored.

username

string

The username to use for authentication. This is ignored if api_key is specified.

Default: :ansible-option-default:`"admin"`

username

string

Deprecated

Use provider to specify PAN-OS connectivity instead.


The username to use for authentication. This is ignored if api_key is specified.

Default: :ansible-option-default:`"admin"`

where

string

Used in cmd=move.

The movement keyword.

xpath

string / required

The XPATH.

All newlines are removed from the XPATH to allow for shorter lines.

xpath_from

string

Used in cmd=clone.

The from xpath.

Notes

Note

  • Panorama is supported.

  • Check mode is not supported.

  • PAN-OS connectivity should be specified using provider or the classic PAN-OS connectivity params (ip_address, username, password, api_key, and port). If both are present, then the classic params are ignored.

Examples

- name: Create an address object using set.
  paloaltonetworks.panos.panos_type_cmd:
    provider: '{{ provider }}'
    xpath: |
      /config/devices/entry[@name='localhost.localdomain']
      /vsys/entry[@name='vsys1']
      /address
    element: |
      <entry name="sales-block">
        <ip-netmask>192.168.55.0/24</ip-netmask>
        <description>Address CIDR for sales org</description>
      </entry>

- name: Then rename it.
  paloaltonetworks.panos.panos_type_cmd:
    provider: '{{ provider }}'
    cmd: 'rename'
    xpath: |
      /config/devices/entry[@name='localhost.localdomain']
      /vsys/entry[@name='vsys1']
      /address/entry[@name='sales-block']
    new_name: 'dmz-block'

- name: Show the address object.
  paloaltonetworks.panos.panos_type_cmd:
    provider: '{{ provider }}'
    cmd: 'show'
    xpath: |
      /config/devices/entry[@name='localhost.localdomain']
      /vsys/entry[@name='vsys1']
      /address/entry[@name='dmz-block']

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

stdout

string

output (if any) of the given API command as JSON formatted string

Returned: success

Sample: :ansible-rv-sample-value:`"{entry: {@name: dmz-block, ip-netmask: 192.168.55.0/24, description: Address CIDR for sales org}}"`

stdout_xml

string

output of the given API command as an XML formatted string

Returned: success

Sample: :ansible-rv-sample-value:`"\<entry name=dmz-block\>\<ip-netmask\>192.168.55.0/24\</ip-netmask\>...\</entry\>"`

Authors

  • Garfield Lee Freeman (@shinmog)