On this page
arista.eos.eos_prefix_lists – Manages Prefix lists resource module
Note
This plugin is part of the arista.eos 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 arista.eos
.
To use it in a playbook, specify: arista.eos.eos_prefix_lists
.
New in version 2.2.0: of arista.eos
Synopsis
- This module configures and manages the attributes of Prefix lists on Arista EOS platforms.
Note
This module has a corresponding action plugin.
Parameters
Parameter | Choices/Defaults | Comments | ||||
---|---|---|---|---|---|---|
config
list / elements=dictionary
|
A list of dictionary of prefix-list options
|
|||||
afi
string / required
|
|
The Address Family Indicator (AFI) for the prefix list.
|
||||
prefix_lists
list / elements=dictionary
|
A list of prefix-lists.
|
|||||
entries
list / elements=dictionary
|
List of prefix-lists
|
|||||
action
string
|
|
action to be performed on the specified path
|
||||
address
string
|
ipv4/v6 address in prefix-mask or address-masklen format
|
|||||
match
dictionary
|
match masklen
|
|||||
masklen
integer
|
Mask Length.
|
|||||
operator
string
|
|
equalto/greater than/lesser than
|
||||
resequence
dictionary
|
Resequence the list.
|
|||||
default
boolean
|
|
Resequence with default values (10).
|
||||
start_seq
integer
|
Starting sequence number.
|
|||||
step
integer
|
Step to increment the sequence number.
|
|||||
sequence
integer
|
sequence number
|
|||||
name
string / required
|
Name of the prefix-list
|
|||||
running_config
string
|
This option is used only with state parsed.
The value of this option should be the output received from the EOS device by executing the command show running-config | section access-list.
The state parsed reads the configuration from running_config option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the parsed key within the result.
|
|||||
state
string
|
|
The state the configuration should be left in.
|
Notes
Note
- Tested against Arista EOS 4.20.10M
- This module works with connection
network_cli
. See the EOS Platform Options.
Examples
# Using merged
# Before state
# veos#show running-config | section prefix-lists
# veos#
- name: Merge provided configuration with device configuration
arista.eos.eos_prefix_lists:
config:
- afi: "ipv4"
prefix_lists:
- name: "v401"
entries:
- sequence: 25
action: "deny"
address: "45.55.4.0/24"
- sequence: 100
action: "permit"
address: "11.11.2.0/24"
match:
masklen: 32
operator: "ge"
- name: "v402"
entries:
- action: "deny"
address: "10.1.1.0/24"
sequence: 10
match:
masklen: 32
operator: "ge"
- afi: "ipv6"
prefix_lists:
- name: "v601"
entries:
- sequence: 125
action: "deny"
address: "5000:1::/64"
# After State
# veos#
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24
# seq 100 permit 11.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
# veos#
#
# Module Execution:
# "after": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 10
# }
# ],
# "name": "v402"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ],
# "before": {},
# "changed": true,
# "commands": [
# "ipv6 prefix-list v601",
# "seq 125 deny 5000:1::/64",
# "ip prefix-list v401",
# "seq 25 deny 45.55.4.0/24",
# "seq 100 permit 11.11.2.0/24 ge 32",
# "ip prefix-list v402",
# "seq 10 deny 10.1.1.0/24 ge 32"
# ],
#
# using merged:
# Failure scenario : 'merged' should not be used when an existing prefix-list (sequence number)
# is to be modified.
# Before State:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24
# seq 100 permit 11.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
# veos#
- name: Merge provided configuration with device configuration
arista.eos.eos_prefix_lists:
config:
- afi: "ipv4"
prefix_lists:
- name: "v401"
entries:
- sequence: 25
action: "deny"
address: "45.55.4.0/24"
match:
masklen: 32
operator: "ge"
- sequence: 100
action: "permit"
address: "11.11.2.0/24"
match:
masklen: 32
operator: "ge"
- name: "v402"
entries:
- action: "deny"
address: "10.1.1.0/24"
sequence: 10
match:
masklen: 32
operator: "ge"
- afi: "ipv6"
prefix_lists:
- name: "v601"
entries:
- sequence: 125
action: "deny"
address: "5000:1::/64"
state: merged
# Module Execution:
# fatal: [192.168.122.113]: FAILED! => {
# "changed": false,
# "invocation": {
# "module_args": {
# "config": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "resequence": null,
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "resequence": null,
# "sequence": 100
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "resequence": null,
# "sequence": 10
# }
# ],
# "name": "v402"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "match": null,
# "resequence": null,
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ],
# "running_config": null,
# "state": "merged"
# }
# },
# "msg": "Sequence number 25 is already present. Use replaced/overridden operation to change the configuration"
# }
#
# Using Replaced:
# Before state:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24
# seq 100 permit 11.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
# veos#
- name: Replace
arista.eos.eos_prefix_lists:
config:
- afi: "ipv4"
prefix_lists:
- name: "v401"
entries:
- sequence: 25
action: "deny"
address: "45.55.4.0/24"
match:
masklen: 32
operator: "ge"
- sequence: 200
action: "permit"
address: "200.11.2.0/24"
match:
masklen: 32
operator: "ge"
state: replaced
# After State:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24 ge 32
# seq 200 permit 200.11.2.0/24 ge 32
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
# veos#
#
#
# Module Execution:
#
# "after": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "200.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 200
# }
# ],
# "name": "v401"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ],
# "before": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 10
# }
# ],
# "name": "v402"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ],
# "changed": true,
# "commands": [
# "ip prefix-list v401",
# "no seq 25",
# "seq 25 deny 45.55.4.0/24 ge 32",
# "seq 200 permit 200.11.2.0/24 ge 32",
# "no seq 100",
# "no ip prefix-list v402"
# ],
# Using overridden:
# Before State:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24 ge 32
# seq 100 permit 11.11.2.0/24 ge 32
# seq 200 permit 200.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
# veos#
- name: Override
arista.eos.eos_prefix_lists:
config:
- afi: "ipv4"
prefix_lists:
- name: "v401"
entries:
- sequence: 25
action: "deny"
address: "45.55.4.0/24"
- sequence: 300
action: "permit"
address: "30.11.2.0/24"
match:
masklen: 32
operator: "ge"
- name: "v403"
entries:
- action: "deny"
address: "10.1.1.0/24"
sequence: 10
state: overridden
# After State
# veos#
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24 ge 32
# seq 300 permit 30.11.2.0/24 ge 32
# !
# ip prefix-list v403
# seq 10 deny 10.1.1.0/24
# veos#
#
#
# Module Execution:
# "after": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "30.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 300
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "sequence": 10
# }
# ],
# "name": "v403"
# }
# ]
# }
# ],
# "before": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# },
# {
# "action": "permit",
# "address": "200.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 200
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 10
# }
# ],
# "name": "v402"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ],
# "changed": true,
# "commands": [
# "no ipv6 prefix-list v601",
# "ip prefix-list v401",
# "seq 25 deny 45.55.4.0/24",
# "seq 300 permit 30.11.2.0/24 ge 32",
# "no seq 100",
# "no seq 200",
# "ip prefix-list v403",
# "seq 10 deny 10.1.1.0/24",
# "no ip prefix-list v402"
# ],
#
# Using deleted:
# Before State:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24 ge 32
# seq 100 permit 11.11.2.0/24 ge 32
# seq 300 permit 30.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ip prefix-list v403
# seq 10 deny 10.1.1.0/24
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
# veos#
- name: Delete device configuration
arista.eos.eos_prefix_lists:
config:
- afi: "ipv6"
state: deleted
# after State:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24 ge 32
# seq 100 permit 11.11.2.0/24 ge 32
# seq 300 permit 30.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ip prefix-list v403
# seq 10 deny 10.1.1.0/24
#
#
# Module Execution:
# "after": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# },
# {
# "action": "permit",
# "address": "30.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 300
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 10
# }
# ],
# "name": "v402"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "sequence": 10
# }
# ],
# "name": "v403"
# }
# ]
# }
# ],
# "before": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# },
# {
# "action": "permit",
# "address": "30.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 300
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 10
# }
# ],
# "name": "v402"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "sequence": 10
# }
# ],
# "name": "v403"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ],
# "changed": true,
# "commands": [
# "no ipv6 prefix-list v601"
# ],
#
# Using deleted
# Before state:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24 ge 32
# seq 100 permit 11.11.2.0/24 ge 32
# seq 300 permit 30.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ip prefix-list v403
# seq 10 deny 10.1.1.0/24
# veos#
- name: Delete device configuration
arista.eos.eos_prefix_lists:
state: deleted
# After State:
# veos#show running-config | section prefix-list
# veos#
#
# Module Execution:
# "after": {},
# "before": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# },
# {
# "action": "permit",
# "address": "30.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 300
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 10
# }
# ],
# "name": "v402"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "sequence": 10
# }
# ],
# "name": "v403"
# }
# ]
# }
# ],
# "changed": true,
# "commands": [
# "no ip prefix-list v401",
# "no ip prefix-list v402",
# "no ip prefix-list v403"
# ],
#
# Using parsed:
# parse_prefix_lists.cfg
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24
# seq 100 permit 11.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
#
- name: parse configs
arista.eos.eos_prefix_lists:
running_config: "{{ lookup('file', './parsed_prefix_lists.cfg') }}"
state: parsed
# Module Execution:
# "parsed": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "sequence": 10
# }
# ],
# "name": "v402"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ]
# Using rendered:
- name: Render provided configuration
arista.eos.eos_prefix_lists:
config:
- afi: "ipv4"
prefix_lists:
- name: "v401"
entries:
- sequence: 25
action: "deny"
address: "45.55.4.0/24"
- sequence: 200
action: "permit"
address: "200.11.2.0/24"
match:
masklen: 32
operator: "ge"
- name: "v403"
entries:
- action: "deny"
address: "10.1.1.0/24"
sequence: 10
state: rendered
# Module Execution:
# "rendered": [
# "ip prefix-list v401",
# "seq 25 deny 45.55.4.0/24",
# "seq 200 permit 200.11.2.0/24 ge 32",
# "ip prefix-list v403",
# "seq 10 deny 10.1.1.0/24"
# ]
#
# using gathered:
# Device config:
# veos#show running-config | section prefix-list
# ip prefix-list v401
# seq 25 deny 45.55.4.0/24
# seq 100 permit 11.11.2.0/24 ge 32
# !
# ip prefix-list v402
# seq 10 deny 10.1.1.0/24 ge 32
# !
# ipv6 prefix-list v601
# seq 125 deny 5000:1::/64
# veos#
- name: gather configs
arista.eos.eos_prefix_lists:
state: gathered
# Module Execution:
#
# "gathered": [
# {
# "afi": "ipv4",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "45.55.4.0/24",
# "sequence": 25
# },
# {
# "action": "permit",
# "address": "11.11.2.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 100
# }
# ],
# "name": "v401"
# },
# {
# "entries": [
# {
# "action": "deny",
# "address": "10.1.1.0/24",
# "match": {
# "masklen": 32,
# "operator": "ge"
# },
# "sequence": 10
# }
# ],
# "name": "v402"
# }
# ]
# },
# {
# "afi": "ipv6",
# "prefix_lists": [
# {
# "entries": [
# {
# "action": "deny",
# "address": "5000:1::/64",
# "sequence": 125
# }
# ],
# "name": "v601"
# }
# ]
# }
# ],
Authors
- Gomathi Selvi Srinivasan (@GomathiselviS)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/arista/eos/eos_prefix_lists_module.html