Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 87

Understanding Configuration Management Tools

Recommended resources

Hello! Welcome to the final lesson in our module on Network Automation and Programmability.

In our last lesson, we took a deep dive into Cisco DNA Center, a powerful, controller-based solution that serves as the central brain for an enterprise network. We saw how it uses an intent-based model to handle everything from device provisioning to AI-driven network assurance, primarily within a Cisco ecosystem.

Today, we'll broaden our perspective to explore a different, but equally important, approach to automation. Our learning outcome is to explain the function of configuration management tools like Ansible, Puppet, and Chef. These tools are foundational in the world of DevOps and have been widely adopted for network automation, often in multi-vendor environments. We'll examine their core purpose, compare their architectures, and understand their respective roles in managing network infrastructure as code.

The "Why" Behind Configuration Management

As networks grow in scale and complexity, manually configuring and maintaining hundreds or thousands of devices becomes impractical and error-prone. This challenge gives rise to two key problems that configuration management tools are designed to solve.

To understand these problems, please watch the beginning of this video from Jeremy's IT Lab.

Free CCNA | Ansible, Puppet, & Chef | Day 63 (part 1) | CCNA 200-301 Complete Course

This video introduces the core concepts of configuration management, explaining why these tools are essential in modern network operations.

Watch from the beginning to 06:10. Focus on understanding the two main problems discussed: configuration drift and the challenges of configuration provisioning at scale.

As the video explained, configuration management tools address:

  1. Configuration Drift: They ensure that device configurations remain consistent with a defined standard or "desired state," preventing unauthorized or undocumented changes from causing issues over time.
  2. Configuration Provisioning: They automate the process of applying configurations to many devices at once, making it fast, repeatable, and scalable.

This approach of defining your infrastructure in files (like templates and variable files) is a core tenet of Infrastructure as Code (IaC).


Architectural Models: Agent vs. Agentless

Before we look at the specific tools, it's crucial to understand a fundamental architectural difference in how they operate. Configuration management tools can be categorized as either agent-based or agentless.

To get a clear definition of these models, please read the introductory section of this Cisco Press article.

Network Automation - Configuration Management Tools - Cisco Press

This article, 'Network Automation - Configuration Management Tools,' provides a professional-level overview of the topic. This first section clearly defines the key architectural approaches.

Read the section titled 'Configuration Management Tools,' starting from the beginning down to just before 'Configuration Management for Networking.' Focus on the definitions of Agent-based, Agentless, and Proxy-agent configurations.

To summarize:

  • Agent-based (Puppet, Chef): Requires special software (an agent) to be installed on each managed device. The agent periodically communicates with a central server.
  • Agentless (Ansible): Does not require any special software on the managed devices. It communicates using standard protocols like SSH.

This distinction is particularly important in network automation, as many network devices do not support the installation of third-party agent software.


Meet the Tools: Ansible, Puppet, and Chef

Now, let's explore the three key players mentioned in the CCNP ENCOR curriculum. For a concise overview of each, we'll return to the video from Jeremy's IT Lab.

1. Ansible

Ansible has become the most popular configuration management tool for network automation, largely due to its simplicity and agentless architecture.

Free CCNA | Ansible, Puppet, & Chef | Day 63 (part 1) | CCNA 200-301 Complete Course

This section of the video covers the key characteristics of Ansible.

Please watch from 08:02 to 10:55. Pay close attention to its core attributes: agentless, push model, use of SSH, and its key file types (Playbooks, Inventory).

Key characteristics of Ansible:

  • Architecture: Agentless, using a push model. A central control node "pushes" configurations to managed devices over SSH.
  • Language: Written in Python. Configuration files use YAML, which is human-readable and relatively easy to learn.
  • Core Components:
    • Inventory: A file listing the devices to be managed, often grouped by function or location.
    • Playbooks: YAML files that define a set of tasks to be executed on managed devices. They are the "what to do" instructions.
    • Modules: The actual code, typically written in Python, that performs a specific action (e.g., ios_config for configuring a Cisco switch). Ansible has a vast library of built-in modules, including many vendor-specific ones for networking.
    • Templates: Often using the Jinja2 templating engine, these allow you to create configuration templates with variables that can be populated from other files.

2. Puppet

Puppet is one of the oldest and most established configuration management tools.

Free CCNA | Ansible, Puppet, & Chef | Day 63 (part 1) | CCNA 200-301 Complete Course

Now, let's look at Puppet.

Watch from 10:55 to 13:03. Note its architecture (agent-based, pull model), language, and key terminology like 'Manifests'.

Key characteristics of Puppet:

  • Architecture: Agent-based, using a pull model. A Puppet Agent on each managed device periodically checks in with the Puppet Master server and "pulls" its required configuration.
  • Language: Written in Ruby. It uses a proprietary Domain-Specific Language (DSL), also based on Ruby, to define configurations.
  • Core Components:
    • Manifests: Files written in Puppet's DSL that describe the desired state of a resource (like a file, service, or configuration setting).
    • Modules: Self-contained bundles of code (manifests) and data that manage a specific part of the system, like NTP or DNS.
    • Catalog: The master compiles manifests into a per-node catalog, which is the specific set of instructions that an agent pulls and applies.

3. Chef

Chef is another powerful, mature tool that is very popular in server and cloud automation.

Free CCNA | Ansible, Puppet, & Chef | Day 63 (part 1) | CCNA 200-301 Complete Course

Finally, let's cover the basics of Chef.

Watch from 13:03 to 15:08. Focus on its similarities to Puppet (agent-based, pull model) and its unique terminology like 'Cookbooks' and 'Recipes'.

Key characteristics of Chef:

  • Architecture: Agent-based, using a pull model, similar to Puppet. The Chef Client on a node pulls its configuration from the Chef Server.
  • Language: Written in Ruby. It uses a Ruby-based DSL for defining configurations.
  • Core Components:
    • Resources: The fundamental building blocks that describe a piece of the system's configuration (e.g., a package to be installed).
    • Recipes: Files that group a set of resources to achieve a desired state.
    • Cookbooks: A collection of related recipes and other components that manage a specific scenario or service.

At a Glance: Comparing the Tools

The differences between these tools determine their suitability for various tasks. The agentless nature of Ansible makes it a natural fit for network devices, while the mature, model-driven approaches of Puppet and Chef are powerful for managing server fleets.

This table provides a concise summary of their key differences:

Comparison of Ansible, Puppet, and Chef
This table compares Ansible, Puppet, and Chef across key characteristics including their architecture, operational model, terminology, and underlying technology. It serves as a quick reference for their main differentiators.
Test your understanding!

A network team needs to automate the deployment of a standard NTP and SNMP configuration across a multi-vendor network. The network includes Cisco routers, Juniper firewalls, and Arista switches. Many of these devices are older and do not allow the installation of custom software.

Based on their core architectures, which toolโ€”Ansible, Puppet, or Chefโ€”would be the most straightforward choice for this task, and why?

Show answer

Ansible would be the most straightforward choice.

The key reason is its agentless architecture. Since the devices do not support the installation of custom software, the agent-based models of Puppet and Chef would be difficult to implement. Ansible communicates over standard protocols like SSH, which are universally supported on managed network devices. This avoids the need for agents and makes it much easier to start automating a heterogeneous, multi-vendor network.


Conclusion

In this lesson, we have explored the function and characteristics of three major configuration management tools: Ansible, Puppet, and Chef. We've seen how they provide a systematic, code-driven approach to managing infrastructure, a stark contrast to the manual, device-by-device methods of the past.

Key Takeaways:

  • Core Function: Configuration management tools automate infrastructure management to ensure consistency (prevent configuration drift) and enable scalable deployment (configuration provisioning).
  • Ansible: Is agentless, uses a push model over SSH, and defines tasks in YAML Playbooks. Its ease of use and compatibility with network devices have made it extremely popular in this space.
  • Puppet and Chef: Are agent-based, use a pull model, and rely on a Ruby-based DSL. They are powerful, mature tools widely used for server and cloud automation, but the agent requirement presents a challenge for many network devices.

This lesson concludes our module on Network Automation and Programmability, and with it, your CCNP ENCOR course. You have journeyed from foundational network architecture through advanced routing, security, wireless, and finally into the modern world of automation. You started with the building blocks of APIs and data models like YANG, saw them implemented in a controller-based system like Cisco DNA Center, and have now explored the landscape of open configuration management tools. This comprehensive knowledge provides you with the skills and understanding required not just for the ENCOR exam, but for building and managing the networks of today and tomorrow. Well done