# Ansible for Network Automation

Ansible Network modules extend the benefits of simple, powerful, agentless automation to network administrators and teams. Ansible Network modules can configure your network stack, test and validate existing network state, and discover and correct network configuration drift.

If you’re new to Ansible, or new to using Ansible for network management, start with Getting Started with Ansible for Network Automation. If you are already familiar with network automation with Ansible, see Advanced Topics with Ansible for Network Automation.

For documentation on using a particular network module, consult the list of all network modules. Some network modules are maintained by the Ansible community - here’s a list of network modules maintained by the Ansible Network Team.

- Getting Started with Ansible for Network Automation
  - Basic Concepts
    - Control Node
    - Managed Nodes
    - Inventory
    - Modules
    - Tasks
    - Playbooks
  - How Network Automation is Different
    - Execution on the Control Node
    - Multiple Communication Protocols
    - Modules Organized by Network Platform
    - Privilege Escalation: `enable` mode, `become`, and `authorize`
  - Run Your First Command and Playbook
    - Prerequisites
    - Install Ansible
    - Establish a Manual Connection to a Managed Node
    - Run Your First Network Ansible Command
    - Create and Run Your First Network Ansible Playbook
  - Build Your Inventory
    - Basic Inventory
    - Add Variables to Inventory
    - Group Variables within Inventory
    - Variable Syntax
    - Group Inventory by Platform
    - Protecting Sensitive Variables with `ansible-vault`
  - Use Ansible network roles
    - Understanding roles
    - Ansible supported network roles
    - Network roles release cycle
  - Beyond the basics
    - A typical Ansible filetree
    - Tracking changes to inventory and playbooks: source control with git
  - Resources and next steps
    - Documents
    - Events (on video and in person)
    - GitHub repos
    - IRC and Slack
- Advanced Topics with Ansible for Network Automation
  - Ansible Network FAQ
    - How can I improve performance for network playbooks?
    - Why is my output sometimes replaced with `********`?
    - Why do the `*_config` modules always return `changed=true` with abbreviated commands?
  - Network Best Practices for Ansible 2.5
    - Overview
    - Concepts
    - Example
    - Implementation Notes
    - Troubleshooting
  - Network Debug and Troubleshooting Guide
    - Introduction
    - How to troubleshoot
    - Category “socket_path issue”
    - Category “Unable to open shell”
    - Timeout issues
    - Playbook issues
    - Proxy Issues
    - Miscellaneous Issues
  - Working with Command Output in Network Modules
    - Conditionals in Networking Modules
  - Platform Options
    - CNOS Platform Options
    - ENOS Platform Options
    - EOS Platform Options
    - EXOS Platform Options
    - IOS Platform Options
    - IronWare Platform Options
    - Junos OS Platform Options
    - NOS Platform Options
    - NXOS Platform Options
    - RouterOS Platform Options
    - SLX-OS Platform Options
    - VOSS Platform Options
    - Netconf enabled Platform Options
    - Settings by Platform