Changelog¶
v25.1.27 (2025-01-27)¶
Features¶
nscli maint failover (pa): Added support for palo alto devices failover. (by Ramya Doddi) (NSCLI-434)nscli ssh: Added logic to identify device type as ‘ASA’ & then connect to the Public IP. (by Hrishikesh Kapse) (NSCLI-456) (NSCLI-456)nscli palo group: Added new plugin to allow users to get/create/update/delete HA ID data for PA devices (by Mithun Kumar Singh and DJ) (NSCLI-513)Homebrew formula: Update formula for NSCLI to install pip within venv during bottle build. (by DJ) (NSCLI-527)
nscli credentials,nscli tokens: Updated ‘set’ functionality to allow manual & automatic reset for core & identity tokens. (by Hrishikesh Kapse) (NSCLI-531)nscli maint palo base: Updating base templates for primary and secondary used on base config script with updated device group and template names. (by Jim Burhans) (NSCLI-533)nscli maint qc: Revision of ASA/f5/Generic QC sheets. New checks for LDAP SSL, cabling, password encryption, plus typo fixes (by Jason Wright) (NSCLI-534)nscli info: Repurposed & updated existing ‘-t’ functionality to show data in tabular format and added ‘-ip’, ‘-D’, ‘-sv’ options. (by Hrishikesh Kapse) (NSCLI-538)Updated certificate generation command for nscli maint palo_alto base_config (by Hrishikesh Kapse) (NSCLI-544)
nscli ssh: Added logic to identify device type as ‘Palo Alto Vsys’ & then connect to the DRAC IP of its parent device. (by Hrishikesh Kapse) (NSCLI-545) (NSCLI-545)
Bugfixes¶
nscli maint nd_auto_parallel: Fixes to handle errors in output (switch configuration, maintenance plan) due to interface mapping. (by DJ) (NSCLI-532)nscli maint minor (adc): Fixes to get correct build names from FACTS. (by Hrishikesh Kapse) (NSCLI-535)nscli maint parallel: Added ‘show interface status’ to the maintenance plan template for ‘Automated Maintenance Prep - Parallel Migration ASA’. (by Hrishikesh Kapse) (NSCLI-541)nscli maint minor PaloAlto: Updated ‘show session’ commands in automated maintenance plan for paloalto code upgrade. (by Hrishikesh Kapse) (NSCLI-547)nscli maint port-audit: Fixes to handle General NSCLI Exception: ‘Port-channel999’ by ignoring remote hostname if ‘leaf’. (by Hrishikesh Kapse) (NSCLI-548)
v24.6.13 (2024-06-13)¶
Features¶
Implemented identity token as primary authentication method, fallback to SSO cred. (by Ajay Kumar Yadav) (NSCLI-321)
nscli maint port-audit: Added flag -y to filter port-type. Added flag -l to display the logs for relevant ports. (by Gabriel Martin del Campo and DJ) (NSCLI-361)nscli maint qc f5: Added assisted QC plugin for f5 parallel migrations (by Ramya Doddi and DJ) (NSCLI-425)nscli maint parallel: More checks related to IDS, covering verifications of consistency-related aspects. (by Ajay Kumar Yadav) (NSCLI-441)nscli maint parallel: Extension to support for PA to PA maintenance. (by Ramya Doddi and DJ) (NSCLI-447)nscli maint updates: Updated core queue and category for ticket post plugin execution. (by DJ) (NSCLI-448)nscli maint cabling-audit (f5): Updates to record F5 interface details, link-state (during audit) and make better use of caching. (by Ramya Doddi and DJ) (NSCLI-451)nscli maint palo base_config: Added DNS IPs for new DCs. Added option -A to skip aggr/Mac-ID review for HA groups. (by DJ) (NSCLI-459)nscli maint cabling-audit: Reconfigure DRAC at the end and check parking VLAN status for all switches. (by Ajay Kumar Yadav) (NSCLI-463)nscli facts version: Updates for nscli facts version f5 to display hotfix information and luno volume ID if any. (by Ramya Doddi) (NSCLI-464)nscli maint minor (f5): Added source version check for v16 upgrade (by DJ) (NSCLI-466)nscli maint failover (f5): Plugin presents a summarized table of VLAN FAILSAFE settings, instead of a repeated prompt. (by Ramya Doddi) (NSCLI-469)nscli pa qcip: nscli provisioning info qcip for paloalto now made available as nscli pa qcip. (by Ramya Doddi) (NSCLI-471)nscli asa qcip: nscli asa qcip added support for Firepower chasis. (by Ramya Doddi) (NSCLI-472)nscli facts version (f5): Update to ensure version number displayed accounts for Hotfix, if any. (by DJ) (NSCLI-478)nscli maint asa + asa recovery: Update RSA key size for ASA v9.16+ from 1024 to 2048. (by Ajay Kumar Yadav) (NSCLI-480)nscli info: Simplify -t output format to remove device status and power on status. (by DJ) (NSCLI-485)nscli maint palo base_config: Changes to code upgrade steps to alternate download and installation. (by Ajay Kumar Yadav and DJ) (NSCLI-486)nscli maint palo base_config: Support for build 1400 series devices. (by Ajay Kumar Yadav) (NSCLI-493)nscli maint nd_auto_parallel: Adds option to specify timeout for Unipede API calls. Changes default timeout from 120 to 300 sec. (by DJ) (NSCLI-495)nscli maint minor (PA): Making Panorama sync step optional during upgrade. Adjustments to handle new hardware platform/software versions (by DJ) (NSCLI-509)nscli maint freeze: Added wiki link for reference. (by DJ) (NSCLI-510)nscli maint cabling-audit (asa): Update to parse ‘show interface’ output on 9.18 code. (by DJ) (NSCLI-520)nscli settings: Disable NLA validation by default. Added “proxy_regions” and “signal disable” setting. Added –details option for nscli settings. (by DJ) (NSCLI-521)nscli maint palo base_config: Updated to use new local admin credentials and fallback to old one, if needs be. (by DJ) (NSCLI-522)nscli zsp: Updated SSH login logic to classify Panorama devices hosted in Cloud to use managed cloud credential. (by DJ) (NSCLI-523)nscli maint palo base_config: Updates to config command if PA prompt has PA-RESET/PA-AUTOMATED (by Ajay Kumar Yadav) (NSCLI-524)nscli maint qc, prep, times: Review and update of ASA/f5/Generic QC sheets, overhaul of maint prep output, additions to maint times. (by Jason Wright) (NSMAINT-913)
Bugfixes¶
nscli maint palo base_config: Skipping ‘RPCV4-AGGR-TRANS’ zone for ‘ALLOW-CLIENTVPN’ security policy. (by Ajay Kumar Yadav) (NSCLI-435)nscli maint minor (pa): Minor updates in prep steps for “download” of dynamic updates and global-protect activation command (by DJ) (NSCLI-440)Converting SSO credentials to UTF-8 encoding. (by Ajay Kumar Yadav) (NSCLI-442)
nscli maint port_migrate2: Adjustment of switch interface commands (speed, duplex) for Arista Switches. (by Ajay Kumar Yadav) (NSCLI-445)nscli maint minor (adc): Added stepped upgrades for NetScalers and updated jinja templates with few HA related commands. (by Ajay Kumar Yadav) (NSCLI-446)nscli maint cabling-audit (f5): Resolved timeout for the secondary device connection. (by Ajay Kumar Yadav) (NSCLI-449)nscli maint migrate-ucs: Adjustments to better detect device missing from ACS (by DJ) (NSCLI-452)Minor cleanup / documentation updates for nscli luno_ng, nscli maint cyclade_asa_upgrade and nscli maint cabling-audit (by DJ) (NSCLI-453)
Update the installation steps for adding the keyring file to trusted.gpg.d for Ubuntu versions 2204 and newer. (by Ajay Kumar Yadav) (NSCLI-454)
nscli maint migrate-ucs: Bugfix to resolve false positive password failures due to command output contents (by DJ) (NSCLI-455)nscli maint minor (pa): Fixed incorrect lower version being suggested on rollback steps. (by DJ) (NSCLI-460)nscli maint cabling-audit (pa): Added timer for connection check with few modification to the logs. (by Ajay Kumar Yadav) (NSCLI-461)nscli maint palo base_config: Updates to URL filtering command template if target version > 10.2. (by Ajay Kumar Yadav) (NSCLI-462)nscli maint minor (f5): Fixed hotfix file name in download instructions. (by DJ) (NSCLI-466)nscli maint minor (f5): Fix to allow plugin to run if current code is >= 16.x. (by DJ) (NSCLI-473)nscli maint cyclade_asa_upgrade: Added ‘FRA’ datacenter to maint cyclade upgrade for asa. (by Ajay Kumar Yadav) (NSCLI-481)nscli maint palo base_config: Skipping ‘SDDC-HYP-INFRA’ zone for ‘ALLOW-CLIENTVPN’ security policy. (by Ajay Kumar Yadav) (NSCLI-490)nscli provisioning info qcip (pa): Fix for -u option for custom user not working as expected. (by DJ) (NSCLI-494)nscli maint minor (Firepower in platform mode ASA): Bugfix for crash because of ASA version string parsing (in Python packaging module). (by DJ) (NSCLI-499)nscli maint updates: Better error handling for DB reporting. (by Ajay Kumar Yadav) (NSCLI-500)nscli maint updates: Removing functionality of status reporting to DB due to server inconsistency. (by Ajay Kumar Yadav) (NSCLI-501)nscli facts: Updated FACTS API FQDN to new endpoint. (by Rich Gale) (NSCLI-507)nscli maint palo base_config: Fixes to handle/display new code and GlobalProtect version/files. (by DJ) (NSCLI-512)
v23.7.27 (2023-07-27)¶
Features¶
Update maintenance plans to include “maint sweep”, “ip routes” or “ip ping” for connectivity check using store/compare flags. (by Gabriel Martin del Campo) (NSCLI-283)
nscli ssh: Adds –dc parameter to allows proxying SSH connection via Balabit/gateway from region closest to chosen DC (instead of default region) without changing settings. (by Gabriel Martin del Campo) (NSCLI-327)nscli maint cyclade_asa_upgrade: Update to allow running against Firepower chassis running ASA code (by DJ) (NSCLI-426)nscli maint palo parse_asa: Added ‘-u’ flag to use custom login for devices which don’t work on TACACS. (by Ajay Kumar Yadav) (NSCLI-427)nscli maint nd_auto_parallel: Increased wait time to allow for sync to finish between HA firewalls, in case auto configuration (push) is used. (by DJ) (NSCLI-428)nscli ssh: Extending capability of ‘–active’ flag to support Palo Alto device. (by Ajay Kumar Yadav) (NSCLI-433)
Bugfixes¶
nscli maint palo base_config: Typo fix in the configuration template (by DJ) (NSCLI-410)nscli maint port-migrate: Fixes to make –no_drac and –vlan_mapping options work as expected. Update to show full neighbor changes (trunking) with relevant remarks (by DJ) (NSCLI-413)nscli f5 ssl_audit: Increased command timeout to handle larger configuration size. (by DJ) (NSCLI-414)nscli info: -t/td flags: Update IP Assignments table. (by Ramya Doddi) (NSCLI-416)nscli asa recovery: Fix for failing to find ‘password-encryption’ key from PasswordSafe, added ‘wr mem’ to prevent re-work (by DJ) (NSCLI-417)nscli maint minor (asa): Bugfix to prevent crash due to version parsing error for current ASA version (by DJ) (NSCLI-418)nscli maint migrate-ucs: Bugfixes to recover from bastion connection timeout, typo in command to set route (by DJ and Ajay Kumar Yadav) (NSCLI-419)Dockerfile update for Debian image path on mirror for builds on Jenkins (by DJ) (NSCLI-421)
nscli maint port-migrate: Bug-fix for failing to find migration ports on device (by DJ) (NSCLI-423)nscli maint minor (pa): Adjustments to account for FACTS ‘upgradepath’ behavior change (by DJ) (NSCLI-424)nscli maint cabling-audit: Use of correct Unipede API call to fetch vlan status. (by Ajay Kumar Yadav) (NSCLI-430)nscli maint palo base_config: Skipping ‘SDDC-REPLICA’ zone for ‘ALLOW-CLIENTVPN’ security policy. (by Ajay Kumar Yadav) (NSCLI-431)
v23.5.18 (2023-05-18)¶
Features¶
nscli info: Added -t and -td flags to display IP Assignments and Switch Port-Vlans Summary in table format . (by Ramya Doddi) (NSCLI-309)nscli maint minor (pa): Updated maintenance plan with ‘Device-Group and Template’ verification step. (by DJ) (NSCLI-319)nscli maint cabling-audit (pa): Generate hostname and configure on PA device using XML API. (by Ajay Kumar Yadav) (NSCLI-331)nscli maint port-migrate: Added ‘–exclude’ option to allow user to skip over chosen port-types for migration (by DJ) (NSCLI-351)nscli maint cabling-audit (pa): Verification of DRAC port along with its VLAN status. (by Ajay Kumar Yadav) (NSCLI-354)nscli maint palo base_config: Skip DRAC config print if already present on devices else generating. (by Ajay Kumar Yadav) (NSCLI-359)nscli maint palo base_config: Alerting user to skip AGGR_MAC check if taking longer time than usual. (by Ajay Kumar Yadav) (NSCLI-376)nscli ip: Added -s/–store and –m/compare options to facilitate before/after comparison (by Gabriel Martin del Campo) (NSCLI-381)nscli maint cabling-audit: Added drac port status validation for f5 and ping validation for both f5 and palo (by Ramya Doddi) (NSCLI-386)nscli info plugin: Added VM status if device is Virtual Machine. (by Ramya Doddi) (NSCLI-395)
Bugfixes¶
nscli maint qc asa: Bugfix for crash if current ASA version => 9.14(1) for newer device. (by Ajay Kumar Yadav) (NSCLI-282)Warning user regarding invalid SSO ID and suggesting to execute ‘nscli –doctor’ (by Ajay Kumar Yadav) (NSCLI-337)
Bugfixes for nscli ssh, nscli maint minor (PA) and nscli maint palo plugins. Resolves crash / failures for PAs that use Public DRAC IP. (by Ajay Kumar Yadav) (NSCLI-347)
nscli maint port-migrate: Bugfix to allow for single to multiple device port mapping with manual option. (by DJ) (NSCLI-351)nscli maint palo post_exp: Renaming service config from non-standard PORT-PROTOCOL config into standard format of PROTOCOL-PORT (by Ajay Kumar Yadav) (NSCLI-358)nscli maint palo base_config: Skipping ‘HYP-INFRA’ and ‘VMREPL-ZERTO’ zone for ‘ALLOW-CLIENTVPN’ security policy. (by Ajay Kumar Yadav) (NSCLI-374)correct activate code for virtual evnvironment: Bugfix for correct activate code for virtual environment. (by Gabriel Martin del Campo) (NSCLI-375)nscli maint asaandnscli maint nd_auto_parallel: Bugfix for crash because of ASA version string parsing (in Python packaging module). (by DJ) (NSCLI-378)nscli maint minor(f5): Bugfix for NDAPI related crashes on devices with custom credentials by adding F5iControl API as a fallback. (by Ajay Kumar Yadav) (NSCLI-379)nscli maint palo base_config: Resolved issue with obtaining correct credentials due to recent changes to PWSafe, to login PA device. (by Ajay Kumar Yadav) (NSCLI-383)nscli maint minor (asa): Bugfix for crash because of ASA version string parsing (in Python packaging module). (by DJ) (NSCLI-385)nscli maint minor adc: Fixed a critical bug that caused Standalone Netscaler devices to crash. (by Ajay Kumar Yadav) (NSCLI-387)nscli maint palo base_config: Updated Jinja templates to accommodate new credentials for Panorama, fix overflow issues, and add the missing ‘template’ command. (by Jum Burhans) (NSCLI-388)nscli maint palo base_config: Added a warning for GlobalProtect security rule verification. (by DJ) (NSCLI-389)nscli maint cabling-audit (PA): Bugfix for crash because of SFP interface details. (by DJ) (NSCLI-390)nscli maint cabling-audit: Prevent crash for DCX job status check in cache mode. (by Ajay Kumar Yadav) (NSCLI-391)nscli provisioning info qcip (PA): Bugfix for crash due to metric comparison causing inconsistent instances. (by Ajay Kumar Yadav) (NSCLI-392)nscli maint palo base_config: Added panw-torexit-ip-list to rules in palo_alto_kir_common jinja template. (by Gabriel Martin del Campo) (NSCLI-397)nscli ssh: Bugfix for -u option being ignored for ‘managed cloud’ device type. (by DJ) (NSCLI-398)nscli maint cabling-audit (asa): Display device number during prompt for cyclade information. (by Ajay Kumar Yadav) (NSCLI-401)nscli ssh: bugfix for ssh -g failing to connect to public DRAC (by Gabriel Martin del Campo) (NSCLI-402)
v23.2.28 (2023-02-28)¶
Features¶
nscli maint cabling-audit (asa): ASA cabling audit re-written with process and feature updates. (by DJ) (NSCLI-297)nscli maint minor: Added ‘-u’ flag to use custom login for devices which don’t work on TACACS. (by Ajay Kumar Yadav) (NSCLI-300)nscli maint palo base_config: new featuresAdded Virtual Palo Alto support
Improved speed for slow data-gathering functions like Aggr MAC gathering, ACS checks
Brought better visibility for interface config mapping errors for migrations
Added ‘–skip_code_upgrade’ option, so “minor” call can be manually skipped if needed.
- by DJ and Ajay Kumar Yadav (NSCLI-308)
Added exception handling to prompt for SSO password reset when plugins return an uncaught 401/405. Added a validate method to Token class that can be called in plugins to validate stored credentials Added
nscli --doctorto have NSCLI review known misconfigurations(future feature) and validate credentials (only checks SSO for now). (by James Wathen) (NSCLI-323)nscli maint palo base_config: Added step to configure “AUTH” code if PA running on 10.1.x or above (by Ajay Kumar Yadav) (NSCLI-328)For development setup: Updated Makefile to warn about active VENV and stop VENV creation if in use (by DJ and James Wathen) (NSCLI-330)
nscli maint cabling-audit: Added logic to put switch-port back (in DCX parking VLAN), in case a custom VLAN was used for audit. (by Ajay Kumar Yadav) (NSCLI-333)nscli maint cabling-audit: Added logic to detect active VLAN status for VLAN used during audit. (by Ajay Kumar Yadav) (NSCLI-334)[NSCLI-335]
nscli ssh: Adding flags to SSHAdded ‘-n’ flag to show connected network devices and connect it through SSH.
EM is considered as Source of Truth.
Added ‘-e’ flag to connect directly to edge device.
- by Ajay Kumar Yadav (NSCLI-335)
nscli provisioning configure nats: Added PaloAlto support for command (beta) (by DJ) (NSCLI-344)nscli provisioning info qcip: Added PaloAlto support for command (beta) (by DJ) (NSCLI-345)[NSCLI-348] Add RCG platform SKUs for rcg info plugin
Added SKUs for:
RackConnect RegionLink
RackConnect Global - Solution
RackConnect Global - Z-End Last Mile Required
Improved RCG SKU list with in-line comments of platform names
Upgraded to version 1.2
- by Peter Gilani (NSCLI-348)
nscli maint cabling-audit: Added status checks for device switch-port enable and disable DCX calls. (by Ajay Kumar Yadav) (NSCLI-353)nscli cloudflare: Update to support Cloud Support Rackers (with separate PasswordSafe project) (by DJ) (NSCLI-356)Updated “palo alto” connector class (maintenance shared code) to attempt connection re-establishment in case it times out. (by Ajay Kumar Yadav) (NSCLI-357)
Bugfixes¶
nscli maint cabling-audit (asa): Bugfix to increase timeout for parsing Firewall Serial number from Firepower/ASA. (by DJ) (NSCLI-276)nscli maint nd_auto_parallel: Bugfix for missing switch-port configuration due to interface names matching. (by DJ) (NSCLI-298)nscli maint palo parse_asa: Bugfix to prevent crash if NATs are missing in source ASA configuration (by DJ) (NSCLI-307)Updated release documentation and improved homebrew steps. (by James Wathen) (NSCLI-315)
nscli maint palo base_config: Bugfix to prevent crash for single PA migrations (by DJ) (NSCLI-318)Fixed ssh failures with –debug due to logs in newer OpenSSH versions (by James Wathen) (NSCLI-320)
nscli maint palo post_exp: Bugfix to prevent crash if security rule is missing a tag (by DJ) (NSCLI-325)Increased Finder timeout and added logic to prevent crashes based on user location/latency. (by James Wathen) (NSCLI-326)
nscli maint palo base_config: Changes done on jinja templates for hip profiles and replaced it with “source” and “destination” (by Glory Mead) (NSCLI-332)Fixed dev script for sending emails to users running old versions of NSCLI. (by James Wathen) (NSCLI-336)
nscli maint minor (pa, adc): Typo fix (‘upgarde’ to upgrade) in a couple of maintenance templates (by Glory Mead) (NSCLI-343)nscli maint cabling-audit (pa): Bugfix to prevent crash due to not being able to delete default zones (by DJ) (NSCLI-349)nscli maint cabling-audit: Removed ‘Received Contract’ from existing status check function to alert user (by Ajay Kumar Yadav) (NSCLI-352)nscli cloudflare: Bugfix for “add members” function to work with -a option (when only Cloudflare Account ID is specified) (by DJ) (NSCLI-356)nscli maint palo parse_asa: Bugfix for object name replacement missed in ACLs (by DJ) (NSCLI-363)Changed use of NetworkDefence@rackspace.com to GTS-Network-Defense@rackspace.com (by Ramya Doddi) (NSCLI-364)
Bugfix for build error because of dockerfile/jenkinsfile failing to directly modify /etc/hosts (by DJ) (NSCLI-365)
v22.11.2 (2022-11-02)¶
Features¶
nscli maint cabling-audit: Added support for Palo Alto FWs for cabling audit (by DJ) (NSCLI-243)nscli maint minor (palo): Updates to include fetching GP version pulled from FACTS, CLI commands for failover and some formatting fixes (by DJ) (NSCLI-262)nscli maint palo parse_asa: Added warnings in modified config if ‘PUB’ groups (new groups added to map public IPs) are empty (by DJ) (NSCLI-264)nscli maint palo base_config: Updates to commands in Zerto configuration template (by DJ) (NSCLI-269)nscli maint palo base_config: Zerto configuration was moved to separate output file. (by DJ) (NSCLI-270)maint sweep: Default fallback to “ip block” scan, if NATs cannot be found. New ‘blocks_only’ option added. (by Ajay Kumar Yadav) (NSCLI-275)nscli maint palo base_configandnscli maint minor (pa)updatesChanges to show actual/specific code update steps per device, rather than generic template
palo_connector.py - minor change to retry connection (for API login)
nscli maint palo base_config: Changes to show GlobalProtect version per FACTS, rather than placeholder variables (by DJ) (NSCLI-278)nscli runner: New Plugin to allow periodic command execution against Network devices (by Ajay Kumar Yadav) (NSCLI-284)nscli maint minor (pa): Update to validation steps for Panorama sync (by DJ) (NSCLI-285)nscli maint palo base_config: Added new DCs (SIN3, SJC3) for Zerto configuration (by DJ) (NSCLI-289)nscli __main__.py: Option for disabling Newrelic and Appstats reporting of NSCLI usage (by Ajay Kumar Yadav) (NSCLI-291)nscli maint palo base_config: PA device(s) EM validation and separate configuration file for GP and system routeAdded functionality to check if PA device(s) exist in Environment manager
Separate file for Global Protect and System route related configuration
- (by Ajay Kumar Yadav) (NSCLI-293)
Update release process with pyproject.toml and PDM (by James Wathen) (NSCLI-295)
nscli maint cabling-audit: Added support to use staging endpoint via NSCLI settings and minor updates for Voyage (bulk ARIC task execution) (by Philip Eatherington) (NSCLI-311)
Bugfixes¶
Improved MAC homebrew build process to utilize .whl packages whenever possible. (by James Wathen) (NSCLI-259)
nscli maint nd_auto_parallel: Fixes for ASA HTTPS connection failures, missing KIR VLAN changes (by DJ) (NSCLI-261)nscli maint palo base_config: Updating jinja template for initial setup for better flow and to match current standards (by Jim Burhans) (NSCLI-263)nscli maint palo parse_asa: Bugfixes for ACL 101 ‘PUB’ IP / group replacements failures and missing PA NATs for auto NATs with objects for destination (by DJ) (NSCLI-264)nscli maint palo base_config: Bugfixes to prevent crash if IP is tied to the FW in EM without VLAN (by DJ) (NSCLI-267)nscli maint parallel: Template updates for IDS steps because of changes in AlertLogic portal (by Alan Lakey-White and DJ) (NSCLI-268)nscli maint port-audit: Bugfix for incorrect rcv2 port + SKU check warnings for standby FW/LB (by DJ) (NSCLI-271)Modified Makefile to create a symbolic link for compatibility with changed importlib.distribution command. (by David Patino) (NSCLI-273)
maint paralleland shared code (SharedMaint.get_data_switches()) bugfixesAdded retry logic for SharedMaint.get_data_switches() for timeout handling
Bugfix for get_device_interfaces() in ‘maint parallel’ to prevent loop on input
maint sweep: Updates for Palo Alto, SRX platform identification. (by Ajay Kumar Yadav) (NSCLI-275)nscli maint palo base_config: Fix for missing DC for DNS lookup (by DJ) (NSCLI-286)Improve New Relic logging of Linux/WSL OS version. (by James Wathen) (NSCLI-287)
maint switch: Improved Error HandlingAdded logic to validate if response from DCX API returns empty string for queried device
Educating user to provide valid device number
- (by Ajay Kumar Yadav) (NSCLI-290)
version.py: Changed timeout value of GET Request for Artifacts to 1.0 which resolved nscli upgrade failed check (by Ajay Kumar Yadav) (NSCLI-296)nscli maint cabling-audit: Updates / fixes for PA for cabling audit post SME testingAdded granular caching
Added ‘commit’ config , default config cleanup’ at start (if needed), and ‘load previous config’ at the end
Error handling, fallback for SDK interface change commands
Fixed logic for checking for unsaved PA config
Improved NewRelic reporting with full names of users. (by James Wathen) (NSCLI-303)
settings.ini data now has capitalization respected when accessed. (by James Wathen) (NSCLI-304)
No longer prompts user for email, will gather data from FinderAPI. (by James Wathen) (NSCLI-305)
Changed use of GTSNetSecMaint@rackspace.com to nscli@rackspace.com (by James Wathen) (NSCLI-310)
v22.7.13 (2022-07-13)¶
Features¶
nscli maint palo base_config: Updates to include base configuration like KIR (base / interfaces / NATs / Global Protect / AD etc) (by Roy Papageorge and DJ) (NSCLI-228)nscli maint palo base_config: Added security policy rule rename logic from SME scripts (by Roy Papageorge and DJ) (NSCLI-230)maint palo parse_asa: Added logic to replace service name with port numbers (by DJ) (NSCLI-232)maint palo parse_asa: Added offline mode, duplicate object cleanup (by DJ) (NSCLI-236)maint palo post_exp: Updates to map new PEER ID name for crypto profiles. Code refactoring. (by DJ) (NSCLI-239)maint minor: Added support for PaloAlto FWs for code upgrade maintenance prep (based on templates from PA SMEs) (by DJ) (NSCLI-244)nscli facts version: Update to show GlobalProtect files for ‘nscli facts version paloalto’ (by DJ) (NSCLI-255)nscli maint palo: miscellaneous updatesSeparate cache location for each “maint palo” sub-script
Formatting / typo fixes in command templates
Changes to allow use of REST API via PaloConnector class
- maint palo base_config:
Switch-port VLAN mapping logic updated for new builds (vs migration)
Added logic for route commands for non-connected networks
- maint palo parse_asa:
Added warning if backup / secondary VPN peer is present
Bugfixes¶
Updated shared plugin ‘CertProcessor’ to handle missing certificate data (by DJ) (NSCLI-229)
Remove “NetSec Maintenance Team” references where applicable (by DJ) (NSCLI-231)
Fix version checking. (by James Wathen) (NSCLI-237)
Fix blowfish deprecation warning. (by James Wathen) (NSCLI-246)
Fixed sso password not being used when ssh key is not set in identity. (by James Wathen) (NSCLI-247)
Stops email prompt on nscli reset. (by James Wathen) (NSCLI-250)
maint nd_auto_parallel: Added –rcg option, so “cabling audit” module calls do not fail (by DJ) (NSCLI-251)maint freeze: Updated device identification logic and changes to skip HA checks for non ASA devices (by DJ) (NSCLI-253)nscli maint palo: miscellaneous bug-fixesFormatting / typo fixes in command templates
- maint palo base_config:
Fix for librack network type missing (port vlan mapping logic)
Bug-fix for missing default static route
Update to include commit, to save pending commits
- maint palo post_exp:
Bug-fix for tunnel ID replacement loop
nscli facts version: Bug-fix for ‘nscli facts version ftd’ crash (by DJ) (NSCLI-257)nscli switch: Updated cipher options in SSH string to fix login failures for some older switches (by DJ) (#2848)
Improved Documentation¶
Updated Releases documentation (by James Wathen) (NI-2523)
Updated documentation to provide RSA app PIN setup instructions. (by James Wathen) (NSCLI-252)
Updated Bugs in documentation to refer to NSCLI troublshooting wiki for M1 Mac installation (by James Wathen) (#2850)
Misc¶
NI-2575, NSCLI-248
v22.2.17 (2022-02-17)¶
Features¶
Synced plugins / code from NetSec maintenance NSCLI fork
nscli maint asa_to_afm:Convert ASA ACL’s to AFM (originally developed by Sergio Pereira and Justin Drew)
nscli maint cabling-audit:Updates to support cabling-audit for F5 LTMs (originally developed by Sergio Pereira and Justin Drew)
nscli maint cyclade_asa_upgrade:Plugin to assist with code upgrade of ASAs on cyclade (no public IP) (ASA and FP21 K series only)
nscli maint decomm:- Plugin to assist with cleanup of decommissioning automation tickets with failures.DOES NOT apply to general decomm. work
nscli maint ftd diff_asa:Diff FTD vs ASA config for migration prep / QC
nscli maint fw_convert:Convert firewall rules between ASA and F5 platforms (originally developed by Justin Drew)
nscli maint nd_auto_parallel:Plugin to streamlines parallel migration process (for ASA code only)
nscli maint minor: Initial draft template for ASA on Firepower 41K and 93K series (by DJ) (NSCLIMAINT-908)nscli maint palo post_exp: New plugin to assists with correcting configuration given by Expedition (ASA -> PA migration) (by DJ and Jim Burhans) (NSCLIMAINT-910)
Bugfixes¶
nscli ssh (palo): Bug fix for PA CLI login failures for subset of PAs (by DJ) (NSCLI-224)nscli maint palo base_config: Command template updated to use secondary device serial. Updates for user warnings and better readability. (by Jim Burhans) (NSCLIMAINT-891)nscli maint palo base_config: Bug fixes for single device migration, HA group verification steps (by Jim Burhans) (NSCLIMAINT-901)nscli maint cyclade_asa_upgrade: Fixed incorrect caching logic for ASA console output function (by DJ) (NSCLIMAINT-911)nscli cloudflare usage_report: Bug fix for the CSV report file formatting (by DJ) (#2824)nscli maint palo parse_asa: Bug fix for crash because of missing files in package (by DJ) (#2841)
v22.1.19 (2022-01-19)¶
Features¶
New DCX Bridge plugin
Purpose
Created to simplify Bridge Service APIS This plugin will list/create/delete/update dcx bridge/containers and configured vlans for RackConnect v3 (Type 1) or for Network Security (Type 2)
RackConnect Usage
Using the information from a RackConnect v3 configuration, especifically the vlan details such as in Cloud Account: rctestdfw03 (746453), you can find out the bridge id, bridge name, zone name, and vlan number. Using that information, you can lookup information about the bridge configuration.
For example:
nscli dcx_bridge list_container -n RC-746453-3378 -e[{container_type: 1,endpoints: [{configured_vlan_id: 333519,status: 1,type: 1,vlan_details: {aggr_names: [aggr171a-8.dfw3,aggr171b-8.dfw3],id: 333519,vlan: 1905,zone_name: DFW3:PublicNet:zone171-8}},{configured_vlan_id: 419251,status: 1,type: 1,vlan_details: {aggr_names: [aggr172a-11s.dfw3,aggr172b-11s.dfw3],id: 419251,vlan: 241,zone_name: DFW3:RackConnect-v3:AGGR172-11S}}],id: 4346,name: RC-746453-3378}]NetSec Usage
The anticipated usage for Network Security is for them to be able to create a bridge for a customer without having to send the ticket over to the DCX team. Network Security can lookup the vlan information and create the bridge.
For example:
A ticket like this one: 211006-01676 could be completed by using this plugin.
nscli dcx_bridge new_bridge DFW3:PublicNet:zone172-6 492 DFW3:PublicNet:zone172-1 2217 2 -n 5034104-211006-01676-migration
- Author:
Jorge Perez mailto:jorge.perez@rackspace.com (NSCLI-219)
nscli asa customer_config: New plugin - extract customer ASA configuration (by DJ) (NSCLIMAINT-885)nscli maint parallel: Updates to handle ASA to PaloAlto maintenances (Jim) (NSCLIMAINT-888)maint palo parse_asa: New plugin - ASA to PA migration assistant (by DJ and Jim) (NSCLIMAINT-890)maint palo base_config: New plugin to assist with basing PaloAlto FWs (by DJ and Jim) (NSCLIMAINT-891)New shared module to get command outputs from PaloAlto FWs via SSH or XML API (by Denny S and DJ) (NSCLIMAINT-894)
nscli maint cabling-audit (asa): Added “–rcg” flag to support RCG connection (by DJ) (NSCLIMAINT-900)nscli maint migrate-ucs: Add route for TORQ to ensure script re-runs don’t fail. (by DJ) (NSCLIMAINT-903)nscli cloudflare read_access: Command to get read-access to Managed Cloudflare accounts (by DJ) (#2820)nscli cloudflare usage_report: Get report on parameters that affect Cloudflare billing for given period (by DJ) (#2824)
Bugfixes¶
nscli maint minor (asa): Updated maintenance execution time for HA case to 2 hours (by DJ) (NSCLIMAINT-868)nscli maint prep and f5 minor: Updates to generic prep and F5 minor show commands, contributed by Edwin Adan (by Duane Herman) (NSCLIMAINT-896)nscli maint migrate-ucs: F5 LTM v12 -> v14 upgrade SNMP configuration fixes and other improvements (by DJ) (NSCLIMAINT-899)nscli projects: Fix for crash if EXP date is missing for “waiting scheduling” tickets (by DJ) (NSCLIMAINT-902)nscli maint parallel: Allow bypassing unexpected IDS core status during device checks (by DJ) (NSCLIMAINT-905)Fix to support title formatting change in Towncrier (by James Wathen) (#2808)
Fixes SSH connection options for compatibility with legacy hardware as SSH libraries update (by DJ) (#2815)
Removed pytest-runner package flagged in build safety check (by DJ) (#2826)
Misc¶
NSCLI-218
v21.9.29 (2021-09-29)¶
Features¶
nscli maint qc: Updates to lb decom and generic QC sheets to account for NAT rebuild maintenances (by Duane Herman) (NSCLIMAINT-887)nscli maint parallel: Updates to parallel to handle ASA to PaloAlto maintenances (by Jim Burhans) (NSCLIMAINT-888)nscli cloudflare logs: New command to check / enable HTTP traffic loggig. Also, zone provisioning now enables logging at Cloudflare (by DJ) (#2742)nscli cloudflare: Multi-account commands - ‘add_members’ (works on multiple accounts) and ‘list accounts’ (new command) and (by DJ) (#2768)nscli cloudflare zsp: Backup ZSP function to gain access to customer Cloudflare account(s) (by DJ) (#2796)nscli cloudflare: Misc changes to ‘nscli tokens’, ‘nscli reset’ and ‘nscli settings’ relevant to Cloudflare credentials (by DJ) (#2800)
Bugfixes¶
Modified SAML target from ADFS to Azure for identity auth. (by James Wathen) (NSCLI-217)
v21.8.5 (2021-08-05)¶
Features¶
nscli ip: Improved table appearance. Added ticket and ping count feature for ping. (by Alex Hayward) (NSCLI-216)nscli maint minor: Updates to SNMP remove/re-apply steps for active/active bug (FP Appliance HA) (by DJ Joshi) (NSCLIMAINT-865)nscli maint lb_convert: Added parsing and accounting for ‘port-policy’ based monitor (by DJ) (NSCLIMAINT-875)nscli maint prep: Update to prep template to account for FTD, PA and Netscaler. Colin Barton contributor (by Duane Herman) (NSCLIMAINT-876)nscli maint lb_convert: Added parsing and accounting for ‘use-alias-port-state’ (by DJ) (NSCLIMAINT-879)nscli maint jinja: Added wiki and rollback verbiage to all jinjas that contained maintenance templates (by Duane Herman)nscli maint prep: Added wiki and rollback verbiage to all plugins with maintenance templates (by Duane Herman)nscli maint prep: Changed static versioning to coded versioning on generic prep jinja (by Duane Herman)nscli maint prep: Updated generic prep template with new Citrix show commands (by Jim Burhans) (NSCLIMAINT-880)nscli ssh core-id: For FTD this will connect to FTD instead of FXOS (by Prabin) (#2763)
Bugfixes¶
nscli maint minor (asa): Updates to maintenance plan steps updated to remove/re-apply SNMP configuration for Firepower appliance mode ASAs going up to code 9.14(2) - 9.14(2)13 (by DJ) (NSCLIMAINT-865)nscli maint lb_convert: Bug-fixes for parsing higher ports (like 80XX), default port, “disable” keyword etc (by DJ) (NSCLIMAINT-879)nscli ssh: Added new SKUs for third party cloud login logic for SSH plugin (by DJ) (#2779)nscli zsp status: Fixed logic to prevent the crash because of timestamp parsing failure (by DJ) (#2781)nscli zsp unlock: Removed [ and ] from allowed special characters for ‘managed cloud password’ to prevent ‘zsp unlock’ process failure (by DJ) (#2782)Coverage dependency updated to resolve build lint (by James Wathen) (#2787)
Misc¶
Disables Sentry (by Pedro Ortale) (#2777)
v21.5.27 (2021-05-27)¶
Features¶
Now uses internal Identity authentication token when logging Newrelic data through the gatekeeper API (by Herb Jackson) (NSCLI-136)
nscli maint times: Refreshed output format. Added new timings for code upgrades. Added new a timing for generic maintenances (by Jason Wright) (NSCLIMAINT-811)nscli maint: Set up Net-bastion access via Balabits (Network Gateways) for maintenance plugins that make switch connections (by DJ) (NSCLIMAINT-844)nscli maint updates: Added new update for snat warning for adx to f5 conversions and modified qc sheets accordingly (by Duane Herman) (NSCLIMAINT-845)nscli maint minor (f5): Added ‘Registration key’ validation / update step before licence re-activation (by DJ) (NSCLIMAINT-848)nscli maint minor (f5): updates (by DJ)Allowed users to bypass API calls for code upload / install
Added link to Etherpad page for visibility on changes (NSCLIMAINT-849)
nscli maint asa: Inserts new timezone command, specific to FP vs ASA chassis, which sets timezone to UTC (by DJ) (NSCLIMAINT-851)nscli maint minor: New maintenance template for ASA on Firepower chassis for “active/active on reboot” bug (by DJ) (NSCLIMAINT-853)nscli maint minor: Added Jinja template for ASA minor maintenance steps (by DJ) (NSCLIMAINT-854)nscli maint lb_convert: Now errors with proper error message if ADX connection fails (by DJ) (NSCLIMAINT-857)nscli projects: Changes for STRAT team re-org to identify/omit RED TEAM (Premium T2) tickets. Code was refactored for other changes like ‘Strat Dallas / Castle’ no longer being a factor. (by DJ) (NSCLIMAINT-860)nscli maint (console SSH - shared module): Update for Netbastion access via Balabit (by DJ) (NSCLIMAINT-861)nscli maint cabling-audit (asa): Additional logic for interface map identification (by DJ) (NSCLIMAINT-862)nscli projects: Updates to isolate maintenance preps that are or about to expire (by DJ) (NSCLIMAINT-863)nscli maint minor (asa): Maintenance plan steps updated to remove/re-apply SNMP configuration for Firepower appliance mode ASAs going up to code 9.14(2) - 9.14(2)13 (by DJ) (NSCLIMAINT-865)nscli maint qc generic: Updates to generic QC sheet to account for saved configurations and rollback validation (by Duane Herman) (NSCLIMAINT-866)asa_shared.py: Updated to suppress banners from bastion servers (by DJ) (NSCLIMAINT-870)nscli maint asa: Updated to cache result of ASA configuration pull (by DJ) (NSCLIMAINT-871)nscli cloudflare: Updates to zone / account feature provisioning. Addition of code generated e-mail for Cloudlfare to provision necessary features (by DJ) (#2717)nscli imperva snmp_check $device(s): Check whether snmp is running on the WAFs registered to a given Imperva MX (by James Wathen) (#2721)nscli ssh: SSH update to use appropriate credentials for third party cloud FWs (by DJ) (#2732)nscli netbast: Updated host selection and implemented VIP as default (similar to cbasts) (by James Wathen) (#2737)nscli settings: Added -db option to force local config.db to update from FACTS (by James Wathen) (#2738)
Bugfixes¶
nscli maint qc asa: Fix for crash on missing template for HA -> Single migration (by DJ) (NSCLIMAINT-856)nscli maint asa: Bug-fix for interface speed/duplex misconfiguration for ‘failover’ nic for ASA -> Firepower and for ASA 5525/45 to Firepower 21k migration (by DJ) (NSCLIMAINT-859)nscli projects: Updates to handle tickets with “null” account number. (by DJ) (NSCLIMAINT-867)nscli maint parallel: Bug-fix for for parallel missing standby device’s IP in the ASA -> FTD prep (by Jim) (NSCLIMAINT-872)nscli maint lb_convert: Changes to prevent code crash due to port policy based monitor configuration and other minor changes. Some port policy based monitors are still NOT being processed and this will be fixed soon. (by DJ) (NSCLIMAINT-875)nscli ssh: Device identification logic updated for FTD device NOT backed by FMC (by Jim Burhans and DJ) (#2724)
v21.3.31 (2021-03-31)¶
Features¶
nscli maint qc: Updated jinja templates to include one-connect profile check and health check verification (by Duane Herman) (NSCLIMAINT-827)
nscli netbastandnscli switch: updated connecting through Balabit/GW instead of direct connection to netbast (by DJ)switch connections are proxied through ‘network’ support gateway
ssh_lib.py - class OpenSshBalabitNetBast was added to handle switches that could not be connected straight from Balabit GWs (#2702)
Bugfixes¶
nscli maint minor (adc): Bug-fix for local username being used for CBAST proxy connection (by Jason Wright, DJ) (NSCLIMAINT-846)Fixing issue with logging level globally set to WARNING inadvertently (by James Wathen) (#2700)
Fixes issue where nscli ip routes returns a maximum of 10 static routes. (by Alex Hayward) (#2706)
Improved Documentation¶
Updating email and other file slack references (by James Wathen) (#2698)
v21.3.23 (2021-03-23)¶
Features¶
maint qc: QC addition plus JINJA template tidy up (by Jason Wright) (NSCLIMAINT-773)
maint minor: updated for Citrix VPX/ADC code upgrades (by Colin and DJ) (NSCLIMAINT-782)- maint minor (asa) - changes in light of recent SKU changes (by DJ)
Script should now recognize new “Platform/Appliance” mode SKUs for FPs (NSCLIMAINT-783)
maint parallel: ASA to FTD migration prep template added (by Frank Allotta) (NSCLIMAINT-792)
maint parallel: Added custom caching support where possible (by DJ) (NSCLIMAINT-800)
maint updates: added scheduling templates (by Duane H) (NSCLIMAINT-802)
maint asa: Update to catch/fix DH default group behavior change post 9.13(1) (by DJ) (NSCLIMAINT-803)
maint lb_convert: LTM conversion - add OneConnect-32 profile for VIPs using L7 policies (by DJ) (NSCLIMAINT-807)
- ‘maint migrate-ucs’ was updated to account for newer platforms (by DJ)
Updated ‘up interface’ check with a manual prompt
Changed reference to hardcoded interfaces
Added waiting prompt for UCS to finish loading (NSCLIMAINT-809)
- ‘maint migrate-ucs’ updates for password changes on newer BigIP codes (by DJ)
Command was added to set ‘admin’ password
A user reminder was added for ‘root’ password change (NSCLIMAINT-813)
maint minor - asa code upgrade changes (by DJ)
DH group checks added for ASA code (ASA and Firepower chassis)
Minor changes to commands in fp_platform_mode.jinja2
Code refactoring, enabled caching for testing / troubleshooting (NSCLIMAINT-814)
- maint lb_convert: LTM conversion - add SNAT automap to mimic ADX behavior (by DJ)
A new option (–ltm_no_snat_automap) added to allow to use “SNAT POOL” configuration (NSCLIMAINT-819)
- maint lb_convert: user requested new features (by DJ)
ADC conversion - Option (–adc_server_name_update) to convert ‘server name’ to match wiki std. (- replaced by _)
Enforce 2 returns (rnrn) at the end of the “HTTP” monitor send string, else health-check fails (NSCLIMAINT-820)
- nscli projects: updates and improvements (by DJ)
Parallelized Core queries for speedup
Added caching to facilitate testing
Option for adding AM names to the output
Added retry logic for librack calls
Separated “slow” core calls under a separate command option (NSCLIMAINT-835)
nscli projects: Added ATAT tier lookup (by DJ) (NSCLIMAINT-836)
maint minor - user warnings and f5 upgrade change (by DJ)
Added user warning for “script update” review
- F5 minor code upgrade
Updated function checking for port preserve bug
Added warning about “delete volume” (NSCLIMAINT-840)
nscli cloudflare - new plugin for Cloudflare related tasks (by Edwin Adan and DJ) (#2671)
nscli ip: qc-ip like command for nscli (by Alex Hayward)
Runs ping, traceroute, public aggr and route checks.
‘nscli ip routes’ in particular is very useful for finding potentially free IPs in public blocks routed to a customer environment when you need to create new NATs or VIPs. (#2686)
nscli cloudflare - better input/error handling for zone creation (by DJ) (#2692)
Bugfixes¶
maint port-migrate: core-helper function crashes (by DJ) (NSCLIMAINT-707)
maint parallel: Device platform identification logic was updated to account for newer platforms like FTD (by DJ) (NSCLIMAINT-792)
maint parallel: Bugfix for wrong interface names in prep steps for ASA on FP chassis (by DJ) (NSCLIMAINT-801)
asa cabling-audit: check2 (public port missing) now errors gracefully with proper error message (by DJ) (NSCLIMAINT-816)
maint parallel: Added error message for code crash on wrong IDS status (by DJ) (NSCLIMAINT-817)
- maint lb_convert: user reported bug-fixes (by DJ)
ADC conversion - “add ipset”, “bind ipsec” and “add netProfile” commands should not be repeated
ADC conversion - Bug-fix for inconsistent name reference for PRIMARY / BACKUP vservers (NSCLIMAINT-820)
maint minor (F5): bug-fix for active volume being chosen for new code installation (by DJ) (NSCLIMAINT-824)
- maint shared module bug-fixes (by DJ)
- unipede_helper.py
fix for occasional crashes during mac info update attempt
- device_switch_data.py
copy_caller_data() did not work as expected
Added cache bypass logic for build_data()
Ensured self.devices was set as list
- debug_helpers.py
Updated CacheInfo.update_ref() logic to stop override (NSCLIMAINT-825)
nscli projects: Updated “account team” list based on GTS Wiki (by DJ) (NSCLIMAINT-833)
- maint port-migrate: minor bug-fixes and updates (by DJ)
- Bug-fix for source port-channel evaluation
Interface’s port channel name cannot be same as self (interface name)
Added warning for “unsafe change” review
Native vlan on access port is set to 1
Added a check so MTU is not set to 0 (NSCLIMAINT-838)
maint port-audit: Bug-fix for port-audit crash while evaluating ‘allowed_down’ (by DJ) (NSCLIMAINT-841)
nscli pt: fixed the exception when the plugin is run with -D (Detail) argument. (by Pedro Ortale) (#2661)
nscli f5 ssl_audit: Fixed the issue where certain profiles were missed from the report. (by Pedro Ortale) (#2666)
nscli type validation Fixed an issue where the user uses a short switch name without specifying the DC. (by Pedro Ortale) (#2672)
maint port-audit: bug-fix for interface status always showing down/down (by DJ) (#2676)
ftd import: bug-fix for failure to import nested network object-groups (by DJ) (#2679)
v21.1.14 (2021-01-14)¶
Bugfixes¶
maint port-migrate- bug-fix for VLAN DB check always showing VLAN change as UNSAFE (by DJ) (NSCLIMAINT-796)maint lb_convert- bug-fixs for ADX config parsing (by DJ)Parse CSW policy when protocol and port are not specified.
Parse ADX real port property, when extra spaces separate keywords - ‘ port ftp backup’ (NSCLIMAINT-797)
maint lb_convert- bug-fixs for cert/key name/extensions (by DJ)Wrong (truncated) CA cert name used in create cert command
Extension .crt/.key missing from file path in ‘install cert key’ command
Short certKey names for ADC platform missing in changes (NSCLIMAINT-798)
v20.12.16 (2020-12-16)¶
Features¶
maint qc adx_f5_qc- Added QC Templates for ADX to F5 migrations (by Duane H) (NSCLIMAINT-521)maint lb_convert- updates to parse/translate more configuration elements (by DJ) - Added ‘server port’ and ‘port-policy’ translation - Added ‘healthck’ translation (basic) - sticky-age translation (on VIP) - Xref data now shows ‘healthck’ and and ‘port-policy’ (NSCLIMAINT-778)
Bugfixes¶
maint lb_convert- bug-fix for priority-group output typo in LTM TMSH command output (by DJ) (NSCLIMAINT-760)maint lb_convert- minor bug fixes (by DJ) - Removed trailing .crt/.key from LTM output - Passed platform tag to CertProcessor from ADX parser to make naming adjustments for Citrix translation, if needed - ‘no-tlsv1.3’ option added for LTM output - Expanded service name to port number mapping to more ports - ‘Unknown config’ elements tied ONLY to ADX config (eliminated duplicates) (NSCLIMAINT-778)maint freezeverbiage update to match GTS standards (by Duane H) (NSCLIMAINT-786)maint lb_convert- added warning if ADX use SNAT ACL as it is ignored in translation (by DJ) (NSCLIMAINT-788)maint minor (F5)- NSCLIMAINT-790: bug-fix + minor changes (by DJ)Fix for upload verification commands failing on secondary LTM
User messaging / prompt updates (NSCLIMAINT-790)
maint lb_convert- Updated logic so monitors are created with appropriate protocol (by DJ) (NSCLIMAINT-791)
v20.11.17 (2020-11-17)¶
Features¶
maint minor (f5)updated to install code on new volume on v14+ (by DJ) (NSCLIMAINT-752)maint minor (f5)bug-fixes / updates (by DJ)- Plugin suggests code 14.1.2.8 if ‘port-preserve’ bug affects the device in question
Other minor user interaction/messaging updates (NSCLIMAINT-775)
maint minor (asa)updated to support FP chassis in appliance mode (by DJ) (NSCLIMAINT-776)maint minor (asa)updates (by DJ)Added caching calls to facilitate debugging / troubleshooting
Added -u option tp allow specifying custom username/password for console log-in.
Added -c option to allow providing console information at start
Updated interface ID logic, user feedback messages. (NSCLIMAINT-777)
Adds a defaults_from field and supporting code to the configuration database. This lets NSCLI support new data centers faster. (by Micah Culpepper) (#2637)
Bugfixes¶
switch runner(dependency for some maintenance functions) bug-fix (by DJ) - Adjusted ‘timeout’ values for switch connections to accommodate delays. (NSCLIMAINT-784)Fixes a race condition where the nscli settings file might be corrupted when multiple nscli processes run simultaneously (by Micah Culpepper) (#2633)
v20.10.20 (2020-10-20)¶
Bugfixes¶
Fixed a bug where users were being prompted for their keyring password on each invocation of NSCLI. (by Micah Culpepper) (#2620)
Adjusted remove command in
certificates prepdevice update templates (by DJ) (#2621)
v20.10.19 (2020-10-19)¶
Features¶
- Revamped
maint port-migrateplugin (by DJ) - Added shared functions from ‘maintenance fork’ needed for ‘port-migrate’
unipede_helper.py - Wrapper around UnipedeAPI, to get switch information via Unipede
- device_switch_data.py: Builds models of device-switch / switch-switch connections and VLAN associations by analyzing switch info
This helps in preparing switch / neighbor switch port / VLAN changes
safety_checks.py: Updated error handling for ‘switchports_down’ validations function
sw_feapi_reader.py: Wrapper around FireEngine Switch API, to get VLAN / interface information from switch
switch_runner.py: New function added to simplify getting live output from switch
user_input.py: Added function to get port mappings from user
dcx_helpers.py: Wrapper around DCXAPI client, to get environment manager data.
net_helpers.py: New functions added to manipulate VLAN lists
Relevant unit tests were added
Renamed existing ‘port-migrate’ as ‘port-migrate-old’
New code was added for ‘port-migrate’, along with a basic unit test with mocked/cached data (NSCLIMAINT-768)
- Revamped
Adds support for Python 3.9 and upgrades the homebrew package to use 3.9. (by Micah Culpepper) (#2603)
Bugfixes¶
- Bug-fixes / updates for maintenance plugins:
NSCLIMAINT-765: update for maint cabling-audit (ftd) (by DJ)
NSCLIMAINT-762: maint qc asa –ticket - minor changes (by DJ)
NSCLIMAINT-715: Prep / QC / Template updates for GTS Qality standards (by Duane) (NSCLIMAINT-770)
Adjusted connection timeout for switch_runner.py to avoid switch timeouts (by DJ) (NSCLIMAINT-771)
Updated the appstats logging client to use the new v3 stepladder API endpoint (by Micah Culpepper) (#2531)
Changing the Packet Tracer plugin in order to use Pandora’s new endpoint (by Pedro Ortale) (#2607)
Bug-fix for
certificates prepfailing to process tickets with only non-zip attachments (by DJ) (#2609)
v20.9.24 (2020-09-24)¶
Bugfixes¶
Bug-fixes for
maint minor / major (adx)(by DJ) - Updated older maintenance templates to have correct ‘maint updates’ commands (NSCLIMAINT-759)
v20.9.18 (2020-09-18)¶
Bugfixes¶
- Bug-fixes for
maint lb_convert(by DJ) Added missing Jinja template files in setup.cfg, so those are packaged properly
Fixed path on LTM template to have /var/tmp instead of /shared/tmp
Fixed wrong certificate location showing up in user instructions (NSCLIMAINT-749)
- Bug-fixes for
Cleaned up user instructions for
certificates prepplugin (by DJ) (NSCLIMAINT-750)- Updated
maint migrate-ucsfor 14 code changes (by DJ) Code failed to update root password because of changes v14+ and crashed. (NSCLIMAINT-758)
- Updated
v20.9.15 (2020-09-15)¶
Features¶
Added
nscli waf cert_listto gather a list of SSL Certificates installed to an Imperva WAF (by James Wathen) (NSCLI-181)Added
nscli imperva mx_updateto manually gather gateways registered to an mx and update the DB with those relationships. (by James Wathen) (NSCLI-197)Added
nscli ids cert_uploaderto upload SSL Certificates to Alert Logic accounts (by James Wathen) (NSCLI-198)Added
nscli ids cert_listto pull a list of SSL Certificates installed on an IDS/Alert Logic account (by James Wathen) (NSCLI-202)Added
nscli waf violationsto pull a list of violations matching criteria defined in command (by James Wathen) (NSCLI-203)Added
nscli maint lb_convertto assist ADX -> LTM / ADC conversion (by DJ) (NSCLIMAINT-729)Added
nscli certificates prepto facilitate batch certificate parsing (by DJ) (NSCLIMAINT-750)- Mac/Nscli integration
Mac is a tool to run arbitrary maintenances on netsec devices, this integration allows for netsec engineers to track and follow these maintenances (by John Dowling) (#2516)
Updated nscli info to include a –portcompare script that is easily readable for bulk comparisons (by Chris Hollar) (#2576)
Bugfixes¶
- maint cabling-audit and maint qc asa updated for librack2 changes (by DJ)
librack2 changes: ‘parts_by_sku_number’ replaced by ‘parts_by_sku_id’ (NSCLIMAINT-721)
- maint module updates / bug fixes (by DJ)
NSCLIMAINT-741: (+other JIRAs) maint minor (F5) updates - new checks, caching and Jinja template
NSCLIMAINT-744: maint migrate-ucs: Bug-fix for send_commands function - fixes UCS mismatch key issue
NSCLIMAINT-745: maint minor (fp) - Bug-fix for get_device_platform function
NSCLIMAINT-746: maint mino (adx) - Bug-fixes and improvements. Hard-coded FO NIC, FO VLAN lookup updated. (NSCLIMAINT-754)
maint asabug-fix to retry/fall-back on TORQ if connection to ASA crashes/times out (by DJ) (NSCLIMAINT-756)Updated the unit tests for the nscli trunking autotrunk script and modified it’s functions to be portable to other scripts (by Chris Hollar) (#2576)
This fixes a token issue within nscli virt rpcv-acl and some issues when unexpected devices like switches are present on the ticket (by James Finnegan) (#2579)
v20.8.3 (2020-08-03)¶
Features¶
Updated cabling audit for ASA on FP Appliance mode (by Sergio Pereira) (NSCLIMAINT-667)
- maint cabling-audit updates for FP appliance mode + bug-fixes (by DJ)
FP Platform name match bug fix
Allowed DRAC port to be in up status during audit
Added -c argument for console information
Fixed ungraceful exit on ASA check1
Added some caching code for future use (NSCLIMAINT-693)
- maint shared ticketupdates for ASA running on FP (by DJ)
Updates to read cabling audit for ASA running on Firepower chassis (NSCLIMAINT-698)
- maint qc asacatch ASA -> FTD migrations (by DJ)
qc asa will highlight / flag and STOP QC if it is a ASA -> FTD migration. (NSCLIMAINT-706)
- nscli maint minor (asa) updates (by DJ)
Updated to use FACTs instead of TORQ
Allow users to choose custom (non-FACTs) code version for ASAs
Some cleanup / typo fixes
Please report all issues to the NSCLI Developers via email <mailto:nscli@rackspace.com>` (NSCLIMAINT-713)
- nscli maint minor (f5) updates / bug fixes (by DJ)
migrate_ucs.py - ssh_f5.send_command updated to handle timeouts better
lb_minor.py - verify_sfp() updated to account for patched version / platform
lb_minor.py - print_maintenance_steps() updated to print bug warning if applicable
SNMP check updated to be more verbose
Added external / Non-API validation to the code upload / install steps
Manual change commands printing in case API fails
Cleanup / cosmetic updates for visibility
Please report all issues to the NSCLI Developers via email <mailto:nscli@rackspace.com>` (NSCLIMAINT-724)
- The nscli ssh plugin has been rewritten and updated to accomplish many tasks (by Joe Wesch)
- The plugin has certain default rules it will now follow
- All devices will default to use DRAC if it exists and public otherwise
You can override this functionality with the
-p, --publicargument
- All unknown device types will attempt to connect automatically (
-a, --attemptsshhas been deprecated) with the following defaults Proxy through balabit
Uses DRAC if it exists, otherwise public
Uses TACACS credentials
GUI (
--gui) opens a connection to TCP 443SCP (
--scp) will attempt to copy the file to the root folder
- All unknown device types will attempt to connect automatically (
Arguments are included to override many default behaviors
Many new device types have been properly identified and have been tested to work correctly
WAF and RSA no longer need to specified with arguments and will be automatically detected
- Added the ability to proxy your SSH connection through the cbast with
--proxy Certain device types that have higher (balabit incompatible) SSH cipher settings will default to this behavior
- Added the ability to proxy your SSH connection through the cbast with
Cloud network device (Vyatta, Fortinet) functionality has been added by using the UUID or IP of the device
If you need to access the original
sshplugin, it has been moved toold_sshfor future deprecationPlease report all issues to the NSCLI devs in the #nscli slack channel or via email (#1490)
Bugfixes¶
- Parallel migrations bug-fix for IDS check (by DJ)
Added “online/complete” core status for IDS check which caused parallel to miss it and crash (NSCLIMAINT-664)
- maint qc asa bug-fix for AnyConnect SKU check (by Frank Allota)
Updated check to match all AnyConnect SKUs instead of hard-coded 5508-X AnyConnect SKU. (NSCLIMAINT-673)
- maint qc asa bug-fix + update for check_rapid_deployment (by DJ)
Updated property lookup to match librack2 changes + minor changes (NSCLIMAINT-676)
- LB decommission QC sheet update: Check for non-VIP IPs (by Frank Allota)
Added check in QC sheet for NAT and ARP IPs out of front side segment that do not belong to load-balancer (NSCLIMAINT-730)
- ASA parallel migrations QC sheet update (by Frank Allota)
Added check for MACs in WAF VLANs in all ASA migration QC sheets (NSCLIMAINT-733)
- maint minor (adx) crahsing for some devices (by DJ)
Added error handling to prevent script crash (NSCLIMAINT-735)
Fixed a bug that was stopping the auto backup function when exiting devices (by Joe Wesch) (#2556)
nscli asa codeupload has been changed to pull the current standard code version from Facts (by Joe Wesch) (#2558)
Updated the autotrunking command to recognize certain nexus switches that don’t match the current regex. (by Chris Hollar) (#2562)
v20.7.17 (2020-07-17)¶
Features¶
Added logic to asa recovery and maint asa to deal with configs with password encryption enabled (by Joe Wesch) (NSASA-25)
feature added to ‘nscli maint sweep’ for non-edge devices (by Prabin Gautam) (NSCLI-2135)
feature for ‘nscli facts version’ to include support for FTD (by Prabin Gautam) (NSCLI-2517)
‘nscli ticket –addenv’ feature added for polling an environment and adding the devices to a ticket to be used by suppression manager (by Chris Hollar) (NSCLI-2548)
Added feature in maint_asa to migrate all certs (by Prabin Gautam) (NSCLIMAINT-635)
Categorize output by core status for nscli rcg info (by Prabin Gautam) (NSRCG-35)
Bugfixes¶
Bugfix for nscli maint sweep (by Prabin Gautam) (NSCLI-2544)
Fixed support for Ubuntu 20.04 Focal packaging (by Micah Culpepper) (#2492)
Fixes nscli ssh for MyDataPipe devices (by Joe Wesch) (#2529)
Fixes a bug in asa recovery / maint asa to move the access-group below tunnel interfaces (by Joe Wesch) (#2532)
nscli ssh now proxies all FMC GUI connections through the cbast instead of direct https (by Joe Wesch) (#2540)
Fixes our homebrew Forumla for Python 3.8 (by Micah Culpepper) (#2550)
Misc¶
#2094, #2536
v20.6.15 (2020-06-15)¶
Features¶
NSCLI now uses the ADFS session from web browser to generate internal Identity tokens. This is also configurable in settings.ini (“auth.identity” => “use_saml”). (by Herb Jackson) (NSCLI-171)
- New functions added to shared codebase for maintenance team plugins (by DJ)
- https://jira.rax.io/browse/NSCLIMAINT-679
Shared function added to get port list from user
- https://jira.rax.io/browse/NSCLIMAINT-681
Shared function for vlan mapping input updated
- https://jira.rax.io/browse/NSCLIMAINT-671
Allowed passing ‘switch info’ into ‘get_aggrs’ calls for speedup
- https://jira.rax.io/browse/NSCLIMAINT-688
maintenance.switchrunner.safety_checks refactoring / optimization + new functions added
- https://jira.rax.io/browse/NSCLIMAINT-689
get_data_switches migration port bug fix
Added caching code in maintenance.shared.shared.py for future use (NSCLIMAINT-690)
- nscli waf cert_uploader (by James Wathen)
Allows upload of SSL certificates to WAFs through NSCLI (#196)
Adding port 7444 to allow access to SDDC GUI (by James Finnegan) (#692)
Bugfixes¶
Fixed a bug in port-audit to skip parent/child check for FP-2110 (by Prabin Gautam) (NSCLIMAINT-677)
FTDClient (by Aaron Hackney) - bugfix where NTP servers are not configured during the config import process (NSFIRE-45)
Fixes balabit and bastion prompts in OpenSsh classes in ssh_lib (by Joe Wesch) (#2518)
v20.5.26 (2020-05-26)¶
Bugfixes¶
FTDClient (by Aaron Hackney) - bugfix where network is not accessible at the time of threat intelligence download (NSFIRE-44)
v20.5.20 (2020-05-20)¶
Features¶
- nscli maint parallel (by Sergio Pereira)
Added Support for FirePower appliance mode
Allows manual input for gathering new device interface information
Parallel migration prep Version bump to 4.0 (NSCLIMAINT-654)
- FTD Plugin (by Aaron Hackney)
only 1 import option now: import
can re-run kick without error to pick up anywhere the plugin may have failed
can supply a config file with your own config
if no config supplied, a full kick from firekick will attempt to be applied
no proxy info is required
no ip address is required (will use DRAC in core)
can override core ip address with a -a
can override the default proxy with a -n to connect direct
plugin now can configure outside interface ssh and http admin access
added reporting option for exporting access control policy
added url threat intel configuration
plugin will honor the license entitlement from core and activate the evaluation license for those entitlements
plugin will configure HA
plugin will configure only what is required for an HA secondary device (NSFIRE-40)
Added many Palo Alto device name variants for nscli ssh (by Joe Wesch) (#2473)
Bugfixes¶
- nscli migrations <any> (by NetSec DC Migrations <mailto:netsec_dc_migrations@rackspace.com>)
With the Migration database being migrated to MongoDB 3, this fix updates DB queries to reference the correct data types. (GM-621)
- nscli maint failover [f5] (by Sergio Pereira)
VLAN Fail Safe must be enabled in dedicated segments when there are more than two ARPS with different OUI. Therefore, the script give the option to continue when VLAN failsafe is not enabled.
Replaced sys.exit with raise ValueError
Version bump to 2.1 (NSCLIMAINT-658)
- nscli maint minor [firepower] (by Sergio Pereira)
BugFix: Fixed Librack2
Version bump to 3.0 (NSCLIMAINT-659)
- nscli maint minor [F5] (by Sergio Pereira)
BugFix: Fixed Librack2
Version bump to 5.0 (NSCLIMAINT-663)
Resolving an issue with librack and the CoreServer properties being updated. This should now pull the correct properties. This also cleans up some extra information provided for palo alto’s that aren’t needed thanks to Panorama. (by James Finnegan) (#2467)
nscli bandwidth once again gets the list of billable devices based on the end date provided (by Joe Wesch) (#2481)
v20.4.23 (2020-04-23)¶
Features¶
Cable audit parsing functions updated to account for new Firepower audit format (by DJ) (NSCLIMAINT-627)
- nscli maint sweep (by Sergio Pereira)
If ticket provided, the script will use ticket number instead of device id to store and compare results.
Now it is possible to compare cached results with either active or standby device.
Version bump to 2.1 (NSCLIMAINT-651)
Bugfixes¶
- NSCLI Provisioning (by Matthew Manning)
Fix rollback for double NAT is missing objects (IMPLDEV-1117)
- BugFix for librack2 invalid get_server methods within nscli maint plugins (by Sergio Pereira)
nscli maint minor
nscli maint parallel
nscli maint migrate-ucs
nscli maint qc asa (NSCLIMAINT-640)
- BugFix for nscli maint parallel ADX to F5 (by Sergio Pereira)
Wrong Steps while enabling/disabling device interfaces for new devices
Jinja template version bump to 1.2 (NSCLIMAINT-644)
- BugFix for nscli maint parallel when new device number is lower than old device number (by Sergio Pereira)
librack2 get_server returns a dictionary where keys are in order from lower to higher device numbers
Version bump to 3.0 (NSCLIMAINT-645)
- Carry forward bug fixes for ‘maintenance.shared’ functions from maint/dev -> NSI main release (by DJ)
core_helper.DummyToken.core_token_to_dict updated to ‘deep copy’ core token attributes to help with multi-threaded calls
asa.run_show_commands_on_cyclade_asa updated to make a clean ‘console login’ attempt, in case of failure (NSCLIMAINT-646)
Fixes nscli bandwidth to use new https endpoints (by Joe Wesch) (#2457)
v20.4.16 (2020-04-16)¶
Features¶
- Migrations (by Josh Silvas) (GM-581)
Removed unused migrations plugins, mostly the audit plugin as it’s being ran elsewhere.
Added an option to the TORQ plugin to exclude/include a device from backups.
Cleanup migrations_tests
Fix migrations trace IP logic to search for mac-addresses from the partner aggr if not found on the first one.
Update_waf changes to figure out route changes dynamically rather that assume the MX IP block.
- NSCLI Provisioning
Expand NAT tool to automate double NATs (ASA Only) (by Matthew Manning) (IMPLDEV-981)
- Upgraded nscli’s dependency on librack to librack2. (by Micah Culpepper) (NSCLI-185)
Lots of under-the-hood changes to make this happen, especially to Token.librack_auth.
- Refactored nscli maint parallel
Jinja templates for firewall and loadbalancer parallel migrations were added (by Shani Munir)
Refactored parallel migrations in order to inject required data to jinja templates. (by Sergio Pereira)
Moved parallel migration script under maintenance folder (NSCLIMAINT-263)
- nscli maint qc direct swap jinja templates added (by Duane Herman)
nscli maint qc asa -directswap_single
nscli maint qc asa -directswap_ha (NSCLIMAINT-612)
- Updated ftd plugin in order to automatically build a HTTPS tunnel via Cbast (by Sergio Pereira)
Function _get_https_proxy has been added to ftd plugin (NSCLIMAINT-625)
- Added nscli maint sw status plugin in order to show/enable/disable switch ports (by Sergio Pereira)
Add the capability to generate firekicks for a given device (-d deviceid) for all of the FTD templates and save the file to the users home directory by default. (by Aaron Hackney) (NSFIRE-22)
FTD 6.6+ introduces VRF to the platform. As a result, we need to handle CRUD operations on routes differently based on the code version (API version). We need to add the API version as an attribute to the base plugin so that we can give nspylib some clue as to which API endpoint to hit (6.6+ route endpoint or pre-6.6 endpoint). (by Aaron Hackney) (NSFIRE-23)
Bugfixes¶
- NSCLI Provisioning
NSCLI NAT script breaks when calling it from outside of “nscli provisioning configure nats” (by Matthew Manning) (IMPLDEV-1076)
- NSCLI Provisioning (by Matthew Manning)
Change NSCLI Provisioning to use the NSPyLib provisioning back-end
fix broken tests (IMPLDEV-1102)
- nscli maint failover [F5] bugfix. (by Sergio Pereira)
Removed additional interface identifier command from maintenance prep that leads to invalid syntax.
Updated nscli maint sweep commands
Version bump to 2.0 (NSCLIMAINT-620)
Fixes unicode issue related to OpenSSH 8.2. Users may now upgrade their OpenSSH installations. (by Micah Culpepper) (#2363)
Deprecations and Removals¶
nscli maint minor [SRX] plugin has been removed as steps are no longer valid. (by Sergio Pereira) (NSCLIMAINT-626)
v20.3.27 (2020-03-27)¶
Bugfixes¶
NSCLI Provisioning - fixed nscli provisioning configure nats truncates the config if its longer than 80 characters (by Matthew Manning) (IMPLDEV-1071)
NSCLI Provisioning - fixed nscli provisioning info qcip failure when connecting to ASA that has TCP PAT config (by Matthew Manning) (IMPLDEV-1073)
v20.3.17 (2020-03-17)¶
Features¶
- Refactored nscli.provisioning.configure.nats (by Matthew Manning)
Functionality is the same, testing is the same
Added comments and cleaned up code
Broke apart the console interaction significantly, so the code can be ported into FE Lambda easier (IMPLDEV-1021)
nscli settings -c: Added this command so folks can install the Rackspace CA certs on their system in preparation for the NSI team switching to an internally-signed certificate this week. (by Micah Culpepper) (NSCLI-186)- Created to handle bulk import API calls to an FDM Managed FTD. (by Aaron Hackney)
NAT mondule will bulk create the network objects reqiured for a NAT and then the NAT itself.
Flexconfig module will bulk create the needed network, port, and secret objects needed for a flexconfig policy and then create the policy itself.
Objects module will bilk create network objects, port objects, network groups, and port groups
Network moduule will configure the interfaces, sub-interfaces, network objects needed for static routes, and static routes
Secpol module will configure security zones with interfaces, access-control policies, and http/ssh management access on both a public interface and a mangement interface.
Platform module will configure common platform level settings such as NTP, DNS, updating schedules, backup sechedules, etc. (NSCLI-187)
- Created maintenance.shared.user_input to handle various user input tasks (by DJ)
Porting functions form maintenance fork (to be) used by maintenance modules
Unit test setup
Docstring updates and code cleanup (NSCLIMAINT-580)
Refactored nscli maint migrate-ucs in order to disable network interfaces (by Sergio Pereira) The script disables network interfaces in order to avoid outages. During the maintenance prep F5 interfaces must be enabled (NSCLIMAINT-582)
- Updates for maintenance.shared.ticket functions (by DJ)
Improved logic to better handle error conditions
Improved unit tests (NSCLIMAINT-589)
- Updated nscli maint minor -d [F5] (by Sergio Pereira)
Updated maintenance steps to be compatible with 14.x Software Version.
If devices are in SYNC, there is no sync available options in the GUI as previous versions.
Maintenance template version bump to 4.0 (NSCLIMAINT-590)
Minor code improvements and optimization to unit tests for a few maintenance.shared plugins (by DJ) (NSCLIMAINT-594)
- f5sdk function has been added under nscli/shared (by Sergio Pereira)
f5sdk function establishes a proxy
f5sdk connects using F5 proprietary SDK to a Big-IP device given a core device number (NSCLIMAINT-600)
- SwitchRunner now creates a custom ssh config file (by Sergio Pereira)
There is not need to modify ~/.ssh/config anymore
Script will use a custom ssh config file
Added UnitTests
Moved script under nscli/plugins/maintenance/switchrunner/ (NSCLIMAINT-603)
- Added function to extract failover interface from cabling audit results (by DJ)
Function parse_failover_interface_from_cabling_audit added in maintenance.shared.ticket.
Updated existing functions to accept audit_validated flag to avoid re-checking audit
Added unit tests for new code.
‘ASA QC’ plugin updated to use failover interface function (NSCLIMAINT-605)
nscli maint sweep refactored (by Sergio Pereira) Instead of performing multiple calls to dcx to obtain device number given an IP, now it obtains all devices, IP addresses given an environment number. Making ping sweep faster and less likely to receive timeouts (NSCLIMAINT-606)
NetdeviceSSH.get_response method has a timeout hard coded. I have updated this method to allow users to specify timeout (by Sergio Pereira) (NSCLIMAINT-609)
- Updated nscli maint qc [F5] jinja templates (by Sergio Pereira)
Updated Jinja templates to confirm maintenance plan has a step to set avr.stats.internal.maxentitiespertable db value if required
Version bump to v2.0 (NSCLIMAINT-612)
- Updated nscli maint minor -d [F5] (by Sergio Pereira)
Added function to verify avr.stats.internal.maxentitiespertable db value
Added additional maintenance steps to update avr.stats.internal.maxentitiespertable db value if required - Version bump to v5.0
Added function to verify if F5 platforms 2000 and 4000 are using SFP ports due to interface flapping
Updated plugin in order to obtain device configuration directly from the devices via SSH (NSCLIMAINT-613)
Experimental centralized tracing system (Sentry) (by Pedro Ortale) (#2357)
Added logic to nscli ssh to detect Firepower 2k devices running ASA in appliance mode (by Joe Wesch) (#2366)
Included option to enable Sentry while running a development version of NSCLI (by Pedro Ortale) (#2387)
- nscli f5 ssl_audit changes (by Pedro Ortale)
now is showing the domain names (CN/SAN) for the SSL profiles.
option to run the report to the entire account (-a) or over a single device (-d). (#2394)
Bugfixes¶
Fixes nscli maint qc asa -t [Ticket] as wrong arguments were being passed to nscli maint sweep (by Sergio Pereira) (NSCLIMAINT-587)
Changed name to IP substitution in nscli maint asa to counteract names nested within other names (by Joe Wesch) (NSCLIMAINT-611)
Fixes problems raised by OpenSSH version 8.2 whereby Diffie-Hellman-Group14-SHA1 is no longer a default KEX. Adds the string diffie-hellman-group14-sha1 to KEX definitions in two files, and migrates to modern Append method, utilizing + for declaring Cipher or KEX algorithms, as outlined in the release notes for OpenSSH 7.0p1 (2015-08-11). (by Brett Lykins) (#2363)
Fixes a TypeError on nscli info when searching for IP addresses (by Joe Wesch) (#2394)
Adds the
Firewall - Ciscoplatform definition fornscli ssh --scp(by Joe Wesch) (#2396)
Misc¶
#2375, #2385
v20.2.17 (2020-02-17)¶
Features¶
Added Upgrade Package for nscli facts version ftd printouts (by Joe Wesch) (NI-2167)
- nscli monitoring [-d] [-c] [-t TARGET_DEVICE] device plugin added (by Sergio Pereira)
Prints checks, alarms and suppression information given a device
Copies checks, alarms to target device (NSCLIMAINT-362)
nscli maint asa now gathers public IPs automatically and suggests all other standby IP addresses if going from single to HA (by Joe Wesch) (NSCLIMAINT-509)
nscli maint minor -d [F5] script now verifies if save harbor software version is already installed. (by Sergio Pereira) (NSCLIMAINT-550)
- Added into nscli tokens an additional optional argument to print customer impersonation token (by Sergio Pereira)
nscli tokens -imp AccountNumber (NSCLIMAINT-559)
- Added an additional check into to nscli maint minor -d [F5] to verify invalid SNMPv2 configuration (by Sergio Pereira)
Invalid SNMPv2 configuration will not prevent loading existing configuration in 14.X software version (NSCLIMAINT-568)
- ‘maintenance.shared.debug_helpers’ updates (by DJ)
Improvements to ‘debug_dump’ and ‘cache’ function
Addition of ‘dump_load’ function to read data dumped on disk (NSCLIMAINT-570)
- ‘maintenance.shared.debug_helpers’ updates (by DJ)
Updates to make cache file name determination more robust/stable
Added options to skip args and/or kwargs for cache file name
Updated/added unit tests
Removing plugin level code for folder creation (NSCLIMAINT-571)
- ‘nscli maint sweep’ updates (by Sergio Pereira)
Addition of -s, –store and -c, –compare optional arguments in order to compare pre and post maintenance results (NSCLIMAINT-573)
nscli maint qc generic added feature to check for maintenance db commands (by Duane Herman) (NSCLIMAINT-579)
Create ‘maintenance.shared.ticket’ module for maintenance plugins (by DJ) (NSCLIMAINT-581)
adding plugins for RackConnect Global “nscli rcg <> “(by Prabin Gautam) (#2323)
Updated NSCLI trunking autotrunk to detect if a port is shut or downed. It will now prep a no shutdown command or give an indication that the port is down. This update also includes some code tidying up, along with a fix for vlan detection. (by Chris Hollar) (#2324)
Implemented impersonation tokens on the Token class. To get an impersonation token, access
token.impersonation_tokens[account]where “account” is the Core account number as an int or str. The object returned is of thenscli.auth.ns_auth.NSCLICredentialclass, so you may want to access the.secretattribute. Impersonation tokens are stored the same way as other NSCLI credentials. (by Micah Culpepper) (#2328)Implementing Palo rule generation as a part of ‘nscli virt rpcv-acl’. This adds a new option and flag that can be use to generate rules for Palo’s. (by James Finnegan) (#2335)
- Expand pretty_text features and control (by Matthew Manning)
can now modify your settings under “replace.color” to change one color to another (where supported) (#2349)
Bugfixes¶
- Bug fix for CTK returning NULL values for some switch information (‘ports.switch.symbol’) (by DJ)
Used in nscli.plugins.maintenance.shared.core_helper.get_device_core_info (NSCLIMAINT-533)
nscli maint updates -mrt bug fix for user input for maintenance time (by Rich Edwards) (NSCLIMAINT-549)
Fixed a bug in port-audit when child devices have numerically lower device numbers than their parent (by Joe Wesch) (NSCLIMAINT-551)
- Bug fix: get_data_switches method now requires user confirmation when migration ports are detected (by Sergio Pereira)
Migration ports on parallel migrations and RackConnect maintenance scripts are not required. (NSCLIMAINT-564)
Fixed a bug in nscli maint port-audit where it would crash when just firepower child devices are present and not the parent(s) (by Joe Wesch) (NSCLIMAINT-574)
- Bug fix: nscli maint minor -d [F5] When F5 ndapi returns None, script will use raw ssh in order to obtain software version (by Sergio Pereira)
Updated script in order to confirm software version eligibility
Fore more information refer to https://support.f5.com/csp/article/K13845 (NSCLIMAINT-575)
nscli luno_ng fixed issue while pulling device facts (by Pedro Ortale) (#2259)
Misc¶
#2321
v20.1.16 (2020-01-16)¶
Features¶
Physical serial Number has been added to nscli maint cabling-audit output (by Sergio Pereira) (NSCLIMAINT-520)
nscli.apilibs.ns_apilibs.PasswordSafe from con_ssh.py script has been replaced with nspylib.clients.PWSafeAPI (by Sergio Pereira) (NSCLIMAINT-538)
nscli maint updates -ownprep|-ownqc|-qcsched non-service impacting verbiage has been updated (by Sergio Pereira) (NSCLIMAINT-541)
Update nscli maint minor [f5] script in order to reference know issues and fixes one Rackspace wiki link (by Sergio Pereira) (NSCLIMAINT-542)
nscli maint qc [ASA] added additional step to verify firewall interfaces are being monitored (by Sergio Pereira) (NSCLIMAINT-543)
nscli rc info <account number> Filter servers in an account based on SKU; by default it will filter by RCG SKU (by Prabin Gautam) (#2299)
Bugfixes¶
nscli maint asa now moves routes to the bottom of the output for static routes to VTI’s (by Joe Wesch) (NSCLIMAINT-516)
nscli maint asa now prints
monitor-interfacecommands at the end of the output to combat new ASA standard config (by Joe Wesch) (NSCLIMAINT-544)- nscli maint minor [Firepower] (by Sergio Pereira) (NSCLIMAINT-548)
Updated if statement to match 2120 platforms
Updated typos
Fixed a regex bug in nscli f5 adduser for 14.x code (by Joe Wesch) (#2287)
Palo alto now prints any post-login motd and last login info (by Joe Wesch) (#2305)
A couple bugs with the nscli autotrunk feature have been corrected. The first issue was with input validation, while the second was with detecting and generating commands for aggregation switches. (by Chris Hollar) (#2315)
v19.12.17 (2019-12-17)¶
Features¶
Added Palo Alto support to nscli facts version (by Joe Wesch) (NI-2112)
Added SwitchRunner class in order to push commands to switches (by Sergio Pereira) (NSCLIMAINT-444)
nscli maint cabling-audit now supports Firepower devices (by Sergio Pereira) (NSCLIMAINT-474)
nscli asa version_check plugin added to do audits for Code and/or AnyConnect version(s) on given ASA(s) (live or consoled) against FACTS API. (by DJ) (NSCLIMAINT-506)
- Added additional checks to scrub checklist to nscli maint updates -mrt (by Shani Munir)
Perform cabling audit during scrub (if parallel migration)
Reserve IDS SPAN session during scrub (if IDS cab migration) (NSCLIMAINT-517)
Updated nscli maint migrate-ucs script for hardware upgrades to iSeries running 14.X software version (by Sergio Pereira) (NSCLIMAINT-526)
ConsoleSSH (maint.shared) class is updated to support newer platforms and has a few new methods. Bringing code in from MAINT DEV. (by Sergio Pereira) (NSCLIMAINT-530)
Modified format of the generic qc template to include proper indentation and spacing. (by Frank Allota) (NSCLIMAINT-537)
Added nscli mirror search to quickly find the path for a file on the mirror (by Joe Wesch) (#2094)
nscli asa dedos now pulls data using HTTP, and uses SSH as fallback method. (by Pedro Ortale) (#2231)
Adding new feature so that we can trunk/audit vlans to all hypervisors in a cluster. (by Prabin Gautam) (#2246)
nscli add devices to the ticket now bulk add/remove in as single CTK call. (by Pedro Ortale) (#2278)
nscli f5 adduserchmod’s response has been updated to be compatible with 14 code (by Joe Wesch) (#2287)
Bugfixes¶
- nscli maint minor -d [FTD device] updates
Removed readiness check for HA devices as per SME firepower (by Sergio Pereira)
Updated indentations and formatting (by Frank Allota) (NSCLIMAINT-529)
Fixed the nscli luno_ng f5_status call. (by Pedro Ortale) (#2285)
Fixed a bug that would cause
nscli infoto crash on newer devices whose switches were not populated in CTKAPI. (by Micah Culpepper) (#2289)
Deprecations and Removals¶
Removed nscli/plugins/maintenance/maint_qc/auto_asa_qc.py script which is not being used. (by Sergio Pereira) (NSCLIMAINT-536)
nscli mirrorupload has been decommissioned as it no longer worked (by Joe Wesch) (#2094)
Misc¶
#2274, #2280
v19.12.5 (2019-12-05)¶
Features¶
Added Firepower FTD compatibility into nscli maint minor . (by Sergio Pereira) (NSCLIMAINT-522)
nscli maint minor [F5] now supports 12.x to 14.X code upgrade. (by Sergio Pereira) (NSCLIMAINT-523)
nscli luno_ng now pulls failover information from CORE (by Pedro Ortale) (#2269)
Bugfixes¶
Fixed a bug in nscli maint port-audit that was reporting a parent was migrating to a child (by Joe Wesch) (NSCLIMAINT-525)
nscli luno_ng now pulls the F5 software version from NDAPI (by Pedro Ortale) (#2263)
Fixed nscli f5 adduser to upload to /var/tmp/ and move afterward as we can no longer scp directly to /etc/ (by Joe Wesch) (#2266)
v19.11.27 (2019-11-27)¶
Bugfixes¶
Fix failing qcip detailed and configure nats for srx platform. (by Donald Tanner) (IMPLDEV-189)
Updated Luno_ng to support DC selection local to the F5 (by Rich Gale) (LUNO-282)
Changes ribbon to use standout colors in an attempt to contrast the text with the background (by Joe Wesch) (#1278)
nscli ssh now prompts for both username and password when using
-ufor FXOS/FTD devices (by Joe Wesch) (#2230)nscli maint port-audit no longer assumes a child devices’s parent has switch ports (by Joe Wesch) (#2249)
v19.11.15 (2019-11-15)¶
Bugfixes¶
nscli maint port-audit will now assume the switch is in the same DC as the device if CTX doesn’t know (by Joe Wesch) (#2235)
Fixed the references to the object fields, since it was changed in the ASA API (by Pedro Ortale) (#2237)
v19.11.14 (2019-11-14)¶
Features¶
nscli maint cyclade requires ticket number in order to record this event in netsec maintenance database (by Sergio Pereira) (NSCLIMAINT-147)
nscli maint qc f5 jinja templates updated in order to account checkusers.py script (by Sergio Pereira) (NSCLIMAINT-368)
nscli maint prep format and ordering of steps has been updated (by Jim Burhans) (NSCLIMAINT-470)
nscli maint minor now works with firepower devices running ASA code on platforms 21XX (by Sergio Pereira) (NSCLIMAINT-476)
nscli token plugin has been moved under nscli/plugins/tokens (by Sergio Pereira) (NSCLIMAINT-498)
nscli maint asa now warns you when there is a question mark in plain text keys that need to be pasted in (by Joe Wesch) (NSCLIMAINT-501)
nscli maint sweep now works with Firepower devices running FTD code (by Sergio Pereira) (NSCLIMAINT-504)
nscli projects now sorts ‘Waiting Scheduling’ tickets by their QC expiration date instead of original DUE date (by Joe Wesch) (NSCLIMAINT-507)
nscli facts version now detects a child device and prints the software for the parent chassis (by Joe Wesch) (#2213)
Improves our .deb releases by providing more-specific releases for different OS versions. We now publish releases for Debian 10 and Ubuntu 18.04, 19.04, and 19.10. See the Installation document for a list of currently-supported OS versions. (by Micah Culpepper) (#2221)
Added support for Python3.8 (by Micah Culpepper) (#2224)
Bugfixes¶
NSCLI Provisioning assign ip: handle extra spaces or tabs in each input line better (by Matthew Manning) (IMPLDEV-840)
NSCLI Provisioning assign ip: remove address_payload[‘address’] when not assigning an automatic or specific servicenet IP (by Matthew Manning) (IMPLDEV-885)
nscli maint minor: Bug fix for F5 pool verification steps (missing return character) (by Sergio Pereira) (NSCLIMAINT-489)
nscli maint sweep: Bug fix with Firepower devices. (by Sergio Pereira) (NSCLIMAINT-499)
Deprecations and Removals¶
Decommission of vipstatus,py, send_commands.py, network_device_checks.py, maint_checks (by Sergio Pereira) (NSCLIMAINT-496)
Dropped support for Python3.5. Please run NSCLI on Python3.6+ going forward. (by Micah Culpepper) (#2178)
Misc¶
#1391, #2199, #2231
v19.10.15 (2019-10-15)¶
Features¶
Show if an IP is not in a directly connected network in QCIP simple mode (by Donald Tanner) (IMPLDEV-753)
nscli maint port-audit now attempts to deal with non-existent switches instead of crashing (by Joe Wesch) (NSCLIMAINT-480)
nscli maint minor has been refactored in order to use facts api. Moreover, it has been moved under maintenance plugin (by Sergio Pereira) (NSCLIMAINT-481)
nscli maint port-audit will now try and detect when an IDS monitored device is moving cabs and then if the IDS is missing migration ports (by Joe Wesch) (#2113)
nscli maint port-audit now warns when there is not an aggr within 2 hops of a switch (by Joe Wesch) (#2141)
Added netsec_files to nscli facts for MD5/SHA512 of files (by Joe Wesch) (#2193)
Bugfixes¶
Misc¶
#2187
v19.9.16 (2019-09-16)¶
Features¶
Added an option to specify a ping timeout value in qcip for ASA and ADX devices (by Drew Cody) (IMPLDEV-752)
Added scrub framework to
nscli maint updates -mrtto remind user of necessary scrub tasks (by Shani Munir) (NSCLIMAINT-384)nscli maint updates -mrtupdates (by DJ) - Added Jinja template and rendering function for scrub checklist - Removed the prompt from call flow which used to allow users bypass scrub checklist during MRT (NSCLIMAINT-438)nscli maint asa now requires confirmation if the vlan number you are providing is not in the ENV (by Joe Wesch) (NSCLIMAINT-453)
nscli maint projectsupdated to include ‘Strat Dallas’, ‘Team D10’ and ‘ENTW-1WIN’ (by Sergio Pereira) (NSCLIMAINT-465)nscli info now prints the parent, child and FMC device numbers (if applicable) (by Joe Wesch) (#2134)
nscli fleet_tools naasis now available to all Rackers. It uses the Racker’s TACACs credentials to execute arbitrarysets of commands or configurations on a provided list of Netsec devices. ZSP and other command Auth functions are still applied by the end device. (by Brett Lykins) (#2143)
- Increase logging verbosity in
nscli.__main__when using--debugor ifdebug = Truein Settings.ini. This will allow us to better manage/monitor initial NSCLI execution process. (by Brett Lykins) (#2148)
- Increase logging verbosity in
nscli ptis now able to use account numbers on top of the existing device number. With this option, multiple instances of packet tracers will be run, according with the network logical path between the source and destination IP address specified for the test. (by Pedro Ortale) (#2157)nscli maint asa now detects crypto map pfs group1 which is now fully deprecated and stops the script as it needs to be fixed prior to migration (by Joe Wesch) (#2160)
nscli maint asa now detects a primary IP on the new device and will replace the IP and gateway in the config (by Joe Wesch) (#2161)
Bugfixes¶
nscli maint qc asaQC templates updates for re-route section (by Duane Herman) (NSCLIMAINT-420)Fixed a bug on nscli maint port-audit where it wouldn’t print the neighbors when there are no/all VLANs trunked (by Joe Wesch) (NSCLIMAINT-443)
Fixed a false positive bug in a nscli maint port-audit RCv2 migration check (by Joe Wesch) (#2116)
Fixed a bug where certain commands were no longer exempt from logging (by Joe Wesch) (#2122)
nscli asa findnetworksno longer crashes when it cannot parse a rule (by Joe Wesch) (#2123)nscli ssh --failoverno longer logs into the primary after logging into the failover device (by Joe Wesch) (#2139)nspyliblogs now print/log innscli(by Brett Lykins) (#2145)Fixes issues around corrupt settings files. We now have a lockfile so that only one NSCLI process can write to the config file at a time. We also rename the settings file to “settings.ini.old” and create a new settings file if we are unable to parse it. (by Micah Culpepper) (#2167)
Moves the RSA prompt for CORE tokens back up to the front of the NSCLI run. No more RSA prompts while logging out. (by Micah Culpepper) (#2168)
Deprecations and Removals¶
Removed -waitqcsched option from ‘nscli maint updates’ (by Justin Drew) (NSCLIMAINT-460)
Decommissioned the fetching and printing of Siphon Watchlists (by Joe Wesch) (#2165)
Misc¶
#2169
v19.8.15 (2019-08-15)¶
Features¶
Created a new command: nscli provisioning assign ip (by Matthew Manning) (IMPLDEV-525)
- Updated nscli provisioning configure nats (by Matthew Manning)
updated F5 static NAT config due to vulnerability identified.
fixed according to OneWiki
nscli maint updates -qcpassnow adds expiration date for QC in ticket subject (by DJ) (NSCLIMAINT-372)nscli maint updatesoutput describes maintenance impact per decided verbiage (by Sergio Pereira) (NSCLIMAINT-392)nscli maint port-audit now ignores neighbors across a mgmt interface (by Joe Wesch) (NSCLIMAINT-399)
Added a new audit to nscli maint port-audit that checks for inconsistent RackConnect SKUs on migration devices (by Joe Wesch) (#2057)
Automatically changes Palo Alto CLI config mode to show ‘set’ commands instead of xml (by Joe Wesch) (#2068)
Adds a warning when logging into HA ADX devices that are still running 12.4 to remind users to manually sync the config (by Joe Wesch) (#2076)
Added SHA512 checksums to
nscli facts version <platform>output (by Joe Wesch) (#2078)Added the
nscli torq refresh-devicecommand, so you can refresh torq easily (for example, if you’ve just re-IP’d a device and you need Torq to catch on so it can do a new backup). (by Micah Culpepper) (#2083)Updated
nscli virt rpcv-aclto support F5’s on the edge. It will now respond with the configuration changes necessary for an Edge F5 in regards to an RPCV Build (by James Finnegan) (#2087)nscli now reports the exit status to appstats/newrelic after running for detailed error reporting (by Joe Wesch) (#2089)
If the NSCLI settings option SSH -> Paramiko is set to True, ssh interactions will attempt to use Paramiko instead of OpenSSH. This behavior is disabled by default at this time, as this feature is still in Beta status. (by Brett Lykins) (#2099)
nscli maint port-audit now sends a refresh command to Unipede with a listing of switches before asking for fresh data so everything gets queued up more efficiently (by Joe Wesch) (#2104)
Added an IP check to nscli virt rpcv-acl to ensure all necessary devices have IP’s during build (by James Finnegan) (#2111)
Bugfixes¶
nscli maint qc rcv2_rcv3- template reflects correct maintenance length. (by Sergio Pereira) (NSCLIMAINT-353)nscli maint updates [-waitprep|-ownprep]Improvements to existing ETD functions - force update existing date(s), strips spaces if needed. (by DJ) (NSCLIMAINT-395)Removed the manual gateway replacement for users using DFW Issue #2007, and fixed an issue related to imports (by Pedro Ortale) (#1073)
Added the NAMES parsing in order to avoid netaddr conversion errors #2007 (by Pedro Ortale) (#2007)
Removed storage of SSH Known Host Keys, by dropping them into /dev/null, to resolve issues where host key changes and user is unable to log in. (by Brett Lykins) (#2020)
Fixed a bug in nscli maint asa where it would inadvertently trim port-channels (and possibly other) interfaces when converting to a Firepower chassis (by Joe Wesch) (#2073)
No longer crashes when Siphon doesn’t return the latest watchlist (by Joe Wesch) (#2080)
Fixed
nscli switchbehavior to properly provide SSO password to SSH Proxy connections. (by Brett Lykins) (#2101)
Misc¶
#2042
v19.7.22 (2019-07-22)¶
Features¶
Created a new command: nscli provisioning add svi (by Matthew Manning) (IMPLDEV-758)
Bugfixes¶
Removed allow overrun option from mrt (by Sergio Pereira) (NSCLIMAINT-369)
Fixed a bug that meant
nscli bandwidthrequired Python 3.7 to run (by Micah Culpepper) (#2055)Added exception handler for invalid network/mask pairing (by Pedro Ortale) (#2059)
Fixed a bug that crashed the RPCV-ACL plugin by upgrading to a fixed version of librack. (by Micah Culpepper) (#2064)
Improved Documentation¶
Implemented new changelog format based on town crier (by Micah Culpepper) (#2046)
v19.7.16¶
- nscli core (by Micah Culpepper)
Fixed the bug “Parent instance is not bound to a Session”, #2037. Most noticeably affected
nscli ssh.
v19.7.15¶
- nscli juniper pt (by Pedro Ortale)
Clean-up for unnecessary module (future) being in use.
Fixed the issue with the dport argument. #2025
- nscli facts version (by Joe Wesch)
Added
ftdas a new platform
v19.6.17¶
- nscli maint asa / nscli asa recovery (by Joe Wesch)
Added zabbix SNMPv3 user to list of known credentials to pull from PasswordSafe #1980
Added logic to deal with the 5510 with the extra 4x1G interface module NSCLIMAINT-324
Changed the RCv2 detection method to limit false positives NSCLIMAINT-329
- Netsec Maintenance Updates
- ‘nscli maint updates’ bug fixes
NSCLIMAINT-267 (by DJ)
NSCLIMAINT-325 (by DJ)
- ‘nscli maint qcafm’ spelling fix
- nscli maint qc f5 –single, –single-ha, –ha-ha (by Sergio Pereira)
Updated Jinja templates to verify F5-branded optical connectors and correct part number are installed.
jinja templates version bump to 1.2
- nscli maint port-audit (by Joe Wesch)
Changes from multi-processing to multi-threading for all requests #1996
Added an audit for IDS that are not part of a span session destination. Also reports currently configured number of sessions NSCLIMAINT-348
Added port channel interface labels to table output if the interface is in one
- nscli rc RackConnect (by Pedro Ortale)
Fixed the certificate issue #1999.
- nscli facts version (by Joe Wesch)
New plugin to interface with the NetSec Facts API to get the current standard version
nscli facts version $DEVICEPrints the current standard code version for the specified device
nscli facts version (asa/f5/adx/srx/netscaler) [--model $MODEL]Prints the standard for the specified platform (and optional model number)
- nscli maint port-migrate
Updated to use proper UnipedeAPI module
This resolves an issue with this timing out on MAC’s
- nscli switch (by Micah Culpepper)
When connecting to a switch in a region for which no network bastion is defined in NSCLI’s infrastructure database, NSCLI will now choose the user’s default region for proxying instead of crashing. #2004
- nscli core (by Micah Culpepper)
Fixed a bug in holiday detection that caused NSCLI to behave in an excessively jovial manner on the day after Memorial Day. #1997
v19.5.17¶
- nscli core (by Micah Culpepper)
Additional fix for former-Datapipe users related to #1933
v19.5.15¶
- nscli maint asa (by Joe Wesch)
Added tunnel group titles to the exemption list for ‘name’ replacements
Added logic to convert legacy ssl settings to latest standards NSCLIMAINT-278
Added interface conversions from ASA to Firepower 21xx (running ASA code)
Function re-factoring to facilitate calling ‘maint asa’ from other modules. NSCLIMAINT-302 (by DJ)
Now pulls the standard boot image and anyconnect packages from FactsAPI #1952
No longer asks if you want to use the standard interface for failover
Added argument
--failover_interfacefor injecting non-standard interface
- nscli maint port-audit (by Joe Wesch)
Added neighbor names to table when no/all VLANs are trunked
No longer crashes when Unipede returns
Nonefor a timestamp #1948No longer crashes when Parent/Child SKU is present without a device listed - prints audit fail instead #1966
Added check for Firepower devices with missing DRAC port #1930
No longer warns about DRAC ports being inconsistent when moving to SFR or Firepower
- nscli trunking autotrunk (by Chris Hollar)
Added plugin
- Netsec Maintenance Updates
- Added nscli maint updates -maintstart and -maintcompleted into maintenace steps plugins
#NSCLIMAINT-267 (by DJ) #NSCLIMAINT-318 (by Sergio Pereira)
- Updated mrt to align with GTS support verbiage
- Updated nscli maint updates -sched [-nd] (by Jason Wright)
Reformatted customer ticket update.
Super ticket moved by default to ‘Global NetSec Specializations’ status ‘SubTicket Pending’.
NetDef option ‘-nd’ to move Super ticket to ‘Global NetDef Specializations’ status ‘SubTicket Pending’. #NSCLIMAINT-268
- Updated nscli maint updates verbiage (by Sergio Pereira)
Updated nscli maint minor verbiage (by Duane Herman) #NSCLIMAINT-308
nscli maint sweep (by Sergio Pereira) Regex has been updated to support new software version 9.12(1)3 nscli maint sweep unittests has been moved under tests test_maintenance folder #NSCLIMAINT-326
- nscli maint rpcv-acl (by James Finnegan)
Updated logic to be able to handle the new v3 process
Added –v2 command for any remaining v2 builds in progress (will be removed in the future)
- nscli core (by Micah Culpepper)
Added a new function,
nscli.shared.helpers.get_servers, which behaves likelibrack.server.get_servers, but also gets SKUs when loading server data, which results in fewer CTK calls. #1962
- nscli maint fw_convert (by Justin Drew)
Added function to standardize F5 names and avoid invalid characters #NSCLIMAINT-322
Fixed rule-list name creation and some syntax issues #NSCLIMAINT-321 & #NSCLIMAINT-310
Cleaned up output and streamlined user interactions
Enabled parsing, storing, and retrieval of multiple ACLs
Added support to pull from local file
v19.4.24¶
- nscli core (by Micah Culpepper)
Fixed a bug that prevented former-Datapipe Rackers from using
nscli infoandnscli sshon devices in admin.mydatapipe due to the fact that their Datapipe and Rackspace SSO usernames differed. #1933NSCLI will now prompt you for your Datapipe SSO when needed. For users that have the same SSO across Rackspace and Datapipe, you can press Enter to use your Rackspace SSO for both systems. This value will be saved in NSCLI’s settings file.
v19.4.17¶
- nscli <asa/adx/f5/juniper/netscaler> sanitize input (by Joe Wesch)
Added logic to automatically split a config if it’s too large for the input API
- nscli maint port-audit (by Joe Wesch)
Added logic to ignore dcpe switches that show up as neighbors
Lengthened timeout for Unipede access switch call from 2 minutes to 5; neighbors remain at 10 minutes. If Unipede doesn’t respond in time it will now stop instead of trying to continue with partial data. It also will now print a list of switches that failed to return information. #1900
Added an audit for parent/child firewall relationships NSCLIMAINT-275
- nscli f5 afmrulegen (by Zach Brooks)
Added plugin
- auto-backups (by Micah Culpepper)
Improved error-silencing. You shouldn’t see any more stack traces from failed auto-backups.
Added parent-context detection, so now when you log out of a context ASA, we will back up the parent device in CORE (since we don’t back up children individually). This depends on the parent device ID being set correctly in CORE…
- Netsec Maintenance Updates
- nscli projects #NSCLIMAINT-274 (by Sergio Pereira)
Added ‘Untiered’ section
- nscli maint updates -mrt_afm #NSCLIMAINT-277
Updated jinja template (by Duane Herman)
Udpated maint_updates and maintenance_plugin (by Sergio Pereira)
- nscli maint minor #NSCLIMAINT-281 (by Sergio Pereira)
Fixed bug in maintenance_plugin
Replaced sys.exit with raise ValueError
- nscli maint qc f5 –afm_ha and nscli maint qc f5 –afm_single #NSCLIMAINT-279
Updated jinja template (by Duane Herman)
Udpated maint_updates and maintenance_plugin (by Sergio Pereira)
- nscli maint updates (by DJ)
Added ‘maintstart’ argument to ‘maint updates’ menu : NSCLIMAINT-267
Fixed a bug with due_date calculation (if start date specified was a future date)
Added ‘display_only’ option to ‘maint updates’ menu : NSCLIMAINT-284
- dedos ports (by Micah Culpepper)
Replaced 1MB spreadsheet with 121KB Python file
Added a script to grab new port numbers from IANA when needed
- nscli core (by Micah Culpepper)
v19.3.26¶
- nscli core (by Joe Wesch)
Changes where nscli retrieves user SSH keys to improve performance of nscli initialization
v19.3.25¶
- nscli pt (by Pedro Ortale)
Generic Packet Tracer wrapper. It identifies the device platform a runs the appropriate Packet Tracer Plugin.
- nscli asa recovery (by Joe Wesch)
Fixed a bug where it always assumed the self-signed TP would be first
- Netsec Provisioning Updates
- nscli provisioning batch get_ip (by Matthew Manning)
Generates a CSV in the Batch IP format based on the existing environment data
- nscli provisioning batch get_vlan (by Matthew Manning)
Generates a CSV in the Batch VLAN format based on the existing environment data
- nscli step5 (by Matthew Manning)
renamed to nscli provisioning step8
- Changed the DCX API endpoint for env lookup (by Matt Vitale)
it’s a cheaper call to make ᕕ(ᐛ)ᕗ
- Netsec Maintenance Updates
- maintenance parsers #NSCLIMAINT-269 (by Sergio Pereira)
Refactored maintenance parsers in order to be able to log nscli maint usage correctly into appstats
- nscli ssh (by Micah Culpepper)
Restored functionality of
nscli ssh $ip#1871Fixed all of the backslashes that were showing up in DMGs
- automatic backups (by Micah Culpepper)
NSCLI will now trigger a Torq backup every time you log out of a device. This is done in a background process so as not to slow you down.
Logging is suppressed, so you won’t see any messages in your terminal about the success or failure of the backup. NSCLI will create a file in your logs directory containing the output from the backup job, so you can check there if you’re interested. As always, there are also event logs in Torq itself.
If the device is an ASA and it exists in admin.mydatapipe.com, then nscli will also upload a copy of the backup to admin.mydatapipe.com, to update the policy. If the device only lives in admin.mydatapipe.com and not CORE, then the Torq backup won’t work and neither will the policy update. For devices in this state, you should update the policy using fastpix.
v19.3.8¶
- nscli virt gendns (by James Finnegan)
Fixed an issue with attempting to sort a dictionary
Corrected output of cname entries
- nscli maint
- nscli maint diff_f5 #NSCLIMAINT-228 (by Sergio Pereira)
Uncommented command in order to print the diff results
Updated plugin to use default nscli cache folder
- nscli maint minor [F5] #NSCLIMAINT-236 (by Sergio Pereira)
Fixed bug while trying to determine active/standby device
- nscli maint sweep #NSCLIMAINT-241 (by Sergio Pereira)
Fixed bug when firewall primary IP addresses changes
Added resulting summary output when ticket option is used
- nscli maint migrate-ucs #NSCLIMAINT-242 (by Sergio Pereira)
Fixed bug when admin/root passwords have description fields in bigip_user.conf
- nscli maint updates #NSCLIMAINT-247 (by Sergio Pereira)
Added a function in order to save events in netsecmaint db
- nscli maint updates #NSCLIMAINT-251 (by Shani Munir)
Added flag “-priv” for private ticket update
Added flag “-db” for no ticket update, only database update
- nscli maint escalation #NSCLIMAINT-252 (by Sergio Pereira)
Moved under nscli maint updates
Updated regex to also support ETD ( Expected Time of Delivery)
- nscli maint parallel #NSCLIMAINT-254 (by Sergio Pereira)
Fixed bug when IDS does not require cabinet move, but current and new firewall are in different switches.
- nscli maint f5_license #NSCLIMAINT-255 (by Sergio Pereira)
Generates maintenance steps in oder to apply utility license and provision afm or gtm or avr module
Updated step 2.5.8 with more specific instructions (by Jonathan Padovano)
Added additional steps and logic to maintenance plan (by Shani Munir)
- nscli maint qc asa #NSCLIMAINT-259 (GTS Maintenance Team)
Jinja asa qc templates were udpated in order set scope of SRF work by NetSec Maintenance team
- nscli maint con_ssh #NSCLIMAINT-250 (by Sergio Pereira)
Updated plugin in order to use config_db to obtain the correct network bastion
- nscli maint minor -d [F5] #NSCLIMAINT-261 (by Sergio Pereira)
Plugin raises an error when F5 device has a single volume on hard disk
- nscli maint updates maintcompleted (by Justin Drew)
Update maintenance tracker with maintenance completion status #NSCLIMAINT-248
- nscli maint parallel update (by Justin Drew)
Update verbiage for updating HybridControl for RCv3 #NSCLIMAINT-257
- nscli maint migrate-ucs (by Bob Gustwick)
Fixed bug with sed command #NSCLIMAINT-238
- nscli maint asa (by Joe Wesch)
Fixed a bug that was dropping IPv6 address on the outside interface from 5505 source devices #NSCLIMAINT-240
Moved SNMP settings to after failover (if HA) #NSCLIMAINT-246
- nscli ssh bug fix (by Joe Wesch)
Fixed a false positive regex match triggered by certain banner text
- nscli.info.ns_info.find_edge_device (by Micah Culpepper)
Added function to determine a device’s edge device. This works by searching Unipede for the static route with the best match to the given IP, and then returning the ID of the device that is assigned the next-hop IP of that route.
- nscli juniper pt (by Pedro Ortale)
Fixed bug triggered when a zone is associated to multiple interfaces.
Fixed the tests - Mocking FD’s.
Moved the plugin to the appropriate folder (plugins/juniper).
Minor visual enhancements.
- nscli maint updates qcpass (by Justin Drew)
Added template for QC pass standardization #NSCLIMAINT-243
- nscli ssh (by Micah Culpepper)
Added support for Palo Altos
NSCLI will try to use the DRAC IP in CORE to connect
- nscli maint port-audit (by Joe Wesch)
Now prints error messages about VLAN trunking issues
Added a check to verify the VLAN is not shut down on the switch #1791
Added
-u, --update-switchoption to request Unipede to update a single switch/aggr instead of everything Example:nscli maint port-audit -u a1-2-1.dfw3Now checks if the SFR DRAC port is not on an ExNet switch #1840
- nscli virt cdp-update (by James Finnegan)
Tool that generates necessary commands to disable/enable cdp on hyp switchports for cable checking
- nscli maint qc f5 (by Jonathan Padovano)
Updated template for –ha-ha and –single-ha #NSCLIMAINT-244
- nscli maint projects fix (by Justin Drew)
Add team D10 to US teams #NSCLIMAINT-245
- maint updates -waitprep (by DJ)
Added function to prepend DUE DATE to the ticket subject #NSCLIMAINT-248)
- nscli info (by Pedro Ortale)
Added IPv6 support
- nscli fleet_tools naas (by Brett Lykins)
Fixed bug with handling more than 500 devices
- nscli core (by Joe Wesch)
Added an option to the settings.ini file to enable tracebacks on errors without requiring
--debug
- nscli asa pt (by Pedro Ortale)
Simplifies the Packet Tracer execution on ASA devices.
There is no need to identity the ingres interface for the source.
Uses TCP as default protocol and 1024 as source port.
Example usage: “nscli asa pt 884366 172.20.8.208 8.8.8.8 443”
- nscli f5 pt (by Pedro Ortale)
Simplifies the Packet Tracer execution on F5 AFM devices.
There is no need to identity the ingres interface for the source.
Uses TCP as default protocol and 1024 as source port.
Example usage: “nscli f5 pt 885445 192.168.10.2 2.2.2.2 23”
- nscli ssh (by Micah Culpepper)
Added support for devices that live in admin.mydatapipe.com instead of CORE.
To tell NSCLI you want to SSH to a Datapipe device or IP, prefix it with
dp-, sodp-86926orDP-206.55.127.120.For these devices, nscli will use the user’s credentials to pull a shared username and password from the admin.mydatapipe API, and use those shared credentials to log into the device.
Due to a hilarious miscommunication, when NSCLI prompts you for your credentials, it might ask for a “Dell Defender token + PIN”. If you do not have such a thing, just enter your PIN + RSA like normal. This messaging will be clarified in the next release.
At the time of this writing, few Datapipe devices allow connections from the balabits, so you’ll get “connection refused” if you try to use NSCLI to log into them. This should be remedied in the next few days.
- nscli info (by Micah Culpepper)
Added support for devices that live in admin.mydatapipe.com instead of CORE.
To tell NSCLI you want info about a Datapipe device or IP, prefix it with
dp-, sodp-86926orDP-206.55.127.120.For these devices, nscli will use the user’s credentials to pull data from the admin.mydatapipe API
Due to a hilarious miscommunication, when NSCLI prompts you for your credentials, it might ask for a “Dell Defender token + PIN”. If you do not have such a thing, just enter your PIN + RSA like normal. This messaging will be clarified in the next release.
Since admin.mydatapipe doesn’t contain all the same types of information as CORE, the output fields do not match the fields shown for CORE devices. It is valid to ask NSCLI for info on multiple devices in one command, and to have those devices come from different systems. Grep safely.
- nscli asa vpnpeers #NSCLIMAINT-262 (by Sergio Pereira)
Moved under asa plugin folder
v19.1.15 (released 2019-01-15)¶
- nscli ssh -g enhancement (by Joe Wesch)
Added options to the
settings.inifile to allow for opening the GUI links in a different browser than your system default Options are either a supported browser name or an unsupported browser path with optional arguments Please see the docs for links to supported browser names along with an example on using path #1706
- nscli zsp status (by Joe Wesch)
Check the current status of an event_id
- nscli qcip (by Micah Culpepper)
- Deleted command. Please use these commands instead:
- For ASA:
nscli asa qcip
nscli asa static_nats
- For F5:
nscli f5 qcip
nscli f5 static_nats
- For Juniper:
nscli juniper qcip
nscli juniper static_nats
- nscli maint prep (by Shani Munir)
Updated LB testing steps
Various placeholder steps added for easier maintenance preps #NSCLIMAINT-215
- nscli virt rpcv-acl (by James Finnegan)
Fixing some output to clean up the ACL’s as well as fix object-group names
- nscli maint port-migrate (by James Finnegan)
Fixed a bug with l2dp causing a loop
updated logic for –para
changed -d, -t and –manual to be in a mutually exclusive group
- nscli maint QC (by Duane Herman) #NSCLIMAINT-219
Updated all QC sheets with new verbiage to clearly document interface to switchport configuration
Updated sheet for RCv2 to RCv3 with ACL check (by Shani Munir) #NSCLIMAINT-225
- nscli rc (by Pedro Ortale)
Fixed bug while handling the local cache
- nscli projects (by Sergio Pereira) #NSCLIMAINT-220
Updated nscli projects to also print ‘unsolved’ tickets
- nscli maint (by Sergio Pereira)
- nscli maint rcv3 #NSCLIMAINT-221
Moved rcv3 under maintenance folder
Udpated maintenance steps
Replaced sys.exit with raise ValueError
- nscli maint times #NSCLIMAINT-221
added Rcv2 to Rcv3 upgrade maintenance standard times
- nscli maint prep #NSCLIMAINT-226
Moved plugin under maintenance folder
- nscli maint protected_ips #NSCLIMAINT-227
Moved plugin under maintenance folder
- nscli maint cabling-audit #NSCLIMAINT-210
Added Device information to display to the user the device number that the plugin is working on
- nscli maint failover #NSCLIMAINT-231
Fixed bug with collapsed ExNet switches
- nscli maint updates -mrt #NSCLIMAINT-232
Changed ticket status from New to Waiting MRT.
when option -nd, ticket queue is changed to Global NetDef Maintenance
- nscli asa shun (by Micah Culpepper)
Fixed a long-standing bug where shun would crash on some firewalls if failover data was too long.
- nscli tshoot_access (by Micah Culpepper)
This command has moved. It is now
nscli asa tshoot_access, since it has only ever worked with ASAs.If we add support for other platforms, we’ll add their commands under the appropriate trees.
- nscli f5 rebuildha (by Micah Culpepper)
This plugin has been decommissioned. #1745
- nscli f5 haconfig (by Micah Culpepper)
This plugin has been decommissioned. #1744
- nscli core (by Micah Culpepper)
NSCLI no longer supports Python 2. We currently support Python 3.5, 3.6, and 3.7.
The installer script has been updated accordingly, so new installations/upgrades will use Python 3, installing it if necessary.
- nscli upgrade (by Micah Culpepper)
The
nscli upgradecommand is gone.NSCLI will continue to check for updates and notify when they are available.
Users are encouraged to install and manage nscli using a package manager for their platform. See our documentation on installing.
- nscli swip (by James Finnegan)
Fixing an encoding bug that broke this in python3
v3.10.0 (released 2018-12-17)¶
- nscli settings (by Micah Culpepper)
Fixed bug where
nscli settingswould crash on Mac due to a space in the settings filename.
- nscli maint port-audit (by Joe Wesch)
Increased the age multiplier for Unipede retry calls
Moved
[WARN]and[FAIL]to individual audit lines for more granular resultsAdded output showing the “freshness” of the data according to Unipede
Fixed a bug where the migration ports were getting sorted too soon
- nscli maint updates (by Duane Herman)
nscli maint updates -waitprep: Removed all verbiage of 14 day turn around on.
nscli maint updates -mrt: Updated jinja template with examples of customer checks #NSCLIMAINT-174
nscli maint updates -maint qc decom –lb: Updated jinja template for change freeze removal prior to zsp unlock #NSCLIMAINT-193
- nscli maint plugin updates (by Sergio Pereira)
Updated nscli maint qc asa –auto -t to solve snmp engineID bug #NSCLIMAINT-189
- Fixed nscli maint cabling-audit
asa bug with ASA 5515 platform #NSCLIMAINT-189
Fixed bug of misleading results when device has more than 1 ExNet port due to a counter
Version bump to 1.0 #NSCLIMAINT-211
nscli maint cabling-audit shuts down switch ports after making all tests on each device #NSCLIMAINT-197
- nscli maint times #NSCLIMAINT-194
Plugin has been moved under maintenance folder
Updated maintenance times
- nscli maint qc asa auto #NSCLIMAINT-196
Updated ASA safe harbor version
Fixed parser description
Added 5545 ASA platform #NSCLIMAINT-199
nscli maint parallel now detects alert logic cloud defender IDS #NSCLIMAINT-198
nscli maint sweep now supports FirePower with ASA Standard Module #NSCLIMAINT-200
- nscli maint parallel
suppression removal link updated #NSCLIMAINT-202
Obtain IDS device by querying mongo db and devices within an environmet #NSCLIMAINT-204
- nscli maint protected_ips #NSCLIMAINT-205
Response from F5 /config/ltm/pool ndpi changed. Plugin has been updated
Replaced sys.exit with raise ValueError
- nscli projects #NSCLIMAINT-200
Added In Progress status
- nscli maint updates #NSCLIMAINT-217
Added option to update ticket with network defense signature
Removed nscli maint mrt
Updates commands.rst
- nscli maint qc f5 (by Jason Wright)
–ha-ha - QC steps for f5 ha to ha parallel migrations #NSCLIMAINT-97
–single - QC check added for F5 v11 server-ssl profiles being applied to VIPs #NSCLIMAINT-213
–single-ha - QC check added for F5 v11 server-ssl profiles being applied to VIPs #NSCLIMAINT-213
–ha-ha - QC check added for F5 v11 server-ssl profiles being applied to VIPs #NSCLIMAINT-213
- nscli settings (by Micah Culpepper)
- added new options to
nscli settings nscli settings -s <sso>lets you update your SSO username in your nscli settings file.nscli settings -t <tacacs>lets you update your TACACS username in your nscli settings file.
- added new options to
- nscli reset (by Micah Culpepper)
nscli resetwill now delete your SSO username and TACACS username from your settings file. NSCLI will prompt you for these again the next time it needs them.Previously,
nscli resetwould delete any saved passwords, but not the associated saved usernames. This meant that some users encountering authentication failures would attempt annscli reset, but it would not solve their problem.
- nscli ssh_lib (by Brett Lykins)
- nscli ssh library now has Paramiko support (Disabled by default as this feature is EXPERIMENTAL).
- Paramiko is a Python native implementation of the SSH protocol, and this change is designed to:
Reduce OS package dependencies and/or errors because of OpenSSH version compatibility problems
Provide a faster interface as we are no longer calling a separate OS process
Reduce complexity in code, as there will be no more reliance on Pexpect
To enable, set the
paramikovalue to True in your settings.ini file.
Refactored classes to have separate Paramiko and OpenSSH base classes.
Fixed a bug where Balabit GW attempts would fail, even if password was correct.
Fixed a bug where
super(self.__class__, self)recursion ate all the things because of MRO confusion.Added much better connection success/fail logic and handling, allowing users to re-attempt password login.
Prepended
ron Regex strings, as they must be marked as “raw” strings in newer Pythons.
- nscli netbast (by Brett Lykins)
nscli netbastwill now utilize Paramiko for its connection if the user has enabled it in their settings file.
- nscli virt port-check (by James Finnegan)
Performs cable audit of Hyps
- nscli asa ol (by Pedro Ortale)
Added support to any CORE device status. Previously was pulling only Online/Complete.
- nscli virt rpcv-acl (by James Finnegan)
Generates RPC-V acl’s that are required for RPC-V
- nscli asa dedos (by Pedro Ortale)
Added IPv6 Support
v3.9.0 (released 2018-11-26)¶
- nscli maint plugin updates (by Sergio Pereira)
Updated suppression manager url #NSCLIMAINT-186
nscli maint failover has been moved under maintenance folder
- nscli maint cabling-audit: added additional safety checks:
Target platform must be ASA-X series
Target device must be in segment configuration core status
Switchports links of target device must be initially down #NSCLIMAINT-154
nscli maint cabling-audit additional step added to shutdown switchports after cabling audit #NSCLIMAINT-154
Updated suppression manager url #NSCLIMAINT-186
nscli maint failover has been mover under maintenance folder
nscli projects: Removed status ‘Solved’ from resulting output #NSCLIMAINT-188
- nscli maint port-audit (by Joe Wesch)
Now catches timeouts on Unipede calls and tries again
Fixed a bug where Unipede had leading zeros in vlan names
- debian packaging (by Micah Culpepper)
NSCLI releases are now accompanied by
.debfiles, so you can install NSCLI withapt-get.This feature is currently experimental.
The files can be downloaded from https://intra.mirror.rackspace.com/netsec.devops/nscli/debian/ - this location will move once the
.debreleases are considered production-quality.
v3.8.1 (released 2018-11-16)¶
- Concurrent Futures on Python2 (by Brett Lykins)
Added a dependency on the “futures” package for Python2 users to fix an ImportError
v3.8.0 (released 2018-11-15)¶
- nscli core (by Brett Lykins)
- Added new SSH library
nscli.ssh.ssh_lib. This was done for several reasons: To better use modern code re-use and inheritance models.
To make the SSH methods more easy to use/implement.
To make the SSH methods more robust (added tests) and easier to understand (added much documentation).
- Added new SSH library
- nscli netdevice (by Brett Lykins)
Re-written to utilize new SSH Library (Direct connection)
- nscli cfgstation (by Brett Lykins)
Re-written to utilize new SSH Library (Proxy via Support Balabit GW in that region)
- nscli cbast (by Brett Lykins)
Re-written to utilize new SSH Library (Direct connection)
Removed deprecated options
-1and-2as TES Linux has disabled direct access to specific bastion node
- nscli switch (by Brett Lykins)
Re-written to utilize new SSH Library (Proxy via Network Bastion in that region)
Removed deprecated Cyclade option
Removed deprecated Wildcard Audit option
nscli switch --runnow accepts/executes multiple commandsExample:
nscli switch abc123-1.xyz1 --run 'show version' 'show cdp neighbors'
- nscli permissions (by Joe Wesch)
Now prints an error if there are no devices on the ticket instead of crashing
- nscli fleet_tools (by Brett Lykins)
Adds some NSI specific tooling to NSCLI to help with any fleet level actions
- nscli core (by Brett Lykins)
Added process Exit Code handling for plugin execution,
All plugins can now return an exit code to be handled by __main__, if none returned NSCLI exits with a 0
- nscli maint port-audit (by Joe Wesch)
Now sorts Migration ports to the bottom in the output
Added logic to detect SFR SKU
Added logic to detect HA devices in the same cab as well as not in sister cabs
Added logic to detect different LB DRAC VLANs
- nscli ssh (by Zach Brooks)
added module used to call facts api for netsec runbook.
Modified print_login_ribbon method of NetdeviceSSH class in ns_ssh.py
Call to facts api for runbook will be made and user will be prompted to open in browser
Added option to settings.ini file to disable this, will print a warning that it has been disabled
- nscli zsp unlock (by Joe Wesch)
Returns error if the ticket is closed
- nscli maint plugin updates (by Sergio Pereira)
nscli maint cabling-audit #NSCLIMAINT-154
jinja templates updated: SFR sku check, removed reverse-path and IP verify path checks
nscli maint parallel: Fixed public comment bug #NSCLIMAINT-179
nscli maint qc asa –auto: Checks for SFR sku #NSCLIMAINT-179
- nscli projects
Added tier information
- nscli maint migrate-ucs
Bug fix with sed and too many slashes: #NSCLIMAINT-180 Increased prompt time out
- nscli maint parallel: IDS regex bug
Updated regex to find IDS migration ports #NSCLIMAINT-182
- nscli virt (by James Finnegan)
port-audit (re-call of port-audit under the virt section to make it easier to find)
gendns (generates rpcv dns requirements for a ticket or device list)
genmon (checks/creates monitoring entries for rpcv devices)
- nscli ticket –contacts (by Micah Culpepper)
If you try to add invalid contacts to a ticket, nscli now tells you which ones were invalid instead of just dying.
Thanks to Erik Seime for the suggestion!
- Homebrew (by Micah Culpepper)
NSCLI is now installable via Homebrew for Mac users.
Visit https://github.rackspace.com/SupportTools/homebrew-rs for instructions on setting up your system.
Once you are set up, simply
brew install gts/rs/nscli
- User Files (by Micah Culpepper)
User config files, logs, and cached data have moved so that we can better respect OS conventions.
nscli --versionwill continue to show the locations of these filesThere is no plan to automatically delete the old files or to move them to the new location. Users should delete or migrate their files as desired.
- Password Expiration (by Micah Culpepper)
NSCLI now considers SSO and ACS passwords to be expired after 90 days.
This may help prevent users from getting locked out of their accounts under certain circumstances.
- nscli rlookup (by Zach Brooks)
Added a simple module that can be used to perform a runbook lookup against the facts api
v3.7.1 (released 2018-10-24)¶
- nscli maint port-audit (by Joe Wesch)
Added a check for missing IDS ports when going from single to HA #NSCLIMAINT-134
- nscli nla (by Brett Lykins)
- Updated all VPN IPs based on current status at wiki:
- Changed logic to point at https://icanhazip.nsi.rackspace.com so that we trigger on internal “Tendot” IPs.
“Blackened” nscli/auth/cisco_nla.py with
black -l120
- nscli permissions (by Joe Wesch)
Refactored to use consolidated CTK API calls instead of 1 per device
Moved Valkyrie calls to multiprocessing for much faster device permission turn around
v3.7.0 (released 2018-10-15)¶
- nscli maint port-migrate bug fix (by James Finnegan)
Fixed an issue with auto detection for migration ports not generating config
Table issues for auto detection fixed
Auto Detection is now much faster than before
Other minor output formatting fixed
- nscli maint migrate-ucs (by Sergio Pereira)
migrate ucs file from existing device to a new device f5 Parallel migrations
- nscli maint qc f5 –single-ha (by Jason Wright)
qc steps for f5 single to ha parallel migrations
- Refactor of nscli maint updates (by Sergio Pereira)
Uses librack to add ticket comments
Fixes the following Bug #NSCLIMAINT-139
Moved plugin under maintenance folder
- nscli maint qc decom –lb (by Shani Munir)
qc steps for decommission loadbalancers
- nscli ssh ribbon update (by Zach Brooks)
Prints a warning to the screen with devices with the change control sku, similar to freeze sku
- nscli swip (by James Finnegan)
Can create/modify/remove/lookup arin swip information.
It utilizes the ARIN Rest API to update arin information
Can use simple flags for prompted swip information
‘–simple’ can be used to paste one or more ARIN Simple forms to mass update ARIN information
- nscli f5 ssl_audit (by Pedro Ortale)
Updated the Mongo-NDAPI query to consider both Online/Complete and Migration Server
v3.6.0 (released 2018-09-17)¶
- nscli maint port-audit (by Joe Wesch)
Span session audit now detects matching VLAN sources from the provided devices
Added –full flag which will show speed/duplex and native vlan (update by James Finnegan)_
- nscli asa portalcomments (by Sergio Pereira)
Copy ASA Portal Firewall Comments
- nscli maint updates (by Sergio Pereira)
nscli maint sweep has been updated to use fping instead of sudo nmap #1508
- nscli maint port-migrate (by James Finnegan)
Will print migration ports for devices
Can provide a manual port-map or provide device/ticket and let it auto-detect migration ports
You can also override vlans in case vlans are changing as well
Several options present, please review -h for more information
- nscli upgrade (by Micah Culpepper)
There was a bug in the version-checking logic in previous versions. If you consistently get the error message: “Upgrade check failed. The nscli code mirror may not be reachable.” then
nscli upgradewon’t work for you, and you’ll need to do a clean install to fix the error.
- homebrew (by Micah Culpepper)
There is now a homebrew formula for nscli
This is still in an experiemental state and doesn’t fully work yet.
- Mac users will be able to install nscli by running:
brew tap rax/nscli git@github.rackspace.com:nsi/nscli
brew update
brew install nscli
This is related to our efforts to use system-native package managers wherever possible instead of relying on our home-brewed
install.shscript.
v3.5.1 (released 2018-08-17)¶
- nscli maint port-audit addition (by Joe Wesch)
Now prints a warning if any new firewalls or load balancers have FastEthernet ports (excluding DRAC)
- nscli core (by Micah Culpepper and Pedro Ortale)
Fixed a bug that made
nscli resetalways crashFixed a bug that made
nscli add_devices_to_ticketalways crashMade progress on a bug that caused nscli upgrade to fail for some users, although further investigations are still pending.
v3.5.0 (released 2018-08-15)¶
- nscli <asa/adx/f5/juniper/netscaler> sanitize (by Joe Wesch)
You can now request a sanitized config in nscli instead of having to go through the customer portal
Using the
pull <device_id>option will pull the current configThe module also supports sanitizing a raw config using the
inputflagInput can be paste into terminal or with a file with
-i <path_to_file>Both options support output to file or desktop via the
-o <path_to_folder>and-dflags respectively #729
- nscli maint escalation (by Sergio Pereira)
Adds a private comment to ticket with approver SSO and reason of escalation
Moves ticket queue to Global NetSec Maintenance
Updates ticket subject: Appends !!![DUE: YYYY.MMDD] at the beginning of subject
- DEDOS port (by Pedro Ortale)
Originally writen by Alejandro Ortuno, DEDOS is a tool that allows a better visualization from the ASA connection table.
- This tool is active in the bastions but for convenience, now ported to NSCLI (Issue # 747)
Top offenders by Source IP, Destination IP, Destination Port
Top Talkers
Top connections - Idle Timer
Top connection flags
It is possible to extract live data by specifying
-d `` (device id) or read the conn table from a text file ``-f.
- nscli core (by Micah Culpepper)
NSCLI’s LDAP queries now point to ldaps://ad.auth.rackspace.com instead of ldaps://auth.edir.rackspace.com
The LDAP query strings have been updated for the new AD model
- nscli core (by John Dowling and Pedro Ortale)
All plugins were migrated to the new structure.
The majority of the imports were changed to provide cleaner namespace.
Plugins parsers are now sorted alphabetically.
- Generic Parallel Runner Wrapper (by Pedro Ortale)
Shared class to used in plugins that requires parallelism.
- nscli zenoss-download (by Miroslaw Pabian)
Downloads graphs from zenoss and creates pdf for easy sharing, documentation: https://raxglobal.sharepoint.com/sites/OneWiki-NetworkSecurity/SitePages/Zenoss-downloader.aspx
v3.4.0 (released 2018-07-16)¶
- nscli maint freeze additions (by Sergio Pereira)
Added an option to post private comment instead of default public ticket update
- nscli maint bugs (by GTS Maintenance Team)
nscli maint sweep: Fixed bug for API call for edge F5 devices.
nscli maint cab_prep: fixed bug to reference correct jinja template path
- nscli maint (by Duane Herman)
Cyclade request template.
- nscli releases (by Micah Culpepper)
mirror.nsi.rackspace.com is being decommissioned. Here’s what’s happening to the nscli files that were hosted there:
nscli-<version>.tar.gzThese files have been on artifactory since v2.9.0. We now redirect clients to artifactory.
install.shThis file has been moved to intra.mirror.rackspace.com, and we now redirect clients there.
versions/nscliThis file has been moved to intra.mirror.rackspace.com, and we now redirect clients there. Also, the existence of this file is no longer necessary as of nscli v3.3.0, and only exists to allow legacy clients to upgrade automatically. It will be taken down at a future date to be determined.
nscli upgradeshould still work as intended with these changes, for clients as old as v2.2.0 (although clients that old may fail to upgrade for other, existing, reasons). The process involves Python and curl components, both of which have been tested with the new redirects.We have updated the official docs to refer to the new URL. If you have any notes or wiki pages that reference mirror.nsi.rackspace.com, please correct them.
intra.mirror.rackspace.com is only accessible from Rackspace 10. IPs. mirror.nsi.rackspace.com had similar rules in place. If you cannot access the intra mirror, please make sure you are plugged in to an office network and/or connected to an offqqice VPN (AnyConnect or AppGate), and try again.
- nscli core (by Micah Culpepper)
We now log the name of the user’s shell program to NewRelic. This will help drive the development of new features.
Added notes to the Bugs and Installation documents: users on Python 2 should run nscli via an alias in order to avoid encoding-related errors.
- nscli maint qc f5 (by GTS Maintenance Team)
F5 single to single parallel migration qc template
- nscli core (by Joe Wesch)
Removed
core_token_max_age_secondsandidentity_token_expiration_offsetas user configurable settings. These settings are now hardcoded to have a 10 hour shelf life for CORE tokens and 1 hour before expiration for identity tokens. #1356Added
preferred_browsersto settings file. You can now change the order or remove browsers to check for a CORE token. Currently supported browsers are firefox and chrome. #1351
- nscli upgrade (by Micah Culpepper)
nscli upgradenow accepts arguments. You can specify the version you want to upgrade (or downgrade) to.See the command-line help and man page for details.
v3.3.2 (released 2018-06-21)¶
- nscli core (by Micah Culpepper)
nscli resetandnscli settingsno longer check for upgradesFixed a bug where NLA login timestamps were not stored properly, causing this message to appear: “ERROR - Could not parse timestamp from keyring. Assuming it is expired”
Fix a bug where timestamps on secrets were not properly set, which caused NSCLI to always believe that identity tokens were expired, and to re-obtain them each time they were needed.
The install script will now install Xcode Command Line Tools for Mac users who are missing it, prior to installing Homebrew.
Fixed a bug where failure to symlink a man page would cause the installation script to report failure before attempting workarounds.
v3.3.1 (released 2018-06-20)¶
- nscli core (by Joe Wesch)
Moved all log messages about gathering CORE token from browsers to debug unless it was unsuccessful
- nscli add_devices_to_ticket (by Micah Culpepper)
Fixed bug that caused the plugin to crash on Python 3 #1346
- nscli core (by Micah Culpepper)
Fixed credential-storage bug that made nscli re-prompt for credentials when existing credentials were still valid #1348
- nscli juniper pt (by Pedro Ortale)
Fixed a bug that caused nscli juniper pt (and potentially other plugins) to crash when invoked. #1343
- nscli cfgstation (by Micah Culpepper)
Fixed a bug that caused nscli cfgstation (and some other plugins) to crash when invoked. #1344
v3.3.0 (released 2018-06-15)¶
- nscli ssh (by Joe Wesch)
Prints watchlist information when logging into a network device of an account with an active Siphon watchlist
- Log file change (by Joe Wesch)
nscli now by default only logs lines that are sent back from a remote ssh session (instead of every character sent and received). Only text that is echoed will be logged this way; this should eliminate logging credentials entered at silent prompts.
This should also make log files much easier to read as they will only contain the commands that you actually entered and not characters you backspaced over.
Note: Credentials sent in clear text as part of commands will still be logged as the command is echoed
Using
nscli --debugwill change logging back to the original method for troubleshooting if necessary
- Provisioning Tools (by Matthew Manning)
NAT is configured but no translation is showing in nscli qcip output IMPLDEV-119
netdevice.adx not parsing routes correctly on some devices fixed IMPLDEV-143
Fixed error detection in provisioning.api.dcx.switchports IMPLDEV-152
Fixed error where certain Stand alone Brocades were detected as standby IMPLDEV-155
- Identity Token expiration change (by Joe Wesch)
nscli now uses the expiration date & time from the identity token API response instead of just 1 hour from creation
A typical key expires in ~17 hours
nscli will request a new key 1 hour before expiration to eliminate any race conditions
- nscli zsp unlock (by Joe Wesch)
nscli now prints a warning when you have requested a ZSP unlock for a device that has the change freeze sku
- nscli core (by Joe Wesch)
nscli now uses Rackspace Artifactory to report version upgrades
- nscli core (by Micah Culpepper)
Appstats logging will now report “Netsec” as the OS.
Updated ATL61 region to default to DFW bastions, gateways, etc.
Fixed a minor bug where
nscli resetwould prompt you for your SSO username.nscli resetwill now delete nscli’sconfig.db, meaning it can now fix a few edge-case crashes.Added a
--pkgflag toinstall.sh, so it is possible to tell the install script which version of NSCLI you would like (or pass other instructions to pip).Token.troubleshoot_fire_engine_auth- updated help message to let users know their account might be locked.Fixed a bug with
Token.ldap_rolecachewhere NSCLI would save an incomplete list of group names if any group name contained non-ascii characters.Added documentation for the nscli settings file. See
man 5 nscli_settings.Reorganized plugin code locations - moved as much business logic as possible out of
nscli.__main__Fixed missing graph. Interested parties can run
make requirement_checkto view a graph of NSCLI’s dependencies.Added documentation on nscli’s interaction with
ssh-agent. See https://pages.github.rackspace.com/nsi/nscli/Installation.html#ssh-keysAdded command-line help for nscli’s
Makefile
- nscli core (by Pedro Ortale)
Custom Bastion Gateway support for netdevices SSH (Balabit).
NSCLI will now automatically use the metrobank balabit instead of the support balabit if you’re logging into a metrobank device.
- SRX packet tracer (by Pedro Ortale)
Fixed the unicode issue when using python 3. Issue #1298
- nscli ssh -s (by James Finnegan)
Added new optional parameters
‘–scp_method’ specify local to remote (1) remote to local (2)
‘–src_file’ specify source file
‘–dest_file’ specify destination file
- nscli ssh (by James Kerr)
Upon login to a brocade, we now automatically run “show ip vrrp-extended brief”
v3.2.1 (released 2018-05-25)¶
- nscli provisioning (by Micah Culpepper)
Fixed ssl error: updated the hostname on DCX API calls to refer to the new environment with good SSL certs.
- nscli cfgstation (by Micah Culpepper)
Fixed encoding crash
v3.2.0 (released 2018-05-24)¶
- nscli maint asa bug fix (by Joe Wesch)
Fixed an off-by-one error when converting access ports to trunks
- nscli mirrorupload
Removed logic for multiple file uploads since it was not working right
- Provisioning Tools (by Matthew Manning)
Crash fix when banner is in the wrong type IMPLDEV-142
- DCX API HTTPS verification re-enabled (by Joe Wesch)
Re-enabled https verification for various calls to dcx.api.rackspace.com in nscli as they are now using a public CA
- nscli maint freeze additions (by Sergio Pereira)
Checks if config freeze sku is configured
Removes config freeze from DMGs
If ASA, removes config freeze from motd-banner
- Maintenance Team (by Sergio Pereira)
- nscli maint adx major version version 2.2
- nscli maint parallel version version 2.5
- nscli ssh NetScaler profile (by Stephen Shambeau)
added support for NetScalers to nscli ssh command
- nscli maint port-audit (by Joe Wesch)
Added logic to detect switchport variances between migration devices and their assumed replacements
v3.1.1 (released 2018-05-16)¶
- nscli –version (by Micah Culpepper)
Fixed a cosmetic bug that flagged acceptable versions of Python 3 as unacceptable.
- nscli.auth.ns_auth.Token (by Stephen Shambeau)
Fixed a bug where attempting to gather a CORE token from Chrome on Python 3 would cause a crash.
- nscli acs search (by Micah Culpepper)
Moved the ACS log cache directory under the nscli cache directory
- nscli acs search (by Stephen Shambeau)
Added an example to the cli help and improved parsing
- nscli maint port-audit (by Joe Wesch)
Prints partial table instead of crashing when it is missing information
v3.1.0 (released 2018-05-15)¶
- nscli ssh (by Stephen Shambeau)
Bugfix for #375. Fixed ssh to ASA devices not checking ‘-d’ flag. Will now attempt to connect to DRAC IP on ASAs if flag is set and ASA has DRAC IP assigned.
- Provisioning Tools (by Matthew Manning)
Orange Sticker ASAs now work with QC scripts! #1054 IMPLDEV-61
Brocade ADX Support added for QCIP IMPLDEV-37
Reorganized
nscli adxtonscli adx scripts. Addednscli adx qcipIMPLDEV-66Configure NATs now shows banner messages before asking to perform configuration changes IMPLDEV-65
Use config_db module to obtain balabit info for netdevice modules IMPLDEV-63
Fixed bug in add environment command that prevents the DCX API call from functioning correctly IMPLDEV-73
NDPQC (Network Device Provisioning Quality Check) Initial code release - This tool requires access to FireKick - IMPLDEV-88 - IMPLDEV-114
- Refactor nscli maint protected_ips (by Sergio Pereira)
Pxssh replaced by ndapi
- Refactor parallel_asa_single_ha.jinja2 (by Sergio Pereira)
Renamed paralleL_asa_single_ha.jinja2 to parallel_asa_single_ha.jinja2. Linux is case sensitive
- nscli tokens (by Sergio Pereira)
Print identity or core Tokens
- nscli projects (by Sergio Pereira)
Added support team
- nscli maint mrt (by Sergio Pereira)
Updated methods plugin to use core.set_queue and core.set_status
- nscli maint parallel (by GTS Maintenance Team)
Updated RCv2 instructions to use an RFC 5737 IP address.
- nscli maint updates (by Sergio Pereira)
Converted maintenance plugins to the new plugin structure
Created maintenance python folder in order to re arrange nscli plugins structure. Refer to nscli issue 1166
- nscli mirrorupload (by Zach Brooks)
Created plugin to simplify file uploads to the netsec mirrors
- nscli maint freeze (by Sergio Pereira)
nscli maint banner has been changed to nscli maint freeze
Updated plugin in order to add/remove config freeze sku
- nscli asa console (by Joe Wesch)
Deprecated and split into separate modules (see below)
- nscli asa recover (by Joe Wesch)
Refactored from ‘nscli asa console -down’
Dedicated module for printing out a config for recovering firewalls
Detects HA and can replicate failover settings if both need replaced
SNMP user is now at bottom of output
- nscli maint asa (by Joe Wesch)
Refactored from ‘nscli asa console -c -n’
Dedicated module for ASA platform migrations
Added single to HA detection and logic
SNMP user is now at bottom of output
- nscli f5 certuploader (by Nick Roberts)
Change the way I’m validating if the cert/key pair is available for use. This should speed of the check, and avoid pexpect timeout failures.
- Update for devices with 7 digits (by Joe Wesch)
Searched nscli for all places where we were validating device number lengths and changed them all to 3-7 digits
- nscli ssh (by Joe Wesch)
Added –active option to always log into the active unit of an HA pair (currently supports ASA, F5 & ADX)
- Python 3 (by Micah Culpepper)
We support Python 3 version 3.5+. The majority of our users are on Mac, and over 90% of the remaining users are on Ubuntu 16. Version 3.5 was chosen for compatibility with Ubuntu 16.04.
Updated package metadata, docs, and the installer script accordingly.
nscli upgradeshould now work for Python 3 users.These are the priorities the installer script uses for picking a Python interpreter on your system:
Re-use the existing interpreter, if upgrading from a previous version of nscli and the interpreter is still acceptable.
Use any acceptable version of Python already installed on your system (the order of which is determined by their order in your
$PATH).Install Python 3.
- nscli ssh (by Micah Culpepper)
Bugfix: re-enabled local logging of interactive ssh sessions under Python 3
Add: A status ribbon is now displayed on login to help you keep track of which device you’re on.
v3.0.2 (release 2018-04-26)¶
keyring (by Micah Culpepper) - Updated keyring version dependency to overcome a bug in keyring - See https://github.rackspace.com/NSI/nscli/issues/1185 and https://github.com/jaraco/keyring/pull/322
v3.0.1 (release 2018-04-25)¶
secretstorage (by Micah Culpepper) - Updated keyring version dependency to overcome a dependency conflict on Linux
unicode (by Micah Culpepper) - Fixed a bug in ns_ssh that caused an improper crash when encountering unexpected symbols on a net device.
v3.0.0 (release 2018-04-16)¶
- Python 3 (by Micah Culpepper, with help from lots of folks)
nscli is now compatible with Python 3.
Python 3 offers many enhancements over Python 2, both in terms of performance and new features. With the official end of life for Python 2 fast approaching, many third-party libraries that nscli uses have already begun to stop updating their Python 2 code. Additionally, some folks inside Rackspace have expressed interest in contributing to nscli, but only work in Python 3, and have been held back by our use of Python 2. For these reasons and more, the time has come to make the switch.
nscli still supports Python 2, and will be compatible with both 2 and 3 for the rest of 2018, to allow for a graceful transition period. We are planning to cease Python 2 support in January 2019, a year before the official end of life date for Python 2.
To support this change, many internal code changes have been made. The goal of these changes is to cause our code to behave the same under both versions of Python. This is a somewhat major change in terms of number of lines changed, but the changes were mostly done with automation following recommended best practices for Py2/3 compatibility. Any behavioral differences between Python 2 nscli and Python 3 nscli are bugs.
While nscli under Python 3 is officially supported, it is still quite new, and there are bound to be unforeseen problems. If any arise, please reach out to the nscli developers for support (see Contact).
Local logging of interactive ssh sessions is currently disabled under Python 3 due to an outstanding bug.
The nscli install/upgrade script still installs a Python 2 virtual environment. We will modify this script to prefer Python 3 at a future date to be determined, pending the remediation of the above bug and any other bugs (to be discovered) that affect core nscli functionality. This means that most users will continue to run nscli under a Python 2 interpreter for now.
- nscli asa console (by Joe Wesch)
Pulls known SNMPv3 user auth/priv from PasswordSafe.
- nscli maint qc asa -single (by GTS Maintenance Team)
Prints qc steps for single to single ASA parallel migrations
- nscli maint qc asa -single-ha (by GTS Maintenance Team)
Prints qc steps for single to HA ASA parallel migrations
- Provisioning Tools (by Matthew Manning)
Bug fix for incorrect traffic-group being used on F5 NAT creation IMPLDEV-49
Created the Assign command structure IMPLDEV-24
Moved
nscli provisioning add vlan_to_devicestonscli provisioning assign vlanIMPLDEV-10Created the Unassign command structure IMPLDEV-25
Created API wrapper to call DCX API
devices/<device>/unassign_exnet_vlanIMPLDEV-53Created new command
nscli provisioning unassign vlansIMPLDEV-52Bug fix for error message parsing on adding a new environment IMPLDEV-55
nscli provisioning assign vlanis nownscli provisioning assign vlansas it now accepts a range of VLANs instead of a single one IMPLDEV-56nscli provisioning assign vlansnow accepts--switchand--portIMPLDEV-56Bug fix for creating new VLANs in EM due to DCX API 2.0 IMPLDEV-60
- F5 SSL Cert Expiration reports (by Pedro Ortale)
nscli f5 ssl_audit #ACCOUNT_NUMBER
Audit F5 SSL certificates from the terminal
Parse the output using CSV, JSON or PrettyTable (Default)
Display SSL profiles not associated to virtual services
Include profile association per virtual services
- nscli f5 certuploader (by Nick Roberts)
Bug fix - Removed coloring from ProgressBar during SCP Phase of script, started crashing script due to a new issue with ProgressBar package I’m assuming. - Thanks to Caleb Delbrugge and Joe Wesch for bug submission
Bug fix - Removed indexing from SSLTool API output, looks like the return data was modified slightly when was causing an IndexError to crash the script
- MAC Address Info Tool (by Matthew Manning)
Fixed url encoding of odd Unipede parameters causing failure
- Migration tooling (by NetSec DC Migrations)
- nscli migrations validate <db> <device_list>
Validate source destination switchport configs
- nscli migrations finalize_migration <device>
Finalize migration switchport configs
- nscli migrations finalize_current <device>
Finalize current switchport configs
- nscli migrations startup <device>
Prep startup configs for DC migration shutdowns
- nscli migrations update_waf <device>
Re-IP ServiceNet IP/Gateways for WAF using migration IPs
- nscli migrations f5_trust <device>
Rebuild device trust between two F5s +v11
- nscli migrations info <device>
Detailed information from the migrations DB about a given device
- nscli migrations reserve_ip <device>
Reserve a migration IP address in DCX tools (sets reserve flag)
- nscli migrations refresh <type> <account or device>
Refresh data in the Migrations Database
- nscli migrations status <device>
Get current port status and reachablility for a device
- nscli migrations mirror_ports <device>
Gather span-sessions for a given device/account/move-group
- nscli migrations zones <device or ENV>
Lookup zones relationships of all migration up-links
- nscli maint times (by GTS Maintenance Team)
Prints standard maintenance times
Maintenance times updated in scripts
- nscli maint port-audit improvement (by Sergio Pereira)
Prints a warning message if FastEthernet port has been assigned to an ASA X series firewall
- nscli nla (by Micah Culpepper)
Updated LON3 vpn range to include 212.64.133.96/29; these IPs are assumed to not need NLA auth.
- infrastructure.json (by Micah Culpepper)
Defined infrastructure facts for DEN60 and ATL61
Updated LON3 vpn range to include 212.64.133.96/29; these IPs are assumed to not need NLA auth.
- nscli info & nscli switch (by Joe Wesch)
No longer assumes switchports are in the same data center as the device
- nscli maint minor/major f5 (by Sergio Pereira)
Obtains the latest F5 Rackspace oficial safe harbor version and hotfix from torq
- nscli core (by Micah Culpepper)
When debugging is on (i.e.
nscli --debug <command>), nscli will now report any errors that occur while attempting to log usage to appstats or newrelic.
- nscli maint parallel (by Sergio Pereira)
Bug Fix: Missing a space in interface command for NetDef network devices.
Removed extra returns
- nscli maint port-audit (by Joe Wesch)
Major refactor using multiprocessing to reduce run time by ~65%
- nscli goast (fix by Matthew Manning)
Corrected detection of successful AutoQC request
v2.10.3 (release 2018-03-29)¶
- NSPYLIB and TLS
NSPYLIB uses the
urllib2library to make API calls. An unfortunate implementation detail means that if nspylib needs to downgrade a connection to TLS 1.0, then it will continue to only support TLS 1.0 as long as it’s in memory. This resulted in an elusive bug where direct API calls would succeed, but API calls to an endpoint that does not support TLS 1.0 made after a call to an endpoint that only supports 1.0 would cause the second call to fail. Also, the determination of which endpoints accept TLS 1.0 was hard-coded, not negotiated.The above bug, which has been in nspylib for a long time, began to cause trouble when we disabled TLS 1.0 and 1.1 support on the *.nsi.rackspace.com VIPs. This caused some
nscli maintplugins to fail.This release doesn’t change any nscli code, but changes nscli’s dependencies to use a patched version of nspylib.
NSPYLIB itself has undergone a major re-write, and we plan to upgrade to the new major version in the next regularly-scheduled release.
v2.10.2 (release 2018-03-21)¶
- Provisioning Tools (by Matthew Manning)
Errors on joining devices to ExNet VLANs causes error on reading the error IMPLDEV-48
- Unicode (by Micah Culpepper)
Fixes #1029: Can’t log into devices with unicode in the DMGs
nscli now supports unicode, as a policy
nscli will no longer hide unicode encoding errors from the user
updated the docs to add guidance for users on how to configure their terminal to support unicode
added a warning so that users will know if their terminal is misconfigured prior to seeing a unicode error
- Setuptools (by Micah Culpepper)
Fixed a bug where nscli would not run if it was installed after March 17th 2018
- nscli upgrade (by Micah Culpepper)
nscli upgrade no longer tries to talk you out of upgrading
v2.10.1 (release 2018-03-16)¶
v2.10.0 (released 2018-03-15)¶
- Provisioning Tools (by Matthew Manning)
Standalone SRX without HA config now reports as primary/standalone device IMPLDEV-15
Now forces settings.ini to be updated with correct defaul Balabit type and Region DC IMPLDEV-42
Updated GET/POST/PUT request inputs for DCX IMPLDEV-43 (DCX API 2.0 Prep)
Fixed mutable default args IMPLDEV-34 (Python 3 Prep)
Comparing Administrative Distance is now correct IMPLDEV-44
EIGRP dynamic routes now understood on network devices IMPLDEV-41
OSPF dynamic routes now understood on network devices IMPLDEV-45
Corrected spacing in kir_validate IMPLDEV-46
- nscli projects update (by Sergio Pereira)
Global NetDef Maintenance queue added into nscli projects
- nscli maint mrt update (by Sergio Pereira)
Added additional flags for Global NetDef Maintenance and Global NetSec Maintenance queues compatibility
- nscli maint protected_ips (by Sergio Pereira)
Get pool members from an F5, using a list of private IPs, helpful to move WAF behind LB
- nscli maint cab_prep (by Duane Herman)
Cab Prep Template
- nscli core (by Micah Culpepper)
Added support for SYD30
The nscli webpage is now built on the master branch and pushed up to the gh-pages branch via
make webpage_upload. This makes re-deploying the website easier, and it also provides a preview here.Unset executable bit on files that should not be directly executed. The only file that should be directly executable is
nscli/__main__.py, and even then, I’d recommend runningpython -m nsclior thenscliconsole script instead of./__main__.py.Deleted
nscli/plugins/chri6215/shared/core_token.py. Use the nscli token object to get a CORE token.Un-vendored
pick. It is now listed as a dependency.
- Python 3 compatibility progress (by Micah Culpepper)
All new code now required to work under Python 2.7 and Python 3.6.
Replaced
urllib2uses withrequests.Implemented many changes to begin making the code forwards-compatible with Python 3. These changes should not affect the code’s behavior in any noticeable way. We do not support Python 3 installations yet, but we are planning to do so starting with the April release.
- nscli history (by Micah Culpepper)
Seems like it was broken before? Anyway, it’s working now. Also, if you run
nscli historywithout any username, it now defaults to your username.
- TLS 1.2 (by Micah Culpepper)
CORE (and other systems) will be switching to TLS 1.2 soon, and if nscli’s Python interpreter can’t handle TLS 1.2 connections, the nscli installation will be useless.
There does not appear to be a way to upgrade a Python interpreter’s SSL capabilities, so a new Python installation will be needed if the current one doesn’t support TLS 1.2. We want to identify these issues during nscli installation, as that is the best time to also upgrade Python.
The nscli installer script now tests connectivity to https://ssltool.rackspace.com, which only uses TLS 1.2. If this check fails, then the interpreter will be passed over, just as if its Python version was insufficient. This will prompt the user to install/upgrade Python, and on our most commonly-supported platforms, it will also perform the upgrade/installation for the user.
v2.9.0 (released 2018-02-15)¶
- Provisioning Tools (by Matthew Manning)
- Bug Fixes:
- Now using LDAP Roles stored in token, instead of fetching them from Identity:
- nscli maint prep (by GTS Maintenance Team)
Prints generic maintenance prep template
- nscli permissions (by Joe Wesch)
Fixed call to find ALL account admins
- nscli asa/f5 md5 (by Joe Wesch)
Added logic to verify against known NetSec files in TORQ
- nscli f5 certuploader (by Nick Roberts)
Correct a typo in the creation of clientssl-secure-waf-pre-v11.5 to clientssl-secure-waf-pre-v11-5
Thanks to Caleb Delbrugge for the bug submission!
- nscli core (by Micah Culpepper)
nscli releases are now published on artifacts.rackspace.net. The installation documents and install script have been updated.
install.shnow points virtual environments’ pip indices to artifacts.rackspace.net.because nspylib has moved to artifactory too,
--process-dependency-linksis no longer needed when pip installing nscliDeprecated “dataCenter” attribute on nscli info responses. Use “dc” instead.
nscli settingsshould now more reliably open your settings file intead of complainingAdded librack as a dependency, see https://github.rackspace.com/IAW/iawl/tree/master/librack and added a token sub-attribute to use for librack auth.
Added ACS servers to config_db
Added netbast/cbast/acs definitions for ATL region
Thanks to Jeremy Church for pointing out a race condition in the Firefox token-gathering code. It has been fixed.
Solved “AttributeError: ‘Token’ object has no attribute ‘get_tacacs’” #858
When nscli starts up, it generates an ssh key if you don’t have one. Fixed a bug where it would sometimes overwrite private keys if a public key did not already exist.
Fixed timestamp formatting on switch logs to match our new standard. Thanks, Caleb Delbrugge for finding this bug!
- nscli tshoot_access (by Micah Culpepper)
This plugin helps you troubleshoot ASAs that the NSI APIs can’t reach.
- nscli info -p (by Brett Lykins)
Fixed “spped” error
v2.8.3 (released 2018-01-18)¶
- nscli maint qc generic (by GTS Maintenance Team)
Prints generic QC template
- NSCLI core functionality (by Micah Culpepper)
If there is an NSCLI upgrade available, NSCLI asks if you want to upgrade now. Now, if you answer “no”, you will not be asked again for at least twelve hours. You will still be reminded that a new version is available on each run.
Bugfix for “nscli –version” always showing “✗” next to the version number.
- nscli maint f5_major (by Sergio Pereira)
Checks platform and installs safe version 12.1.3 with the exception of the F5 1600 and F5 3600
- nscli maint f5_minor (by Sergio Pereira)
Checks platform and installs safe version 12.1.3 with the exception of the F5 1600 and F5 3600
- Provisioning Tools (by Matthew Manning)
- provisioning.info.qcip
fixed support for public IPs
v2.8.2 (released 2018-01-16)¶
- nscli torq backup (by Micah Culpepper)
Removed fake progress bar. Sorry kids, there is no Santa. Please wait patiently for your backups to complete.
Solves #537
- nscli nla (by Brett Lykins)
Added validation to determine if you’re on the Rackspace office VPN, and if you are, we don’t attempt NLA.
NLA is not needed to reach the Balabit, CBAST, DTS, or RDP Gateways if you’re on the office VPN.
It will still default to NLA if you’re on the wired office network, or we can’t determine your public IP address.
Rewrote some existing logic to use
NLASession.validateinstead ofNLASession.check_status_from_gateway, which will improve performance, and in some cases, reduce the frequency of RSA token prompts.
- nscli netcraft (by Micah Culpepper)
--scantypeis now a required argument.Helps with #752
- nscli info (by Micah Culpepper)
Removed broken commands from the CLI options:
--routes,--config, and--ipfinder
- nscli switch (by Micah Culpepper)
Removed broken commands from the CLI options:
--wildcardand--netmaskDefined SYD3 as a datacenter, so you can now get to SYD3 office switches
- nscli logs (by Micah Culpepper)
Changed filename timestamp format to ISO8601 basic, eliminating the special characters that are disallowed on Windows. This means you can now back up your nscli logs to your Rackspace OneDrive account if desired.
Solves #330
- nscli version (by Micah Culpepper)
nscli --versionnow shows you more information about your nscli installation, which may be helpful in troubleshooting. Example:$ nscli --version ✓ nscli version: 2.8.2 ✓ nspylib version: 1.31.4 ✓ python version: 2.7.14 ✓ config file: /Users/mica7786/nscli/.config/nscli/settings.ini -> /Users/mica7786/.config/nscli/nscli/settings.ini ✓ log directory: /Users/mica7786/nscli/.config/nscli/nscli-logs -> /Users/mica7786/.config/nscli/nscli/nscli-logs ✓ code location: /Users/mica7786/nscli/lib/python2.7/site-packages/nscli ✓ python interpreter: /Users/mica7786/nscli/bin/python2.7 ✓ master interpreter: /usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/bin/python2.7
if any lines in this output show “✗” instead of “✓”, it could indicate a problem with your nscli installation.
- nscli ssltool (by Brett Lykins)
Fixed to Identity Token instead of Core Token, Solves #538
Migrated SSLTool plugin to utilize the shiny new Plugin Architecture
Greatly simplified the code to utilize argparse rather than custom functions for defaults
Added pretty-printed output of SSLTool spew. Use -r or –raw for legacy behavior.
- NSCLI core functionality (by Brett Lykins)
Created a shared library/module to contain common reusable code pieces
Added pretty-text formatting functions into shared library - pretty_text.py. Example:
# Import the module from nscli.shared, give it a meaningful name. from nscli.shared import pretty_text as t # Use it on strings alone: t.info("This text is swanky!") # Use it inside other functions such as print or with "{0}".format(blah) plain_text = "BORING!" print(t.heading("Bland text is now FANCY! This text too: {0}").format(plain_text)) # It even works in strings being fed to the logging library! err_msg = "BAD_THINGS.gif" logger.error(t.failure("OH NOES! %s took a dump!"), err_msg)- Moved colorization logic method from info into pretty_text.py in shared.
- color_state() takes three arguments and based on the content of two lists of strings, it will colorize as follows:
A string you wish to inspect/colorize
A list of strings that are “successful”, and will be colorized with SUCCESSFUL (green)
A list of strings that are “warning”, and will be colorized with WARNING (yellow)
Any unmatched strings (not in either list) are colorized as FAILURE (red).
Example:
# Import the pretty_text lib: from nscli.shared import pretty_text as t # Use it! print("Results: {0}".format(t.color_state(port["duplex"], ["full", "auto"], [])))
Moved JSON printing to shared library
Added millisecond resolution to debug logs
- nscli switch (by Brett Lykins)
Added colorized text output to
nscli infooutput.
- nscli info (by Brett Lykins)
Added colorized text output to
nscli switchoutput.
- Provisioning Tools (by Matthew Manning)
- provisioning.netdevice.f5/provisioning.info.qcip/provisioning.configure.nats
Route domains now supported!
MCPD output sync issue detection
- NSCLI core functionality (by Micah Culpepper)
User LDAP roles (groupMembership) are now available via
nscli.ns_auth.Token().ldap_roles. This attribute will obtain roles from the identity API (and an identity token while it’s at it), or from eDir. Roles are cached in a flat file inside the nscli cache directory with permissions set to 600. NSCLI does not expire this file, since LDAP roles don’t change often. You can force NSCLI to re-acquire roles by deleting the file manually or vianscli reset. At this time, the roles aren’t used for anything in particular, but may be used by future code. For example, if you try to use an nscli plugin that calls an API that requires certain permissions in LDAP, the plugin author could first check your LDAP roles to see if you might be authorized before attempting the API call.Added a “use_color” setting to the config file, which defaults to
True. Change it to false to disable colorized output. Note: there may be some parts of NSCLI that do not yet respect this setting.Improved LDAP bind error handling in
nscli.auth.appstats_client. Some users were seeing mysterious messages about failed LDAP binding, but then NSCLI would move on to do what they asked. This is usually caused by a bad password, and NSCLI will now tell you so.Work has begun on a Jenkins CI/CD pipeline, so there are new supporting files under
nscli/scripts/. This does not affect end users at this time.Switched
install.shinterpreter back to/bin/shfrom/bin/bash; see #591. The invocations innscli upgradeand the installation docs still refer to bash, so we’ll need to migrate those at some point.Deprecated the ssh config-file generation that runs on NSCLI startup, as those files are not used by any code.
Added some documentation about IDE config for contributors.
v2.8.1 (released 2017-12-19)¶
- nscli iaw_api (by UK IAW)
Fix for f5 validation on single device where peer is not required.
v2.8.0 (released 2017-12-14)¶
- nscli f5 certuploader (by Nick Roberts)
Fixed CA Bundle name problem that would occur when apostrophes were present in the CN. We are now removing punctation from the CN to avoid this problem (Thanks to Joe Wesch for the submission of the bug)
Updated logic around providing a CA Bundle seperate from what the SSL Tool Provided. You can now specify another CA Bundle file existing on the f5, or paste in your own.
Updated syntax for fetching PEM CA bundle, this should resolve the problem of failed validation when names overlap and the correct bundle was already present
Fixed issue with 10code syntax for savings changes (Thanks to Joe Wesch for the submission of the bug)
Updated logic for f5s running 10code. We are now checking for HA properties in CORE prior to running config-sync. (Thanks to Joe Wesch for the submission of the bug)
Running clientssl profile validation from bash instead of TMSH to avoid terminal pager prompt. The pager prompt was throwing off the validation of the clientssl profile. (Thanks to Joe Wesch for the submission of the bug)
Updated wording on prompt when the user needs to provide a CA loaded on the f5
- nscli maint port-audit (by Joe Wesch)
Major rewrite using Unipede for speed
Added more audit checks
Added table printout
- nscli maint banner [DEVICE] (by Sergio Pereira)
Also updates DMGs to the Standby unit
- nscli maint parallel (by Sergio Pereira)
Removed QC section as steps are no longer valid
Interface range is not a valid command on newer switches. Updated script to use individual interfaces instead.
Fixed bug when going from single to HA with IDS and no cabinet move
- nscli asa ol (by Pedro Ortale)
Cisco ASA Object Lookup: Matches the given IPv4/IPv6 to the objects and object-group in all devices for the provided account.
You can use -p (–prefix) to match to a network block.
Specify -r (–report) to show all configured object/object-groups
- nscli permissions (by Joe Wesch)
Major rewrite using Valkyrie for speed
Fixed bug to ignore users no longer on the account but who still have device level permissions
- nscli maint minor [f5] (by Sergio Pereira)
Minor code upgrade from system version 12.1 HF1 to 12.1 HF2
- nscli maint mrt (by Sergio Pereira)
Fixed bug to change the status of ticket to “Waiting MRT”
- Provisioning Tools (by Matthew Manning)
- provisioning.netdevice.srx/provisioning.configure.nats bug fix
Now checks if the NAT rule name exists, changed the way NAT rules are named
- provisioning.netdevice.f5 bug fixes
Translations check now doesn’t fail if there are not both SNAT and NAT translations
Running-config search updated to use [:space:] instead of s due to grep version support
- provisioning.netdevice.netdevice bug fix
Using a local user on required the _get_creds function, but was attempting to call _set_creds, fixed
- provisioning.info.qcip bug fixes
Output was saying there is a translation configured twice, now says it only once
Now prevents doing a separate QC of each IP of a public/private IP pair, does only a single QC for both IPs
- nscli maint updates (by James Finnegan)
Generates maintenance prefabs and updates ticket
- nscli conkill (by James Finnegan)
Kills console sessions (uses ‘https://webconsole.rackspace.net/devices/kill’)
(optional) -c <console> -p <port>
- NSCLI Core (by Micah Culpepper)
requirements-dev.txtis gone; developers should now install nscli with thedevextra to get the same effect.make devenvwill take care of this for you.NSCLI handles CORE token expiration more intelligently now, meaning you should not have to enter your RSA token as frequently.
We’re logging to AppStats again. Like NewRelic logging, this is done in a separate process, so it shouldn’t slow down NSCLI too much. There are some new values in the config file used for AppStats logging. NSCLI will populate these values if they don’t exist.
There’s now an nscli cache folder that developers can use for storing any sort of temporary files. Just import
cache_dirfromnscli.config.NSCLI now checks for upgrades every other day instead of on each run.
- nscli maint minor [ADX] (by Sergio Pereira)
Removed server source-port-hash command of maintenance plan.
- nscli credentials (by Micah Culpepper)
Added a simple CLI utility to interact with NSCLI’s credential store. Get, set, and delete individual credentials.
When getting a credential, the credential itself is returned on stdout, and the timestamp at which the credential was set is returned on stderr.
v2.7.1 (released 2017-11-17)¶
- NSCLI bugfixes (by Micah Culpepper)
Fixed
AttributeError: 'Token' object has no attribute 'home'onnscli ssh -sFixed
AttributeError: 'Token' object has no attribute 'get_tacacs'duringnscli sshwhen the user’s password is wrong the first time.Fixed bug where nscli reset never reset anything.
v2.7.0 (released 2017-11-16)¶
- nscli maint banner [DEVICE] (by Sergio Pereira)
Appends config freeze banner to ASA Firewalls.
Updates Device Management Guidelines
- Provisioning Tools (by Matthew Manning)
Style changes (fancy stuff)
provisioning.info.devices expanded with verbosity flags
provisioning.batch.ip now properly handles no nat situations
- provisioning.configure.nats and provisioning.info.qcip added SRM support
Only completely working when interfaces are disabled on the ASA
provisioning.configure.nats now adds a description to NATs it prepares
- NSCLI SSH Netdevice APIs (by Matthew Manning)
- bug fixes in SRX
identifing security zones when a functional zone exists now works
expanded routing methods, fixed route lookup
added version gathering
added support for SRM builds (only fully working on ASAs by looking up disabled interfaces)
- NSCLI maint port-audit (beta) (by Joe Wesch)
Scans list of devices (or devices on a ticket) for use in span sessions
- nscli f5 certuploader (by Nick Roberts)
Fixed an parsing problem with initial login prompt causing the printed output to contain “Last Login…”
Declared apply_ca variable within __init__ to avoid errors
Fixed typo when selecting the IDS/WAF client-ssl profile clientssl-secure_ids_wafv11_5_only
- nscli f5 sip (by Pedro Ortale)
SIP (Search in Pool) is a simple tool to search for IP address in all F5 pools for all devices in the account.
The idea is to test the new plugin: Steward: Multi-threading helper for NDAPI.
It makes easier to develop further plugins that relies on NDAPI. Refer to nscli/plugins/pedr7260/steward/README.md
- nscli maint qc -adxmajor (by Sergio Pereira)
Standard QC steps for adx major code upgrades
- Major rewrite of
nscli.auth.ns_auth.Token(by Micah Culpepper) - This solves or obsoletes the following issues:
Token management #245
option to update pwsafe after manually entering pw #301
passwordsafe crash #378
nscli breaks wehn SS0 password is reset #447
Respect passwordsafe setting #464
Stop ^C while keyring is open #526
Stop tracking legacy TACACS credentials #545
settings.ini usepasswordsafe = False ignored #629
Passwords and tokens are now
@propertyattributes. Basically, instead oftoken.acs_password(et al.) always containing a real password, it contains the promise of a password. If and when a token consumer needs that password, the token will get it. Deferring this step saves some time, but most importantly, it helps NSCLI to not get hung up and crash trying to obtain credentials that are irrelevant to the current task.Tokens are no longer integrated with passwordsafe; credentials are stored in the local keyring only. Feel free to delete your NSCLI passwordsafe project. The corresponding option has been removed from the config file.
NSCLI keyring credential names now begin with the prefix
com.rackspace.nscli. Feel free to delete any existingcom.nsclicredentials.Credentials stored in the keyring under
com.rackspace.nsclihave a new format. If you had an external tool that was accessing NSCLI secrets directly from the keyring, you’ll need to update its parsing (although a better solution might be to just importTokenfrom nscli and use it to access your credentials.)NSCLI no longer has a concept of “do all the things once per day because stuff is expired”; now, each credential has its own expiration timer and will be re-acquired when needed. These timers only apply to ephemeral values like tokens; passwords that don’t often change will no longer artificially expire.
An unfortunate side-effect of the previous point is that some functions that ran once per day, like checking for available upgrades and ensuring the presence of certain config files, now happen on each NSCLI run. We should look in to mimicking some of the old behavior in the next release.
Introduced the new
nscli.auth.ns_auth.NSCLICredentialclass for storing credentials in the keyring. All sensitive credentials that NSCLI stores should be of this type.Tokenuses this class for credential storage now, as doesnscli.auth.cisco_nla.NLASession.Because of the previous point, all keyring interactions happen in a centralized place, so I was finally able to fix issue #526; interrupting NSCLI with
^Cwill now wait until the keyring is closed before aborting, thus preventing keyring file corruption.Tokenobjects no longer havevalidate_tokenorvalidate_identity_tokenmethods. Tokens are obtained when needed, and expired according to a configurable timer (default 1 hour). In the event that you really need to validate the token manually, you can simply get a token and set it as the relevant attribute. Example:from nscli.auth.ns_auth import Token token = Token() token.core_token = token.get_core_token() token.identity_token = token.get_identity_token()
Token expiration times are now in
settings.ini, so you can make your Core and Identity tokens expire more or less often than the default of one hour if you want.nscli resetnow only deletes your cached passwords, without the other weird side effects.The
nscli.__main__.authfunction is now gone. Creating aTokenobject will get you the same result.Implemented a Jinja template for generating SSH config files used in proxying
- Major rewrite of
- NSCLI core (by Micah Culpepper)
Fixed some error silencing logic, so now you’re less likely to see a pair of stack traces when you hit
^Cright after running NSCLI.Changed packaging format; using setup.cfg now for most settings. This means installation now requires setuptools version 30.3 or higher. The install script has been adjusted to account for this.
Moved
settings,SettingsParser, and friends to a new module,nscli.config. This frees upnscli.__init__, which now does little more than configure the logger. This means we can import the version number from here again instead of having to maintain it in two places.Lots of minor fixes
Removed
bastions.jsononce and for all. Usenscli.config_dbto obtain infrastructure facts.
- Documentation updates (by Micah Culpepper)
Docs are available at https://pages.github.rackspace.com/nsi/nscli and have been reformatted for clarity and consistency. Most documentation on GitHub has been removed. Fixed lots of formatting issues.
Updated Contributing guidelines. The setup process for folks who want to contribute makes more sense now.
- Housekeeping (by Brett Lykins)
Got rid of legacy Core xmlrpc calls
Implemented types and input checking in argument parsing
Created parent parsers to allow for easier argument parser creation
Implemented standard formatting/style guide for argument parsing
v2.6.2 (released 2017-10-19)¶
- nscli maint minor ADX (updates by Sergio Pereira)
- ADX 12.4 to 12.5 bug fixes
Updated steps to use SSH intead of TFTP
qc-ip replaced by nscli maint sweep
- nscli projects (by Micah Culpepper)
Fixed functionality broken by the 2.6.0 release.
- NSCLI core (by Micah Culpepper)
All module and package names are now PEP-8 compliant, or else.
Fixed a lot of documentation formatting errors. The nscli docs at https://pages.github.rackspace.com/nsi/nscli/ should be more legible now.
v2.6.1 (released 2017-10-13)¶
- NSCLI SSH Netdevice APIs (by Matthew Manning)
- netdevice.asa bug fixes
IPv6 in objects was breaking object parsing, fixed
running config search was finding unrelated objects, fixed
- nscli ssh -g (by Micah Culpepper)
Fixed functionality broken by the last release.
v2.6.0 (released 2017-10-13)¶
- F5 certuploader (by Nick Roberts)
Corrected an error that would generate when user opted not to upload the CA Bundle provided by the SSL TOOL
- Corrected error received when attempting to upload a certificate to 12code f5
(thanks to Caleb Delbrugge for reporting bug!)
- Corrected error received when attempting to upload a cert/key pair that SSLTOOL can’t pull a CA Bundle for
(thanks to Ronnie Ralston for reporting bug!)
- Provisioning Tools (by Matthew Manning)
bug fixes
organized provisioning.batch.ip and provisioning.config.nats code
provisioning.add.gateways and provisioning.remove.gateways fixed device tracking issue
provisioning.batch.ip updated command flags!
provisioning.config.nats and provisioning.info.qcip now call in a similar fashion.
provisioning.config.nats now configures DNS doctoring by default, updated command flags!
provisioning.config.nats bug fix for duplicating nat prep
provisioning.configure.nats now supports Juniper SRX
provisioning.info.qcip now has a more robust output updated command flags!
provisioning.info.qcip now supports Juniper SRX
- MAC Address Info Tool (by Matthew Manning)
updated code organization
changed output to return all switches mac address is found on
script now always returns its finding pythonically to be used in other scripts
- QCIP Deprecated (still works for now) (by Matthew Manning)
- Replacement Tools:
nscli asa qcip -h
nscli asa static_nats -h
nscli f5 qcip -h
nscli f5 static_nats -h
nscli juniper qcip -h
nscli juniper static_nats -h
- NSCLI core (by Micah Culpepper)
Updated nspylib requirement to new version
nscli cbast lon5now works. It did before, but now it does, too.nscli cfgstationnow uses hostnames instead of IPs to log in. It still prints IPs in the banner, though.nscli zsp unlocknow uses identity tokens for auth instead of core tokens.Fixed duplicate log messages
Deleted my switchcraft plugin. It hasn’t been working for some time.
nscli switchandnscli netbastnow chooses a network bastion based on theinfrastructure.jsonconfig file. This means that most (all?) Rackspace DCs and offices are now supported, and you can add support for new/custom locations by editing your config file.nscli switchnow passes the hostname _and_ domain name to the netbast. So you can reach, e.g., sin80 switches from the hkg bastion. It also auto-corrects domain names (regions are converted to DCs), so if you try to log in to a.dfwswitch, it will correct it to.dfw1before sshing to it.fixed an old bug where
nscli ticket <ticket> infowould cause nscli to crash. The correct command isnscli ticket <ticket>, and nscli will now tell you so.Upgraded keyring dependency to latest version. This should help us avoid the dreaded
ERROR - Unable to open keyring.Fixed help for
nscli ndapi- now includes a reference to the api docsAdded a Views class to the nscli config_db, making it easier to use the db without knowing SQL or SQLAlchemy
- NSCLI SSH Netdevice APIs (by Matthew Manning)
netdevice.f5 fixed grep bug
netdevice.srx created! This is a new framework for working with Juniper SRXes
netdevice.asa now finds all nesting of object-groups on ASAs
- NSCLI PERMISSIONS (by Joe Wesch)
Updated to include finding Account Admins
Fixed bug that overwrote duplicate names
Display by default network devices of a given ticket. Updated sub-commands and oprtinal arguments as follows: nscli permissions t [TICKET NUMBER] —> will show user permissions network devices attached to the ticket nscli permissions t [TICKET NUMBER] -a —> will show user permissions of all devices attached to the ticket nscli permissions t [DEVICE1 DEVICE2] —> will show user permissions of the devices(s)
v2.5.1 (released 2017-09-20)¶
- F5 certuploader (by **Nick Roberts**)
Examples:
- NSCLI core (by **Micah Culpepper**)
Updated nspylib requirement to new version
v2.5.0 (released 2017-09-19)¶
- SRX minor code upgrade (by **Sergio Pereira**)
nscli maint minor -d [DEVICE] compatibility with SRX
- SRX snmpv3 (by **Sergio Pereira**)
configures snmpv33 given a list of devices
- maint sweep (by **Sergio Pereira**)
added SRX compatibility
- Provisioning plugins (by **Matthew Manning**)
info_qcipsupport for ASA port-channelsAlpha API frameworks created for Virt, CTK, SwitchAPI, and Unipede
bug fixes
organizing code into sub folders and simplfying specific scripts
- NSCLI core (by **Micah Culpepper**)
added support for Tricore Balabit Gateways
Updated LON config station IP post-move
install.shshould now work in dash. Default execution is still in bash for the moment.Bugfix for #590 which was causing “ERROR - Unable to open keyring.” on new installs
Bugfix for nscli build process - files should now have the correct timestamps applied
Admin script: gh2jira creates Jira issues from GitHub issues
- RackConnect Search & Report (by **Pedro Ortale**)
nscli rc report & nscli rc finder
search RackConnect instances by a given keyword in the fields: Instance name, Public/Private IP’s, API_ID
show account reports for all associated DDI’s
v2.4.0 (released 2017-08-29)¶
- F5 certuploader (by **Nick Roberts**)
- Examples:
nscli f5 certuploader [DEVICE] -c <—-Create a new SSL profile and allow automatic installation nscli f5 certuploader [DEVICE] -u <—-Update existing SSL Profile and allow automatic installation nscli f5 certuploader [DEVICE] -c -p <— Create a new SSL Profile, only prep changes nscli f5 certuploader [DEVICE] -u -p <— Update existing SSL Profile, only prep changes nscli f5 certuploader [DEVICE] <—- displays menu
User must provide Public Cert and Key, the rest is mostly automated
Automatic Name checks for cert/key pair names, new SSL Profiles
Nearly all functions should fall back to manual input methods should any API be unreachable
Automatically SCP Files to the f5
Automatic Pre and Post SSL Tests leveraging SSL TOOL API
Script logs directly into the F5 to check configurations
Automatic installation of config and rollback if required using the user’s TACACS credentials
Checks for best practices regarding SSL Parent Profiles
Display statistics for currently used Parent Profiles
Can update the ticket with changes made/prepped changes and post rollback via a private comment
- nscli nla bugfix (by **Micah Culpepper**)
nscli should once again check NLA login status every 30 minutes, instead of once per day.
- install.sh (by **Micah Culpepper**)
now runs in bash instead of sh (for Windows compatibility)
fixed argument parsing, allowing for custom installation location or specific Python interpreter
- F5 Major (by **Sergio Pereira**)
Manual Steps for manual Sofware Upgrade 11 to 12
v2.3.0 (released 2017-08-17)¶
- Permissions (by **Sergio Pereira**)
Examples: nscli permissions -t [TICKET] or nscli permissions -d [DEVICE]
Displays customer permissions of devices attached to a ticket and customers marked as recipients
Displays device permissions
- ASA/F5 File MD5 Verification (by **Joe Wesch**)
Examples: nscli asa md5 DEVICE /OR/ nscli f5 md5 DEVICE
Allows you to verify the MD5 checksum of a file without requiring ZSP to be unlocked
Just listing the device will print a list of files on the device and lets you choose
Optional -file and -checksum flags allow you to provide specific items to verify
- Maintenance checks (by **Sergio Pereira**)
Example: nscli maint checks [TICKET]
Perform Ping sweeep, gets VPN status, VIP status and updates public comment with the result obtained.
- Core changes (by **Micah Culpepper**)
Upgrade changes. There is now an nscli install script on the mirror. This script will handle normal installation as well as upgrades. Because it is hosted on the mirror, rather than distributed with nscli, it can be updated to deal with new upgrade challenges as they arise. The nscli upgrade function downloads this script and runs it.
Refactored __main__, auth.cisco_nla, and switch.ns_switch. User experience should be the same or slightly improved. API is mostly the same. cisco_nla now tracks timestamps for the different DCs separately.
v2.2.8 (released 2017-07-18)¶
- Juniper SRX Packet Tracer (by **Pedro Ortale**)
Perform the show security match-policies on SRX devices.
Just Device, Source, Destination and Port is required for TCP Checks (-u to check UDP).
No more time wasted performing zone / route lookup for filling the match-policies arguments.
Matches Zone and Global policies.
- Ghost Browser integration for ssh gui (by **Joe Wesch**)
Ghost Browser allows you to have multiple tabs open to different F5 gui’s at the same time
Simply add Ghost Browser to your OSX Applications and it will detect it and start using it
- win.sh replaced by install.sh (by **Micah Culpepper**)
install.sh does what win.sh used to do - installs nscli
install.sh is smarter than win.sh was, and does some dependency checking/installation for you
install.sh can be used on linux and mac, too
The installation method on rax.io/nscli is still preferred, generally. But install.sh may be more effective if you need to install nscli on a brand-new machine, or if you need to nuke your existing nscli install from orbit and reinstall.
- Internal NSCLI changes (by **Micah Culpepper**)
settingsis now importable fromnscli.settings.iniis a dictionary containing the data from the user’ssettings.ini. This should make it easier for plugin authors to use the config file.NSCLI now requires sqlite3, which has been part of the standard library since 2.5. If your Python installation did not come with sqlite, you will need to upgrade.
NSCLI now respects the XDG_CONFIG_HOME environment variable. Config files will be saved in
~/.config/nscli/by default.Plugin authors can import
config_dirfromnsclito get the path to the config directory.NSCLI will attempt to import existing settings from the legacy directory
~/.nscli/When running nscli in a virtual environment, a config directory for that virtual environment will be created relative to sys.prefix. Now your separate NSCLI installations can have separate configs, too!
bastions.json: This config file is now deprecated. Several copies of it have been found and deleted. The remaining copy is innscli/data, and will be removed once the remaining references to it have been replaced.nscli/data/infrastructure.jsonis the replacement forbastions.json. However, you should avoid accessing this file directly, except to record new datacenters/bastions/etc. See the next point.config_db: NSCLI maintains a database of infrastructure facts instead of just using flat config files. NSCLI readsinfrastructure.jsonand creates a SQLite database from its contents. This database is saved in the user’s config directory and loaded on subsequent runs of NSCLI. It will be rebuilt if the file is missing, or ifinfrastructure.jsonin the user’s config directory is newer than the database.find_geo: The newnscli.config_dbmodule provides a function calledfind_geo. Plugin authors are encouraged to use this function to get infrastructure facts, given a data center or region.
v2.2.7 (released 2017-06-15)¶
Replace appstats with NewRelic
- maint mrt (by **Duane Herman**)
generates MRT (Maintenance Request Template)
- provisioning (by **Matthew Manning**)
NetSec Provisioning Related Scripts
v2.2.6 (released 2017-05-08)¶
- JunosPW Decoder Enhancements (by **Cameron Exley**)
Added interactive option to avoid strings being malformed by the bash shell when entered without single quotes.
Created optional argument,
-eor--encrypted-string, in case you preferred the non-interactive version.Added a check for malformed strings, if the single quotes are still forgotten when using non-interactive mode (
-e)
- ACS INFO enhancements (by **Cameron Exley**)
Now prints out ACS servers for location of device
-c or –config will produce necessary TACACS configuration for device
- maint ram_conv (by **Sergio Pereira**)
ASA RAM upgrade and System Software upgrade (pre-to-post)
Uploads System Software asa917-16-k8.bin and converted Configuration to the firewall
- maint sweep (by **Sergio Pereira**)
Queries the NAT Public IPS of either ASA Firewall or BigIP F5 devices
Queries core devices numbers given a public IP address
Perfoms from cbastion ‘sudo nmap -n -sP -v -PE [PUBLIC IPS]’
Displays total live hosts.
v2.2.5 (released 2017-04-20)¶
- ASA VPNPrep
Added some basic error handling
- ASA Console v1.2
Minor text fixes, bugs and code improvements
Fixes basing of interfaces for 5505 with -down flag
v2.2.4 (released 2017-04-17)¶
- Torq imports (by **Steve Hurley**)
nscli torq add-device <device>Lets you manually import a device into torq, in case the automatic import didn’t happen.
- Added ASA VPNPrep module (by **Cameron Exley**)
An interactive script to produce the required commands for a new IKEv1 L2L tunnel
Checks crypto map name, sequence number as well as phase 1 and 2 policies/transform-sets
- Added ASA Console module (by **Joe Wesch**)
Converts ASA running config to paste-ready format for a new firewall
Using the -down flag, it can help quickly restore a config for a replacement firewall
v2.2.3 (released 2017-03-21)¶
Maintenance team script improvements
v2.2.2 (released 2017-02-15)¶
- NSCLI config file (by **Josh Silvas**)
Improvements to the config file, moving towards supporting more items
You can now set your balabit bastion, so you can use, e.g. the GET bastion instead of the support one
nscli resetnow deletes cached session data and tokens instead of blowing away your config file
- Passwordsafe (by **Josh Silvas**)
On a 401/403 response, NSCLI now prompts for your password again, instead of assuming you need to create a project
- Added ORD cbast (by **Josh Silvas**)
nscli cbast ord
- Auto-enable firewalls (by **Josh Silvas**)
NSCLI can now log in to firewalls with
aaa authorization exec authentication-server auto-enablewithout crashing
- ADX Library Enhancements (by **Aaron Hackney**)
- NSCLI Maintenance (by ***Sergio Pereira**, **Topher Martin**, and **Trevor Becker**)
parallel Maintenance generator for Parallel migration
minor ASA/F5/ADX minor code upgrade
failover Failover testing
luno Template for LUNO maintenances
- NSCLI WAF protected_ips (by **James Wathen**)
Determine if IP is part of WAF protected IPs
- Add Devices to Ticket (by **Micah Culpepper**)
Attach devices to a CORE ticket via nscli
- Torq Backup (by **Josh Silvas** and **Micah Culpepper**)
moved functionality from ns_fe.SwitchApi to Torq
Torq backup now displays a progress bar instead of acting like it’s hung
ASA shun (by **Micah Culpepper**) - config parsing improvements
NSCLI administrative (by **Micah Culpepper**) - NSCLI will now be released monthly - New submissions to NSCLI must be accompanied by unit tests - See the new guidelines for contributing at docs/src/Contributing.rst
v2.2.1 (released 2016-12-07)¶
- Update for ASA Shun (by **Micah Culpepper**)
Users should no longer see the “failover state unknown” message unless it is accurate.
Show Shun Statistics output is now filtered to only display the address that was shunned.
- New Module: NSCLI Torq (by **Micah Culpepper**)
Use
nscli torq list-filesto view metadata about a device’s config files in torq.Use
nscli torq get-fileto download a file from torq. For example, to download the running config for the Zulu lab firewall, runnscli torq get-file 349764 running-config > zulucfg.txtThis module uses the Torq API, so you need ldap_netsec_torq (or better) in your LDAP for it to work.
- API Change: ns_apilibs.Ndapi.post (by **Micah Culpepper**)
Minor API change to allow downloading text files from Torq.
Now returns the raw response body if the response is not JSON.
Did not modify “Accept” header, so anything that was using this before should still work after the update.
- Update for ZSP Unlock (by **David Patino**)
Use NSCLI to unlock a device in ACS.
v2.2.0 (released 2016-10-26)¶
ASA Build Options - In this update, you can now perform the following actions to an ASA:
Build a configuration file from (TORQ, Firekick, Pre-to-Post Converter)
SCP the new configuration file to the appliance
Stage code specific to the destination device platform
Set bootvar and startup file
Reboot the ASA
NOTE: This is first time, you will be able to bring a customer down via nscli without actually logging into the device.
nscli asa build <device_id> <ha_device_id>
ASA Shun Tool (by **Micah Culpepper**) - Manage ASA Shuns via NSCLI -
nscli asa shun <device> <ip_address>Optional Arguments –user USERNAME ASA username, if different from ACS. –password PASSWORD Login password, if different from ACS. Enter ‘?’ to be prompted. –enable ENABLE Enable secret, if different from ACS. Enter ‘?’ to be prompted –searchonly Search the firewall for the address(es), but do not shun –delete delete IP from the ASA’s shun table, i.e. “no shun <ip>”
Minor changes and updates to “nscli projects” tool (by **Julian Coleman**)
Finder Plugin - Just a simple implementation of Hozers Finder in NSCLI -
nscli finder <search_string>Optional Arguments -s, –seniority view the finder seniority report -l, –locations Employee count by location
v2.1.5 (released 2016-09-26)¶
SCP to/from network devices proxy via NextGen Balabit Proxies
nscli ssh <device_id> -s
Attempt to retrieve core token from an open FireFox session prior to prompting for credentials
This update is added to remove a prompt for RSA Token authentication, if there is already a valid session in your web browser.
Support for user credential storage in PasswordSafe.
Will create (if not found) a personal PasswordSafe project for TACACS/ACS/SSO credentials.
Subsequent authentication request will first look in PasswordSafe for the user credentials before prompting for them.
Migrated local user credential OS keyring. (by **George Markeloff**)
Local cache for user credentials will be stored in the system keyring.
Added support for WebMux logins
Patch to the nscli build function (by **Nick Roberts**)
nscli build <device> --findnetworksScript will parse an ASAs routing table and all remote encryption domains and print a table with the info or find where a given IP lives
Added password generator from nspylibs
nscli passgen-c [LENGTH], --length [LENGTH] Length of password to generate (Default: 30) -a [ADD], --add [ADD] Add characters to the generator -l, --no_lower Remove lowercase letters from passgen. -u, --no_upper Remove uppercase letters from passgen. -s, --no_special Remove special characters from passgen.
Added a settings.ini file that is user modifiable for default settings.
nscli settings
JunOS Password Decoder (by **Cameron Exley**).
nscli juniper junospwDecrypt Junos $9$ passwords.
Bash can cometimes attempt to interpret ‘special’ characters as commands. It is highly likely your string will contain these characters. Ensure your encrypted string is wrapped in single quotes.
ACS Search (by **Julian Coleman**)
Script to download and search through ACS logs, printing the results in a useable format
nscli acs-search-e - Exclude automated users (fwportal,backups,monitor.netsec, etc...) -u - Only include logs for the specified user -c - ACS client IP (device) --start - Start date (UTC) for the logs to be pulled --end - End date (UTC) for the logs to be pulled
nscli acs-search -c 104.239.180.156 --start 05-28-16 --end 05-31-16 -u prab85052015-08-24 20:18:37 UTC (prab8505) show user-alert 2015-08-24 20:20:26 UTC (prab8505) show logging 2015-08-24 20:20:35 UTC (prab8505) show logging 2015-08-24 20:20:36 UTC (prab8505) show logging 2015-08-24 20:34:38 UTC (prab8505) quit
F5Scripts (by **Julian Coleman**)
Upload cutom scripts to and F5
nscli f5scripts <device ID / IP>Example:
nscli f5scripts 349759Scripts: f5user Destination: Device: 349759 IP: 10.12.144.24 Path: /opt/nscli-f5scripts/
RCVLAN (beta) (by **Julian Coleman**)
Generates commands to assgin packet filters to VLANs.
nscli rcvlan <Device ID / IP>Example:
nscli rcvlan 733297 Downloading and parsing F5 configuration... Analysing VLANs, self IPs and packet filters... Total Unassgined RackConnect VLANs: 519 /////////////////// CHANGE ////////////////////// modify net packet-filter RCAuto-ID_30878-NP_19176-CS_1117317-DN_8965 vlan rackconnect151 modify net packet-filter RCAuto-ID_30404-NP_19176-CS_1116843-DN_1826 vlan rackconnect151 modify net packet-filter RCAuto-ID_30116-NP_104354-CS_1116695-GW_154871 vlan rackconnect151 modify net packet-filter RCAuto-ID_30801-NP_19176-CS_1117268-DN_8969 vlan rackconnect149 modify net packet-filter RCAuto-ID_30130-NP_104354-CS_1116696-DN_8961 vlan rackconnect151 modify net packet-filter RCAuto-ID_30841-NP_19176-CS_1117319-DN_1827 vlan rackconnect151 ... /////////////////// ROLLBACK ////////////////////// modify net packet-filter RCAuto-ID_30878-NP_19176-CS_1117317-DN_8965 vlan none modify net packet-filter RCAuto-ID_30404-NP_19176-CS_1116843-DN_1826 vlan none modify net packet-filter RCAuto-ID_30116-NP_104354-CS_1116695-GW_154871 vlan none modify net packet-filter RCAuto-ID_30801-NP_19176-CS_1117268-DN_8969 vlan none modify net packet-filter RCAuto-ID_30130-NP_104354-CS_1116696-DN_8961 vlan none ...
https://github.rackspace.com/NSI/nscli/releases/download/2.1.5/nscli-2.1.5.tar.gz
v2.1.4 (released 2016-07-01)¶
HTTP proxy through ssh tunneling via local web browser. (for DRAC access)
nscli ssh -g
ADX SSL Uploader
SSL Uploading tool for Brocade ADX. As of right now, you can upload SSL certs/keys to the brocade and list the certs from a Brocade from nscli.
https://github.rackspace.com/NSI/nscli/releases/download/2.1.4/nscli-2.1.4.tar.gz