Actions
add_config
- main(attributes)[source]
Appends config section to startup-config.
This action is dual-supervisor compatible.
- url
path to source config/template
- substitution_mode
loose|strict (default: loose)
- variables
list of value substitutions
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: add_config attributes: url: files/templates/ma1.template variables: ipaddress: allocate('mgmt_subnet') name: "configure ma1" onstart: "Starting to configure ma1" onsuccess: "SUCCESS: ma1 configure" onfailure: "FAIL: IM provisioning@example.com for help"
configure_ansible_client
- main(attributes)[source]
Create a user and configure ssh keys (optional) to help deploy an Ansible client automatically. The user that is created will be persistant across reboots. For more details on user creation, see NODE documentation for create_user().
- user
username used by Ansible server to SSH into node
- passwd
cleartext password for user (default = ansible)
- group
group assigned to user above (default = eosadmin)
- root
directory assigned to user (default = /persist/local/)
- key
(optional) location of public ssh key to be written to authorized_keys
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: configure_ansible_client attributes: user: ansible passwd: ansible group: eosadmin root: /persist/local key: files/ssh/ansible_server_id_rsa.pub name: "Configure Ansible SSH Keys"
copy_file
- main(attributes)[source]
Copies file to the switch.
Copies file based on the values of ‘src_url’ and ‘dst_url’ attributes (‘dst_url’ should point to the destination folder).
This action is NOT dual-supervisor compatible.
- src_url
path to source file
- dst_url
path to destination
- mode
octal mode for destination path
- overwrite
replace|if-missing|backup (default: replace)
- ‘overwrite’ values:
‘replace’: the file is copied to the switch regardless of whether there is already a file with the same name at the destination;
‘if-missing’: the file is copied to the switch only if there is not already a file with the same name at the destination; if there is, then the action is a no-op;
‘backup’: the file is copied to the switch; if there is already another file at the destination, that file is renamed by appending the ‘.backup’ suffix
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: copy_file always_execute: true attributes: dst_url: /mnt/flash/ mode: 777 overwrite: if-missing src_url: files/automate/bgpautoinf.py name: "automate BGP peer interface config"
install_cli_plugin
- main(attributes)[source]
Installs CliPlugin.
This action is NOT dual-supervisor compatible.
- url
path to the CliPlugin
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: install_image always_execute: true attributes: url: files/my_cli_plugin name: "install cli plugin"
install_extension
- main(attributes)[source]
Installs extension.
If ‘force’ is set, then the dependency checks are overridden.
This action is NOT dual-supervisor compatible.
- url
path to source extension file
- force
ignore validation errors (default: false)
- always_execute
perform copy even if file exists
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: install_extension always_execute: true attributes: url: files/telemetry-1.0-1.rpm name: "Install Telemetry"
install_image
- main(attributes)[source]
Installs new software image.
If the current software image is the same as the ‘version’ attribute value, then this action is a no-op. Otherwise, the action will replace the existing software image.
For dual supervisor systems, the image on the active supervisor is used as reference.
This action is dual-supervisor compatible.
- url
path to source image file
- version
EOS version of new image file
- downgrade
Boolean - Should EOS images be downgraded to match? (Default: True)
- image_name_from_url
Boolean - Should EOS images be named from URL? (Default: False)
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: install_image always_execute: true attributes: url: files/images/vEOS.swi version: 4.13.5F downgrade: true name: "validate image" onstart: "Starting to install image" onsuccess: "SUCCESS: 4.13.5F installed" onfailure: "FAIL: IM nick@example.com for help"
replace_config
- main(attributes)[source]
Replaces /mnt/flash/startup-config with new file.
This action is dual-supervisor compatible.
- url
path to source config/template
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: replace_config attributes: url: files/configs/tor-startup-config name: "tor config"
run_bash_script
- main(attributes)[source]
Runs a script in EOS from bash.
This action is dual-supervisor compatible.
- url
path to source script/template
- variables
list of value substitutions (for a script template)
- Type:
optional
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: run_bash_script attributes: url: files/scripts/install_script variables: version: 1.2.3 name: 'install temp package'
run_cli_commands
- ensure_str(s, encoding='utf-8', errors='strict')[source]
Coerce s to str.
- For Python 2:
unicode -> encoded to str
str -> str
- For Python 3:
str -> str
bytes -> decoded to str
- main(attributes)[source]
Runs a set of EOS commands, starting from enable mode.
This action is dual-supervisor compatible.
- url
path to source command list/template
- variables
list of value substitutions (for a template)
- Type:
optional
- Special_attributes:
NODE: API object - see documentation for details
Example
- action: run_cli_commands attributes: url: files/templates/ma1.template variables: ipaddress: allocate('mgmt_subnet') name: 'configure ma1'
send_email
- main(attributes)[source]
Sends an email using an SMTP relay host
Generates an email from the bootstrap process and routes it through a smarthost. The parameters value expects a dictionary with the following values in order for this function to work properly.
{ 'smarthost': <hostname of smarthost>, 'sender': <from email address> 'receivers': [ <array of recipients to send email to> ], 'subject': <subject line of the message>, 'body': <the message body>, 'attachments': [ <array of files to attach> ], 'commands': [ <array of commands to run and attach> ] }
The required fields for this function are smarthost, sender, and receivers. All other fields are optional.
This action is dual-supervisor compatible.
- Parameters:
attributes (list) – list of attributes; use attributes.get(<ATTRIBUTE_NAME>) to read attribute values
node (internal) – attributes.get(‘NODE’) API: see documentation
smarthost – hostname of smarthos>,
sender – from email addres>
receivers – [ <array of recipients to send email to> ]
subject – subject line of the message
body – the message body
attachments – [ <array of files to attach> ]
commands – [ <array of commands to run and attach> ]
Example
- action: send_mail attributes: smarthost: smtp.example.com from: noreply@example.com subject: This is a test message from a switch in ZTP receivers: bob@exmple.com helen@example.com body: Please see the attached 'show version' commands: show version