Optimize Ansible Playbooks & Integrate with Nautobot

Job ID: 39556774

Budget: $8 – $15 USD

We have an existing network automation pipeline using Nautobot, Ansible, and Rundeck that performs basic configuration backups of Cisco devices into GitLab based on tagged metadata in Nautobot. This project is to refine and expand that pipeline to gather richer operational data and build structured reports. Similar improvements are needed for our existing Palo Alto automation.



Scope of Work

Cisco (IOS/XE/NX-OS)

Current Functionality:
• Logs in via SSH using credentials and inventory defined in Nautobot
• Runs configuration backups
• Pushes config snapshots to GitLab

Requested Enhancements:
• Extend the playbook to also collect:
• show version (for uptime and CPU/memory)
• show interfaces status
• show ip arp
• show vlan
• show mac address-table
• show vrf
• Port description history (or best approximation)
• Output data into a structured and timestamped format (CSV, JSON, or YAML)
• Include CPU utilization snapshot at runtime
• Maintain or expand GitLab integration
• Support lightweight reporting or dashboards based on this data

Palo Alto (PAN-OS)

Current Functionality:
• Basic config backup using Ansible or API

Requested Enhancements:
• Expand automation to:
• Pull ARP tables, session summaries, interface stats
• Capture CPU/memory usage metrics
• Tag reports by device and timestamp
• Store reports in structured format for audit reference



Requirements
• Proven experience with Ansible Networking Modules
• Strong understanding of Cisco IOS/XE/NX-OS CLI output
• Familiarity with Nautobot API, tagging, and inventory workflows
• Experience automating Palo Alto via Ansible or PAN-OS API
• Ability to format and organize outputs into usable data sets
• Git proficiency; GitLab integration experience is preferred
• Rundeck job management knowledge is a plus



Optional But Valuable
• Experience integrating HashiCorp Vault into Ansible workflows
Related categories: Python Linux Docker GitLab Jenkins Kubernetes Ansible Terraform