Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x
- Puppet >= 6.0.0 < 7.0.0
- ,
Tasks:
- backup_config
- cli_command
- config_save
- restore_config
- restore_startup
Start using this module
Add this module to your Puppetfile:
mod 'puppetlabs-cisco_ios', '2.0.0'
Learn more about managing modules with a PuppetfileDocumentation
cisco_ios
Table of Contents
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with cisco_ios
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Module Description
The Cisco IOS module allows for the configuration of Cisco Catalyst devices running IOS and IOS-XE.
Any changes made by this module affect the current running-config
. These changes will lost on device reboot unless they are backed up to startup-config
. This module provides a Puppet task to save running-config
to startup-config
.
Setup
What cisco_ios affects
This module installs the Net::SSH::Telnet gem; and Puppet Resource API gem, if necessary. To activate the Puppet Resource API gem, a reload of the puppetserver service is necessary. In most cases, this should happen automatically and cause little to no interruption to service.
Setup Requirements
Device access
This module requires a user that can access the device via SSH and that has the enable mode
privilege.
Proxy Puppet agent
Since a Puppet agent is not available for the Catalysts (and, seriously, who would want to run an agent on them?) we need a proxy Puppet agent (either a compiler, or another agent) to run Puppet on behalf of the device.
Install dependencies
To install dependencies of the Cisco IOS module:
- Classify or apply the
cisco_ios
class on each server (server of servers, and if present, compilers and replica servers) that serves catalogs for this module. - Classify or apply the
cisco_ios
class on each proxy Puppet agent that proxies for Cisco IOS devices.
Run puppet agent -t on the server(s) before using the module on the agent(s).
Beginning with cisco_ios with Bolt
Check out the Hands-on Lab for getting started with bolt.
Beginning with cisco_ios with Puppet
To get started, create or edit /etc/puppetlabs/puppet/device.conf
on the proxy Puppet agent, add a section for the device (this will become the device's certname
), specify a type of cisco_ios
, and specify a url
to a credentials file.
For example:
[cisco.example.com]
type cisco_ios
url file:////etc/puppetlabs/puppet/devices/cisco.example.com.conf`
The credentials file must contain a hash in HOCON format that matches the schema defined in lib/puppet/transport/schema/cisco_ios.rb for example:
host: "10.0.0.246"
port: 22
user: admin
password: password
enable_password: password
To automate the creation of these files, use the device_manager module, the credentials
section should follow the schema as described above:
device_manager { 'cisco.example.com':
type => 'cisco_ios',
credentials => {
host => '10.0.0.246',
port => 22,
user => 'admin',
password => 'password',
enable_password => 'password',
},
}
(Using the device_manager
module will also automatically classify the proxy Puppet agent with the cisco_ios
class.)
Test your setup
Run puppet device
on the proxy Puppet agent. For example:
puppet device --verbose --target cisco.example.com
Signing certificates
The first run of puppet device
for a device will generate a certificate request:
Info: Creating a new SSL key for cisco.example.com
Info: Caching certificate for ca
Info: csr_attributes file loading from /opt/puppetlabs/puppet/cache/devices/cisco.example.com/csr_attributes.yaml
Info: Creating a new SSL certificate request for cisco.example.com
Info: Certificate Request fingerprint (SHA256): ...
Info: Caching certificate for ca
Unless autosign is enabled, the following (depending upon waitforcert
) will be output:
Notice: Did not receive certificate
Notice: Did not receive certificate
Notice: Did not receive certificate
...
Or:
Exiting; no certificate found and waitforcert is disabled
On the server, execute the following to sign the certificate for the device:
- Puppet 6 or later
puppetserver ca sign --certname cisco.example.com
This will output that the certificate for the device has been signed:
Successfully signed certificate request for cisco.example.com
- Earlier versions of Puppet
puppet cert sign cisco.example.com
This will output that the certificate for the device has been signed:
Signing Certificate Request for:
"cisco.example.com" (SHA256) ...
Notice: Signed certificate request for cisco.example.com
Notice: Removing file Puppet::SSL::CertificateRequest cisco.example.com at '/etc/puppetlabs/puppet/ssl/ca/requests/cisco.example.com.pem'
Note (Security Warning) The SSH server key, and hence its identity, will not be verified during the first connection attempt. Please follow up by verifying the SSH key for the device is correct. The fingerprint will be added to the known hosts file. By default this is the device cache directory eg. /opt/puppetlabs/puppet/cache/devices/cisco.example.com/ssl/known_hosts
.
This can be changed by setting the known_hosts_file
value in the credentials file.
Usage
Create a manifest with the changes you want to apply. For example:
ntp_server { '1.2.3.4':
ensure => 'present',
key => 94,
prefer => true,
minpoll => 4,
maxpoll => 14,
source_interface => 'Vlan 42',
}
Note: The
--apply
and--resource
options are only available with Puppet agent 5.5.0 and higher.
Run puppet device --apply
on the proxy Puppet agent to apply the changes:
puppet device --target cisco.example.com --apply manifest.pp
Run puppet device --resource
on the proxy Puppet agent to obtain the current values:
puppet device --target cisco.example.com --resource ntp_server
Tasks
To save the running config, it is possible to use the cisco_ios::config_save
task. Before running this task, install the module on your machine, along with Puppet Bolt. When complete, execute the following command:
bolt task run cisco_ios::config_save --nodes ios --modulepath <module_installation_dir> --inventoryfile <inventory_yaml_path>
The following inventory file can be used to connect to your switch.
# inventory.yaml
nodes:
- name: cisco.example.com
alias: ios
config:
transport: remote
remote:
remote-transport: cisco_ios
user: admin
password: password
enable_password: password
The --modulepath
param can be retrieved by typing puppet config print modulepath
.
NOTE: If you have only bolt installed,
puppet config print
does not exist. See https://puppet.com/docs/bolt/latest/installing_tasks_from_the_forge.html#task-8928 on how bolt can be used to install modules into your boltdir.
Type
Add new types to the type directory. Use the bundled ios_config example for guidance. Here is a simple example:
require 'puppet/resource_api'
Puppet::ResourceApi.register_type(
name: 'new_thing',
docs: 'Configure the new thing of the device',
features: ['remote_resource'],
attributes: {
ensure: {
type: 'Enum[present, absent]',
desc: 'Whether the new thing should be present or absent on the target system.',
default: 'present',
},
name: {
type: 'String',
desc: 'The name of the new thing',
behaviour: :namevar,
},
# Other fields in resource API format
},
)
Provider
Add a provider — see existing examples. Parsing logic is contained in ios.rb
. Regular expressions for parsing, getting and setting values, are contained within command.yaml
.
Modes
If the new provider requires accessing a CLI "mode", for example, Interface (config-if)
, add this as a new mode state to Puppet::Transport::CiscoIos
and an associated prompt to command.yaml
.
Testing
There are 2 levels of testing found under spec
.
Unit Testing
Unit tests test the parsing and command generation logic executed locally. Specs typically iterate over read_tests
and update_tests
, which contain testing values within test_data.yaml
.
Execute with bundle exec rake spec
.
Acceptance Testing
Acceptance tests are executed on actual devices.
Use test values and make sure that these are non-destructive.
Typically, the following flow is used:
- Remove any existing entry
- Add test
- Edit test — with as many values as possible
- Remove test
Any other logic or values that can be tested should be added, as appropriate.
Executing
Ensure that the IP address/hostname, username, password and enable password are specified as environment variables from your execution environment, for example:
export DEVICE_IP=10.0.10.20
export DEVICE_USER=admin
export DEVICE_PASSWORD="devicePa$$w0rd"
export DEVICE_ENABLE_PASSWORD="enablePa$$w0rd"
Execute the acceptance test suite with the following command:
bundle exec rspec spec/acceptance/
References
Generated documentation is available in REFERENCE.md. If you need to generate this again for any reason, run the following command:
bundle exec puppet strings generate --format markdown --out REFERENCE.md
Reference
Table of Contents
Classes
cisco_ios
: This class calls the cisco_ios::install class.cisco_ios::install
: This class installs dependencies of this module into the puppet agent, and/or the puppetserver service.cisco_ios::install::agent
: This class install dependencies of this module into puppet agentcisco_ios::install::server
: This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.cisco_ios::proxy
: This class install dependencies of this module into puppet agentcisco_ios::server
: This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.
Resource types
ios_aaa_accounting
: Configure aaa accounting on deviceios_aaa_authentication
: Configure aaa authentication on deviceios_aaa_authorization
: Configure aaa authorization on deviceios_aaa_new_model
: Enable aaa new model on deviceios_aaa_session_id
: Configure aaa session id on deviceios_access_list
: Configure access lists. Deprecated, due to unreconcilable implementation issues. Use the ios_acl type instead.ios_acl
: Manage ACL contentsios_acl_entry
: Configure access lists entries. Deprecated, due to unreconcilable implementation issues. Use the ios_acl type instead.ios_additional_syslog_settings
: Configure global syslog settingsios_cef
: Implementation and Management of CEF settingsios_config
: Execute an arbitary configuration against the cisco_ios device with or without a check for idempotencyios_interface
: Manage layer 3 configuration on a per Instance basis.ios_ip
: Manages settings related to the IPios_network_dns
: Configure DNS settings for network devicesios_network_trunk
: Ethernet logical (switch-port) interface. Configures VLAN trunking.ios_ntp_access_group
: Specify NTP access group configios_ntp_config
: Specify NTP configios_radius_global
: Configure IOS global RADIUS settingsios_radius_server_group
: Configure a RADIUS server groupios_snmp_global
: Configures Global snmp settings.ios_stp_global
: Manages the Cisco Spanning-tree Global configuration resource.
Tasks
cli_command
: Execute CLI Commandconfig_save
: Save running-config to startup-configrestore_startup
: Copies the startup-config to the running-configbackup_config
: Backs up the running config on the device to a given file locationrestore_config
: Restores the config from the specified location to the device
Classes
cisco_ios
This class calls the cisco_ios::install class.
Examples
Declaring the class
include cisco_ios
cisco_ios::install
This class installs dependencies of this module into the puppet agent, and/or the puppetserver service.
Examples
Declaring the class
include cisco_ios::install
cisco_ios::install::agent
This class install dependencies of this module into puppet agent
Examples
Declaring the class
include cisco_ios::install::agent
cisco_ios::install::server
This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.
Examples
Declaring the class
include cisco_ios::install::server
cisco_ios::proxy
This class install dependencies of this module into puppet agent
- Note Deprecated, use cisco_ios::install::agent
Examples
Declaring the class
include cisco_ios::proxy
cisco_ios::server
This class installs dependencies of this module into puppetserver, and restarts the puppetserver service to activate.
- Note Deprecated, use cisco_ios::install::server
Examples
Declaring the class
include cisco_ios::server
Resource types
ios_aaa_accounting
Configure aaa accounting on device
Properties
The following properties are available in the ios_aaa_accounting
type.
ensure
Data type: Enum[present, absent]
Whether this aaa accounting should be present or absent on the target system.
Default value: present
accounting_service
Data type: Enum["auth-proxy","commands","connection","dot1x","exec","identity","network","onep","resource","system","update"]
AAA Accounting service to use
commands_enable_level
Data type: Optional[Integer]
Enable level - needed for "commands" accounting_service
accounting_list
Data type: Optional[String]
The accounting list - named or default
accounting_status
Data type: Optional[Enum["none","start-stop","stop-only"]]
The status of the accounting
server_groups
Data type: Optional[Array[String]]
Array of the server groups eg. ['tacacs+'], ['test1', 'test2']
update_newinfo
Data type: Optional[Boolean]
Only send accounting update records when we have new acct info. (For periodic use "update_newinfo_periodic") - use with "update" accounting_service.
update_newinfo_periodic
Data type: Optional[Integer[1, 2147483647]]
Periodic intervals to send accounting update records(in minutes) when we have new acct info. (For non-periodic use "update_newinfo") - use with "update" accounting_service.
update_periodic
Data type: Optional[Integer[1, 2147483647]]
Periodic intervals to send accounting update records(in minutes) (For new acct info only use "update_newinfo_periodic") - use with "update" accounting_service.
Parameters
The following parameters are available in the ios_aaa_accounting
type.
name
namevar
Data type: String
Name. On resource this is a composite of the authorization_service (and enable level if "commands") and authorization_list name eg. "commands 15 default" or "exec authlist1" - or "update" type eg. "update newinfo"
Default value: default
ios_aaa_authentication
Configure aaa authentication on device
Properties
The following properties are available in the ios_aaa_authentication
type.
ensure
Data type: Enum[present, absent]
Whether this aaa authentication should be present or absent on the target system.
Default value: present
authentication_list_set
Data type: Enum["arap","login","enable","dot1x","eou","onep","ppp","sgbp","suppress"]
Set authentication lists for - Login, Enable or dot1x
authentication_list
Data type: Optional[String]
The authentication list - named or default
cache_groups
Data type: Optional[Array[String]]
Array of the cache groups eg. ['ldap', 'radius', tacacs+'], ['test1', 'test2']
server_groups
Data type: Optional[Array[String]]
Array of the server groups eg. ['tacacs+'], ['test1', 'test2']
enable_password
Data type: Optional[Boolean]
Use enable password for authentication.
line
Data type: Optional[Boolean]
Use line password for authentication.
local
Data type: Optional[Boolean]
Use local username authentication.
local_case
Data type: Optional[Boolean]
Use case-sensitive local username authentication.
no_authentication
Data type: Optional[Boolean]
NO authentication.
switch_auth
Data type: Optional[Boolean]
Switch authentication.
suppress_null_username
Data type: Optional[Boolean]
Do not send access-request for users with null username.
Parameters
The following parameters are available in the ios_aaa_authentication
type.
name
namevar
Data type: String
Name. On resource this is a composite of the authentication_list_set and authentication_list name eg. "login default"
Default value: default
ios_aaa_authorization
Configure aaa authorization on device
Properties
The following properties are available in the ios_aaa_authorization
type.
ensure
Data type: Enum[present, absent]
Whether this aaa authorization should be present or absent on the target system.
Default value: present
authorization_service
Data type: Enum["auth-proxy","commands","configuration","exec","network","reverse_access"]
AAA Authorization service to use
commands_enable_level
Data type: Optional[Integer]
Enable level - needed for "commands" authorization_service
authorization_list
Data type: String
The authorization list - named or default
Default value: default
server_groups
Data type: Optional[Array[String]]
Array of the server groups eg. ['tacacs+'], ['test1', 'test2']
local
Data type: Optional[Boolean]
Use local database.
if_authenticated
Data type: Optional[Boolean]
Succeed if user has authenticated.
Parameters
The following parameters are available in the ios_aaa_authorization
type.
name
namevar
Data type: String
Name. On resource this is a composite of the authorization_service (and enable level if "commands") and authorization_list name eg. "commands 15 default" or "exec authlist1"
Default value: default
ios_aaa_new_model
Enable aaa new model on device
Properties
The following properties are available in the ios_aaa_new_model
type.
enable
Data type: Boolean
Enable or disable aaa new model
Parameters
The following parameters are available in the ios_aaa_new_model
type.
name
namevar
Data type: String
The name stays as "default"
Default value: default
ios_aaa_session_id
Configure aaa session id on device
Properties
The following properties are available in the ios_aaa_session_id
type.
session_id_type
Data type: Enum["common","unique"]
Type of aaa session id - common or unique
Parameters
The following parameters are available in the ios_aaa_session_id
type.
name
namevar
Data type: String
The name stays as "default"
Default value: default
ios_access_list
Configure access lists. Deprecated, due to unreconcilable implementation issues. Use the ios_acl type instead.
Properties
The following properties are available in the ios_access_list
type.
ensure
Data type: Enum[present, absent]
Whether this access list should be present or absent on the target system.
Default value: present
access_list_type
Data type: Enum["Standard","Extended","Reflexive","none"]
Type of access list - standard, extended, reflexive or no type
Parameters
The following parameters are available in the ios_access_list
type.
name
namevar
Data type: String
Access list name or number.
ios_acl
Manage ACL contents
Properties
The following properties are available in the ios_acl
type.
ensure
Data type: Enum[present, absent]
Whether this access list entry should be present or absent on the target system.
Default value: present
dynamic
Data type: Optional[String]
Name of a Dynamic list
permission
Data type: Enum["permit", "deny", "evaluate"]
Specify packets to forward/reject, or evaluate an access list
evaluation_name
Data type: Optional[String]
Evaluate an access list
protocol
Data type: Optional[Variant[Enum["ahp","eigrp","esp","gre","icmp","igmp","ip","ipinip","nos","ospf","pcp","pim","tcp","udp"],Pattern[/\d+/]]]
*this data type contains a regex that may not be accurately reflected in generated documentation
ACL Entry Protocol
source_address
Data type: Optional[String]
Source Address. Either Source Address, address object-group, any or source host are required.
source_address_group
Data type: Optional[String]
Source Address object-group. Either Source Address, address object-group, any or source host are required.
source_address_any
Data type: Optional[Boolean]
Source Address. Either Source Address, address object-group, any or source host are required.
source_address_host
Data type: Optional[String]
Source Address. Either Source Address, address object-group, any or source host are required.
source_address_wildcard_mask
Data type: Optional[String]
Source Address wildcard mask. Must be used with, and only used with, Source Address.
source_eq
Data type: Optional[Array[String]]
Match only packets on a given port number.
source_gt
Data type: Optional[String]
Match only packets with a greater port number.
source_lt
Data type: Optional[String]
Match only packets with a lower port number.
source_neq
Data type: Optional[String]
Match only packets not on a given port number.
source_portgroup
Data type: Optional[String]
Destination port object-group.
source_range
Data type: Optional[Array[String]]
Match only packets in the range of port numbers.
destination_address
Data type: Optional[String]
Destination Address. Either Destination Address, address object-group, any or destination host are required.
destination_address_group
Data type: Optional[String]
Destination Address object-group. Either Destination Address, address object-group, any or destination host are required.
destination_address_any
Data type: Optional[Boolean]
Destination Address. Either Destination Address, address object-group, any or destination host are required.
destination_address_host
Data type: Optional[String]
Destination Address. Either Destination Address, address object-group, any or destination host are required.
destination_address_wildcard_mask
Data type: Optional[String]
Destination Address wildcard mask. Must be used with, and only used with, Destination Address.
destination_eq
Data type: Optional[Array[String]]
Match only packets on a given port number.
destination_gt
Data type: Optional[String]
Match only packets with a greater port number.
destination_lt
Data type: Optional[String]
Match only packets with a lower port number.
destination_neq
Data type: Optional[String]
Match only packets not on a given port number.
destination_portgroup
Data type: Optional[String]
Destination port object-group.
destination_range
Data type: Optional[Array[String]]
Match only packets in the range of port numbers.
ack
Data type: Optional[Boolean]
Match on the ACK bit.
dscp
Data type: Optional[String]
Match packets with given dscp value.
fin
Data type: Optional[Boolean]
Match on the FIN bit.
fragments
Data type: Optional[Boolean]
Check non-initial fragments.
icmp_message_code
Data type: Optional[Integer]
ICMP message code.
icmp_message_type
Data type: Optional[Variant[String, Integer]]
ICMP message type.
igmp_message_type
Data type: Optional[Variant[String, Integer]]
IGMP message type.
log
Data type: Optional[Boolean]
Log matches against this entry. Either log or log_input can be used, but not both.
log_input
Data type: Optional[Boolean]
Log matches against this entry, including input interface. Either log or log_input can be used, but not both.
match_all
Data type: Optional[Array[String]]
Match if all specified flags are present.
match_any
Data type: Optional[Array[String]]
Match if any specified flags are present.
option
Data type: Optional[String]
Match packets with given IP Options value.
precedence
Data type: Optional[String]
Match packets with given precedence value.
psh
Data type: Optional[Boolean]
Match on the PSH bit.
reflect
Data type: Optional[String]
Create reflexive access list entry.
reflect_timeout
Data type: Optional[Integer]
Maximum time to live in seconds. Only to be used with reflect.
rst
Data type: Optional[Boolean]
Match on the RST bit.
syn
Data type: Optional[Boolean]
Match on the SYN bit.
time_range
Data type: Optional[String]
Specify a time-range.
tos
Data type: Optional[String]
Match packets with given TOS value.
urg
Data type: Optional[Boolean]
Match on the URG bit.
Parameters
The following parameters are available in the ios_acl
type.
access_list
namevar
Data type: String
Name of parent access list
entry
namevar
Data type: String
Name. Used as sequence number <1-2147483647>
access_list_type
namevar
Data type: Enum["standard","extended","reflexive","none"]
Type of access list - standard, extended, reflexive or no type
ios_acl_entry
Configure access lists entries. Deprecated, due to unreconcilable implementation issues. Use the ios_acl type instead.
Properties
The following properties are available in the ios_acl_entry
type.
ensure
Data type: Enum[present, absent]
Whether this access list entry should be present or absent on the target system.
Default value: present
access_list
Data type: String
Name of parent access list
entry
Data type: Integer
Name. Used as sequence number <1-2147483647>
dynamic
Data type: Optional[String]
Name of a Dynamic list
permission
Data type: Enum["permit", "deny", "evaluate"]
Specify packets to forward/reject, or evaluate an access list
evaluation_name
Data type: Optional[String]
Evaluate an access list
protocol
Data type: Optional[Variant[Enum["ahp","eigrp","esp","gre","icmp","igmp","ip","ipinip","nos","ospf","pcp","pim","tcp","udp"],Pattern[/\d+/]]]
*this data type contains a regex that may not be accurately reflected in generated documentation
The ACL Entry Protocol
Example:
protocol => 'tcp'
protocol => '8'
source_address
Data type: Optional[String]
Source Address. Either Source Address, address object-group, any or source host are required.
source_address_group
Data type: Optional[String]
Source Address object-group. Either Source Address, address object-group, any or source host are required.
source_address_any
Data type: Optional[Boolean]
Source Address. Either Source Address, address object-group, any or source host are required.
source_address_host
Data type: Optional[String]
Source Address. Either Source Address, address object-group, any or source host are required.
source_address_wildcard_mask
Data type: Optional[String]
Source Address wildcard mask. Must be used with, and only used with, Source Address.
source_eq
Data type: Optional[Array[String]]
Match only packets on a given port number.
source_gt
Data type: Optional[String]
Match only packets with a greater port number.
source_lt
Data type: Optional[String]
Match only packets with a lower port number.
source_neq
Data type: Optional[String]
Match only packets not on a given port number.
source_portgroup
Data type: Optional[String]
Destination port object-group.
source_range
Data type: Optional[Array[String]]
Match only packets in the range of port numbers.
destination_address
Data type: Optional[String]
Destination Address. Either Destination Address, address object-group, any or destination host are required.
destination_address_group
Data type: Optional[String]
Destination Address object-group. Either Destination Address, address object-group, any or destination host are required.
destination_address_any
Data type: Optional[Boolean]
Destination Address. Either Destination Address, address object-group, any or destination host are required.
destination_address_host
Data type: Optional[String]
Destination Address. Either Destination Address, address object-group, any or destination host are required.
destination_address_wildcard_mask
Data type: Optional[String]
Destination Address wildcard mask. Must be used with, and only used with, Destination Address.
destination_eq
Data type: Optional[Array[String]]
Match only packets on a given port number.
destination_gt
Data type: Optional[String]
Match only packets with a greater port number.
destination_lt
Data type: Optional[String]
Match only packets with a lower port number.
destination_neq
Data type: Optional[String]
Match only packets not on a given port number.
destination_portgroup
Data type: Optional[String]
Destination port object-group.
destination_range
Data type: Optional[Array[String]]
Match only packets in the range of port numbers.
ack
Data type: Optional[Boolean]
Match on the ACK bit.
dscp
Data type: Optional[String]
Match packets with given dscp value.
fin
Data type: Optional[Boolean]
Match on the FIN bit.
fragments
Data type: Optional[Boolean]
Check non-initial fragments.
icmp_message_code
Data type: Optional[Integer]
ICMP message code.
icmp_message_type
Data type: Optional[Variant[String, Integer]]
ICMP message type.
igmp_message_type
Data type: Optional[Variant[String, Integer]]
IGMP message type.
log
Data type: Optional[Boolean]
Log matches against this entry. Either log or log_input can be used, but not both.
log_input
Data type: Optional[Boolean]
Log matches against this entry, including input interface. Either log or log_input can be used, but not both.
match_all
Data type: Optional[Array[String]]
Match if all specified flags are present.
match_any
Data type: Optional[Array[String]]
Match if any specified flags are present.
option
Data type: Optional[String]
Match packets with given IP Options value.
precedence
Data type: Optional[String]
Match packets with given precedence value.
psh
Data type: Optional[Boolean]
Match on the PSH bit.
reflect
Data type: Optional[String]
Create reflexive access list entry.
reflect_timeout
Data type: Optional[Integer]
Maximum time to live in seconds. Only to be used with reflect.
rst
Data type: Optional[Boolean]
Match on the RST bit.
syn
Data type: Optional[Boolean]
Match on the SYN bit.
time_range
Data type: Optional[String]
Specify a time-range.
tos
Data type: Optional[String]
Match packets with given TOS value.
urg
Data type: Optional[Boolean]
Match on the URG bit.
Parameters
The following parameters are available in the ios_acl_entry
type.
name
namevar
Data type: String
Name. Made up of access_list and the entry with a space seperator. eg. "list42 10" is from access_list list42 and entry 10.
ios_additional_syslog_settings
Configure global syslog settings
Properties
The following properties are available in the ios_additional_syslog_settings
type.
trap
Data type: Optional[Variant[Integer[0,7], Enum["unset"]]]
Set the syslog server logging level, can be set to a severity level of [0-7] or 'unset'.
Examples:
trap => 3,
trap => 'unset',
origin_id
Data type: Optional[Variant[Enum['hostname', 'ip', 'ipv6', unset], Tuple[Enum['string'], String]]]
Sets an origin-id to be added to all syslog messages, can be set to a default value taken from the switch itself or a designated one word string.
Examples:
origin_id => 'ipv6',
origin_id => ['string', 'Main'],
origin_id => 'unset',
Parameters
The following parameters are available in the ios_additional_syslog_settings
type.
name
namevar
Data type: String
Name, generally "default", not used to manage the resource
Default value: default
ios_cef
Implementation and Management of CEF settings
Properties
The following properties are available in the ios_cef
type.
distributed
Data type: Optional[Boolean]
Distributed Cisco Express Forwarding
optimize_resolution
Data type: Optional[Boolean]
Trigger layer 2 address resolution directly from CEF
load_sharing
Data type: Optional[Variant[Enum['original', 'tunnel', 'universal'], Tuple[Enum['tunnel', 'universal'], String], Tuple[Enum['include-ports'], Enum['destination', 'source']], Tuple[Enum['include-ports'], Enum['destination', 'source'], String]]]
Per-destination load sharing algorithm selection
Parameters
The following parameters are available in the ios_cef
type.
name
namevar
Data type: String
Resource name, not used to manage the device
Default value: default
ios_config
Execute an arbitary configuration against the cisco_ios device with or without a check for idempotency
Properties
The following properties are available in the ios_config
type.
command
Data type: String
The ios command to run
Parameters
The following parameters are available in the ios_config
type.
name
namevar
Data type: String
The friendly name for this ios command
command_mode
Data type: Optional[Enum["CONF_T"]]
The command line mode to be in, when executing the command
Default value: CONF_T
idempotent_regex
Data type: Optional[String]
Expected string, when running a regex against the 'show running-config'
idempotent_regex_options
Data type: Optional[Array[Enum["ignorecase","extended","multiline","fixedencoding","noencoding"]]]
Array of one or more options which control how the pattern can match.
negate_idempotent_regex
Data type: Optional[Boolean]
Negate the regex used with idempotent_regex
ios_interface
Manage layer 3 configuration on a per Instance basis.
Properties
The following properties are available in the ios_interface
type.
mac_notification_added
Data type: Optional[Boolean]
Whether to enable Mac Address added notification for this port.
mac_notification_removed
Data type: Optional[Boolean]
Whether to enable Mac Address removed notification for this port.
link_status_duplicates
Data type: Optional[Boolean]
Whether to permit duplicate SNMP LINKUP and LINKDOWN traps.
logging_event
Data type: Optional[Variant[Enum["unset"], Array[Enum["bundle-status","nfas-status","spanning-tree","status","subif-link-status","trunk-status","power-inline-status"]]]]
Whether or not to log certain event messages. Any event log not specifically indicated will be disabled.
Example:
logging_event => ['spanning-tree','subif-link-status'],
logging_event => 'unset',
logging_event_link_status
Data type: Optional[Boolean]
Whether to log UPDOWN and CHANGE event messages.
ip_dhcp_snooping_trust
Data type: Optional[Boolean]
DHCP Snooping trust config.
ip_dhcp_snooping_limit
Data type: Optional[Variant[Boolean[false], Integer[1, 2048]]]
DHCP snooping rate limit.
Example:
ip_dhcp_snooping_limit => 1500,
ip_dhcp_snooping_limit => false,
flowcontrol_receive
Data type: Optional[Enum["desired","on","off"]]
Flow control (receive) [desired|on|off]
Example:
flowcontrol_receive => 'desired',
vrf
Data type: Optional[String]
VRF config
route_cache_cef
Data type: Optional[Boolean]
Enable/Disable Cisco Express Forwarding
Parameters
The following parameters are available in the ios_interface
type.
name
namevar
Data type: String
The switch interface name, e.g. "Ethernet1"
ios_ip
Manages settings related to the IP
Properties
The following properties are available in the ios_ip
type.
routing
Data type: Optional[Boolean]
Whether to Enable IP routing
Parameters
The following parameters are available in the ios_ip
type.
name
namevar
Data type: String
Resource name, not used to manage the device
Default value: default
ios_network_dns
Configure DNS settings for network devices
Properties
The following properties are available in the ios_network_dns
type.
ensure
Data type: Enum[present, absent]
Whether the network dns should be present or absent on the target system.
Default value: present
domain
Data type: Optional[String]
The default domain name to append to the device hostname
hostname
Data type: Optional[String]
The host name of the device
search
Data type: Optional[Array[String]]
Array of DNS suffixes to search for FQDN entries
servers
Data type: Optional[Array[String]]
Array of DNS servers to use for name resolution
ip_domain_lookup
Data type: Optional[Boolean]
Sets whether the Domain Name Server (DNS) lookup feature should be enabled
Parameters
The following parameters are available in the ios_network_dns
type.
name
namevar
Data type: String
Name, generally "settings", not used to manage the resource
Default value: settings
ios_network_trunk
Ethernet logical (switch-port) interface. Configures VLAN trunking.
Properties
The following properties are available in the ios_network_trunk
type.
ensure
Data type: Enum[present, absent]
Whether the network_trunk should be present or absent on the target system.
Default value: present
encapsulation
Data type: Optional[Enum["dot1q","isl","negotiate","none"]]
The vlan-tagging encapsulation protocol, usually dot1q
mode
Data type: Optional[Enum["access","trunk","dynamic_auto","dynamic_desirable"]]
The L2 interface mode, enables or disables trunking
untagged_vlan
Data type: Optional[Integer[0, 4095]]
VLAN used for untagged VLAN traffic. a.k.a Native VLAN
tagged_vlans
Data type: Optional[Array[String]]
Array of VLAN names used for tagged packets
pruned_vlans
Data type: Optional[Array[String]]
Array of VLAN ID numbers used for VLAN pruning
access_vlan
Data type: Optional[Variant[Integer[0, 4095], Boolean[false]]]
The VLAN to set when the interface is in access mode. Setting it to false will revert it to the default value.
Examples:
access_vlan => 405
access_vlan => false
voice_vlan
Data type: Optional[Variant[Integer[0, 4095], Enum["dot1p", "none", "untagged"], Boolean[false]]]
Sets how voice traffic should be treated by the access port. Setting it to false will revert it to the default value.
Examples:
access_vlan => 221
access_vlan => 'dot1p'
access_vlan => 'false'
switchport_nonegotiate
Data type: Optional[Boolean]
When set, prevents the port from sending DTP (Dynamic Trunk Port) messages. Set automatically to true while in 'access mode' and cannot be set in 'dynamic_*' mode.
Examples:
access_vlan => true
See network_trunk
for other availible fields.
allowed_vlans
Data type: Optional[Variant[Enum["all", "none"], Tuple[Enum["add", "remove", "except"], String], String, Boolean[false]]]
Sets which VLANs the access port will use when trunking is enabled. Setting it to false will revert it to the default value.
Examples:
access_vlan => '101-202'
access_vlan => 'none'
access_vlan => ['except', '204-301']
Parameters
The following parameters are available in the ios_network_trunk
type.
name
namevar
Data type: String
The switch interface name, e.g. "Ethernet1"
ios_ntp_access_group
Specify NTP access group config
Properties
The following properties are available in the ios_ntp_access_group
type.
access_group_type
Data type: Enum["peer", "serve", "query-only", "serve-only"]
Defines the access group type
ipv6_access_group
Data type: Optional[Boolean]
Whether this access group makes use of ipv6
ensure
Data type: Enum[present, absent]
Whether this access group entry should be present or absent on the target system.
Default value: present
Parameters
The following parameters are available in the ios_ntp_access_group
type.
name
namevar
Data type: String
Configuration name, ip access list name
ios_ntp_config
Specify NTP config
Properties
The following properties are available in the ios_ntp_config
type.
authenticate
Data type: Optional[Boolean]
NTP authentication enabled [true|false]
source_interface
Data type: Optional[String]
The source interface for the NTP system
trusted_key
Data type: Optional[Array[Variant[Integer, String]]]
Array of global trusted-keys. Contents can be a String or Integers
update_calendar
Data type: Optional[Boolean]
Whether the update calendar option is enabled on the system
logging
Data type: Optional[Boolean]
Whether to enable NTP message logging
Parameters
The following parameters are available in the ios_ntp_config
type.
name
namevar
Data type: String
Config name, default to "default" as the NTP config is global rather than instance based
Default value: default
ios_radius_global
Configure IOS global RADIUS settings
Properties
The following properties are available in the ios_radius_global
type.
enable
Data type: Optional[Boolean]
Enable or disable RADIUS functionality [true|false]
attributes
Data type: Optional[Array[Tuple[Integer, String]]]
An array of [attribute number, attribute options] pairs,
NOTE: There are a huge number of attributes available across devices with varying configuration options. Some of these pose issues for idempotency.
This modules does not attempt to solve these issues and you should take care to review your settings.
Example:
[11, 'default direction inbound']
will set correctly, however the device will return[11, 'default direction in']
. You should prefer setting[11, 'default direction in']
Example:
[11, 'default direction outbound']
will set correctly, however the device will remove the setting from the config as this is a default. You should instead prefer not setting this option.
key
Data type: Optional[String]
Encryption key (plaintext or in hash form depending on key_format)
key_format
Data type: Optional[Integer]
Encryption key format [0-7]
retransmit_count
Data type: Optional[Variant[Integer, Enum["unset"]]]
How many times to retransmit or 'unset'
source_interface
Data type: Optional[Array[String]]
The source interface used for RADIUS packets (array of strings for multiple).
timeout
Data type: Optional[Variant[Integer, Enum["unset"]]]
Number of seconds before the timeout period ends or 'unset'
vrf
Data type: Optional[Array[String]]
The VRF associated with source_interface (array of strings for multiple).
Parameters
The following parameters are available in the ios_radius_global
type.
name
namevar
Data type: String
Resource name, not used to manage the device
Default value: default
ios_radius_server_group
Configure a RADIUS server group
Properties
The following properties are available in the ios_radius_server_group
type.
ensure
Data type: Enum[present, absent]
Whether radius_server_group should be present or absent on the target system.
Default value: present
servers
Data type: Optional[Array[String]]
Array of DNS suffixes to search for FQDN entries
private_servers
Data type: Optional[Array[String]]
Array of private DNS suffixes to search for FQDN entries
Parameters
The following parameters are available in the ios_radius_server_group
type.
name
namevar
Data type: String
The name of the RADIUS server group
ios_snmp_global
Configures Global snmp settings.
Properties
The following properties are available in the ios_snmp_global
type.
trap_source
Data type: Optional[Variant[String, Enum['unset']]]
Assigns an interface for the source address of all traps. Setting it to 'unset' will revert it to the default value.
Examples:
trap_source => 'GigabitEthernet0/3'
trap_source => 'unset'
system_shutdown
Data type: Optional[Boolean]
Enables use of the SNMP reload command.
contact
Data type: Optional[Variant[String, Enum['unset']]]
Sets text for the mib object sysContact. Setting it to 'unset' will revert it to the default value.
Examples:
contact => 'SNMP_TEST'
contact => 'unset'
manager
Data type: Optional[Boolean]
When set this value enables the SNMP manager.
manager_session_timeout
Data type: Optional[Variant[Integer, Enum['unset']]]
Modifies the SNMP manager timeout parameter.
Examples:
manager_session_timeout => 20
manager_session_timeout => unset
ifmib_ifindex_persist
Data type: Optional[Boolean]
Enables IF-MIB ifindex persistence.
Parameters
The following parameters are available in the ios_snmp_global
type.
name
namevar
Data type: String
ID of the snmp global config. Valid values are default.
Default value: default
ios_stp_global
Manages the Cisco Spanning-tree Global configuration resource.
Properties
The following properties are available in the ios_stp_global
type.
enable
Data type: Optional[Boolean[false]]
Disable STP functionality by specifying false.
bridge_assurance
Data type: Optional[Boolean]
Bridge Assurance on all network ports
extend_system_id
Data type: Optional[Boolean]
Extend system-id into priority portion of the bridge id (PVST & Rapid PVST only)
loopguard
Data type: Optional[Boolean]
Bridge Assurance on all network ports
mode
Data type: Optional[Enum["mst","pvst","rapid-pvst"]]
Operating Mode
mst_forward_time
Data type: Optional[Integer]
Forward delay for the spanning tree
mst_hello_time
Data type: Optional[Integer]
Hello interval for the spanning tree
mst_inst_vlan_map
Data type: Optional[Array[Tuple[Integer,String]]]
An array of [mst_inst, vlan_range] pairs.
mst_max_age
Data type: Optional[Integer[6,40]]
Max age interval for the spanning tree
mst_max_hops
Data type: Optional[Integer[1,255]]
Max hops value for the spanning tree
mst_name
Data type: Optional[String]
Configuration name.
mst_priority
Data type: Optional[Array[Tuple[String,Integer]]]
An array of [mst_inst_list, priority] pairs.
mst_revision
Data type: Optional[Integer]
Configuration revision number.
pathcost
Data type: Optional[Enum["long","short"]]
Method to calculate default port path cost
portfast
Data type: Optional[Array[Enum["default","bpduguard_default","bpdufilter_default"]]]
Spanning tree portfast options
uplinkfast
Data type: Optional[Boolean]
Enable UplinkFast Feature
uplinkfast_max_update_rate
Data type: Optional[Integer]
Maximum number of update packets per second
vlan_forward_time
Data type: Optional[Array[Tuple[String,Integer]]]
An array of [vlan_inst_list, forward_time] pairs.
vlan_hello_time
Data type: Optional[Array[Tuple[String,Integer]]]
An array of [vlan_inst_list, hello_time] pairs.
vlan_max_age
Data type: Optional[Array[Tuple[String,Integer]]]
An array of [vlan_inst_list, max_age] pairs.
vlan_priority
Data type: Optional[Array[Tuple[String,Integer]]]
An array of [vlan_inst_list, priority] pairs.
Parameters
The following parameters are available in the ios_stp_global
type.
name
namevar
Data type: String
ID of the stp global config. Valid values are default.
Default value: default
Tasks
cli_command
Execute CLI Command
Supports noop? false
Parameters
command
Data type: String[1]
CLI Command to execute
raw
Data type: Boolean
Whether to return the raw output or wrap it into JSON
config_save
Save running-config to startup-config
Supports noop? false
restore_startup
Copies the startup-config to the running-config
Supports noop? false
backup_config
Backs up the running config from a device to the specified location
Parameters
backup_location
Data type: String[1]
Location to save the running config to
raw
Data type: Boolean
Whether to return the raw output or wrap it into JSON
restore_config
Restores the configuration from a given backup location to the device
Parameters
backup_location
Data type: String[1]
Location of the config to restore to the device
raw
Data type: Boolean
Whether to return the raw output or wrap it into JSON
What are tasks?
Modules can contain tasks that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Tasks in this module release
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v2.0.0 (2021-07-05)
Changed
- (IAC-1603) Removing usage of resource_api module and puppet5 support #429 (pmcmaw)
- (IAC-1020) - removal of Inappropriate Terminology #426 (david22swan)
Added
- (FEAT) Add Bolt tasks to backup and restore Cisco device cfgs #427 (sanfrancrisko)
Fixed
- pdksync - (IAC-973) - Update travis/appveyor to run on new default branch
main
#419 (david22swan)
v1.3.0 (2020-08-06)
Added
v1.2.0 (2019-11-21)
Added
- (FM-8572) - Addition of
route\_cache\_cef
toios\_interface
#409 (david22swan) - (FM-8572) - Addition of type ios_cef #408 (david22swan)
- (FM-8572) - Addition of type ios_ip #404 (david22swan)
- (FM-8608) - Addition of attribute
directed\_request
totacacs\_global
#403 (david22swan) - (FM-8607) - logging attribute added to ios_ntp_config #402 (david22swan)
- (FM-8576) - Addition of support for
source\_interface
andvrf
totacacs\_server\_group
#401 (david22swan) - (FM-8501) Add vrf support to ios_interface #397 (maxiegit)
- (FM-8500) Add vrf provider #393 (maxiegit)
- Add vrf support to SNMP Notification Receiver #387 (maxiegit)
- (FM-8436) - Implementation of vrf for syslog_server #383 (david22swan)
Fixed
- (MODULES-10058) - ntp-server fix #407 (david22swan)
- (FM-8705) - Exclusions added for Cisco-3560 #406 (david22swan)
- (maint) Exclusion fixes #400 (maxiegit)
- (maint) Remove Mgm-vrf and add VRF ModeState #398 (maxiegit)
- (FM-8435) - Exclude a VRF from being set in tacacs_global #396 (david22swan)
- (maint) - Additional Fix for vrf type #395 (david22swan)
- (maint) - Fix for vrf type #394 (david22swan)
- (maint) Improve wording for known_hosts_file #390 (DavidS)
- (maint) - Fix for syslog_Server #389 (david22swan)
- (FM-8439) Fix vrf deletion error on 4948 #388 (maxiegit)
- (FM-8437) - tacacs idempotency fixes #384 (david22swan)
1.1.0 (2019-09-10)
Added
- Move References from README to REFERENCE.md #370 (maxiegit)
- (FM-7818) - Addition of attributes to banner type #368 (david22swan)
- (FM-8434) Added VRF support for NTP server #364 (maxiegit)
- (FM-7758) Add type ios_radius_server_group #360 (david22swan)
- (FM-7741) add XE support in ios_aaa_authentication #352 (Lavinia-Dan)
- (FM-8210) add xe functionality for ntp_config #350 (Lavinia-Dan)
- (FM-7760) add ios_interface #348 (david22swan)
- (FM-7740) Add XE support for ios_aaa_accounting #347 (DavidS)
- (FM-7760) Add ios_snmp_global type and provider #346 (david22swan)
- (FM-7764) - IOS Additional Syslog Settings created #344 (david22swan)
- (FM-7764) - Functionality added to Syslog Settings #343 (david22swan)
- (FM-7747) IOS Network DNS Created #341 (david22swan)
- (FM-8181) - Ios Network Trunk created #338 (david22swan)
- (FM-7757) Add IOS_radius_global type and provider #334 (willmeek)
- Add hands on lab #319 (davinhanlon)
Fixed
- (maint) - VRF Fix #379 (david22swan)
- (FM-8438) - Fix to make the attributes of syslog_settings
console
andmonitor
idempotent #378 (david22swan) - (FM-8434) ntp_server: fix idempotency issue with VRF #376 (maxiegit)
- (FM-7815) Merge functions of ios_access_list and ios_acl_entry #375 (da-ar)
- (FM-8441) - Remove code that removes additional spaces #374 (david22swan)
- (maint) return cli_command errors as JSON #373 (DavidS)
- Optimise ios_network_trunk performance #369 (maxiegit)
- (MODULES-9465) ios_radius_global: fix spurious whitespace in attributes returned from device #365 (david22swan)
- (maint) fixes for the final ios_snmp_global idempotency failures #362 (Thomas-Franklin)
- (FM-8310) idempotency fixes for ios stp global #357 (Thomas-Franklin)
- Fix documentation example device conf file #356 (seanmil)
- (FM-7764) Exclusion added for ios_additional_syslog_settings tests #351 (david22swan)
- (maint) Update the connection prompt to match on confirmation prompts #336 (willmeek)
- (FM-7222) Error out instead of attemping to delete default Cisco VLANs #245 (willmeek)
v1.0.0 (2019-06-14)
Added
- (FM-8099) Update README to reflect status of types for XE devices #330 (willmeek)
- (maint) Add 4948 exclusion to Radius Server #327 (willmeek)
- (FM-8083) fix up the POC cli task for generic command execution #316 (Thomas-Franklin)
- FM-7753 XE functionality for ntp_config #315 (Lavinia-Dan)
- (maint) Add a function to allow for backwards compatible credentials #314 (willmeek)
- (FM-7849) Acceptance test updates #313 (Lavinia-Dan)
- (FM-7746) Add additional fields to IOS STP Global #312 (willmeek)
- (FM-7750) - Network Trunk update to account for XE #310 (david22swan)
- (maint) acl and access conversion to match other providers #307 (Thomas-Franklin)
- (FM-7748) checking of support for network interface and xe #306 (Thomas-Franklin)
- (maint) adding the new devices to readme test matrix #304 (Thomas-Franklin)
- (maint) adding in an os family fact value for allowing xe exclusions #303 (Thomas-Franklin)
- (maint) Add an OS Family fact #295 (willmeek)
- (FM-7737) Add enable secret to test pre-requisite #293 (willmeek)
- (FM-7727) Update to use RSAPI Transports and adjust credential configuration to default keys #292 (da-ar)
- (FM-7653) implement a standardized install class #288 (tkishel)
- (FM-7653) implement a standardized install class #286 (tkishel)
- (FM-7138) Add support for Access Lists #235 (willmeek)
Fixed
- (maint) Fix for IOS STP Global test #324 (willmeek)
- (maint) Fix for TACACS Server acceptance test #323 (willmeek)
- (maint) Fix for TACACS Global test #322 (willmeek)
- (maint) SNMP Notification acceptance test fix #321 (willmeek)
- (maint) Fix for Network Trunk test #320 (willmeek)
- (maint) Fix for NTP Server test #318 (willmeek)
- (maint) Update Spec Helper Acceptance to reflect new transport schema #300 (willmeek)
- (maint) Unit tests - ACL entry types should be integers #299 (willmeek)
- make "des" working #298 (seppeel)
- (maint) Fix for the enable password regex #294 (willmeek)
- (maint) Fix acceptance tests with a dependency on vlan presence #291 (willmeek)
- (maint) Fix acceptance tests on fresh device config #290 (willmeek)
0.6.2 (2018-12-06)
Fixed
- (FM-7604) only use verify_host_key on versions of net-ssh which have it #282 (Thomas-Franklin)
0.6.1 (2018-11-26)
Fixed
0.6.0 (2018-11-22)
Added
- Refactor to RSAPI device specific providers #273 (da-ar)
- pdksync - pdksync_1.7.1-0-g810b982 #272 (david22swan)
Fixed
0.5.0 (2018-11-05)
Added
- (maint) switch the Device to url_or_config handling #267 (DavidS)
- (MODULES-8069) prepare for updates to netdev_stdlib #264 (DavidS)
- (FM-7481) Update install instructions and classes #263 (DavidS)
- (MODULES-8068) empty canonicalize method to netdev_stdlib providers #262 (Thomas-Franklin)
Fixed
- (maint) Change command used to obtain device vardir for SSL fingerpri… #269 (willmeek)
- (maint) resolving resource issue when applying manifest #268 (Thomas-Franklin)
0.4.0 (2018-10-02)
Added
- (maint) Allow support for Puppet 6 #252 (willmeek)
- (FM-7028) Add 'unset' function to banner. #250 (willmeek)
- (FM-7396) syslog_server match new style hosts #249 (shermdog)
- (maint) Prepare for Puppet 6 #247 (justinstoller)
Fixed
- CVE-2018-11752 (FM-7259) explicit configuration for SSH session logging #258 (willmeek)
- CVE-2018-11750 (FM-7215) Verify SSH known hosts if specified #257 (willmeek)
- (maint) Add missing coexistence check to banner #251 (shermdog)
- (FM-7283) Fix network_vlan acceptance test #248 (willmeek)
- (FM-6988) Add canonicalize function to network_interface #243 (willmeek)
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.3.0 (2018-08-06)
Added
- (FM-6952) Add types and providers for configuring AAA #232 (willmeek)
- (NETDEV-41) add facility to syslog_settings #228 (shermdog)
Fixed
- (NETDEV-38) removing banner type, use netdev #238 (tphoney)
- (FM-7184/FM-7197) Handle authentication errors and custom prompts #237 (shermdog)
- (FM-7224) Split command and connection timeout and make configurable #236 (shermdog)
- Update 'create issue' link in metadata.json #233 (davidmalloncares)
- (maint) Fix os fact and add hostname fact #227 (shermdog)
- (maint) Fix for NTP Auth key password test on 3750 #224 (willmeek)
- (maint) NTP Server acceptance test - allow symbol on yaml load #223 (willmeek)
- (FM-7064) Improve parsing of network interface speed values #214 (willmeek)
- (FM-7067) Send a newline on Config T mode to clear prompt #212 (willmeek)
0.2.0 (2018-06-15)
Added
Fixed
- (maint) Adding changelog generator #217 (tphoney)
- (FM-7074) Add list of tested IOS versions to OperatingSystem metadata #216 (willmeek)
- (FM-7069) hocon vs yaml #215 (tkishel)
- (FM-7068) run pdk update, fix blacksmith #213 (tphoney)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/netdev_stdlib (>= 0.19.0 < 1.0.0)