CCNP ENCOR 350-401 Exam Cram Notes

VI Automation

7. Compare agent vs. agentless orchestration tools, such as Chef, Puppet, Ansible, and SaltStack

Puppet and chef requires to install agent on nodes before configuration server manage it Comparing Ansible,Puppet and chef

Action Ansible Puppet Chef
Term for that lists actions Playbook Manifest Recipe,Runlist
Protocol to network device SSH,NetConf HTTP(Rest) HTTP(Rest)
Uses agent or agentless model Agentless Agent Agent

Configuration management is the process of tracking and controlling the changes in a software with respect to its requirement, design, function, and development of a product. There are two types of configuration management approaches.

Pull Model: The nodes are dynamically updated with the configurations that are present in the server.

Push Model: Centralized server pushes the configurations on the nodes.

Puppet, Chef, and Ansible are three different tools that represent different paths to achieve a common goal of managing a large-scale server infrastructure efficiently with minimal input from the developers and system administrators. All three configuration management tools are designed to reduce the complexity of configuring distributed-infrastructure resources, enabling speed, and ensuring reliability and compliance.

Puppet:Puppet is a software configuration management tool that is mainly used by system administrators and cloud administrators. It helps an administrator to declare the system configuration and apply it across one or many systems at a time. Puppet is an open-source configuration management solution, which is built with Ruby and offers custom Domain Specific Language (DSL) and Embedded Ruby (ERB) templates to create custom Puppet language files, offering a declarative-paradigm programming approach.  Puppet server can run on any Ruby-installed platform, such as Microsoft Windows Server, CentOS, Linux, or Oracle Enterprise.

Puppet Components:

Puppet Master: Puppet Master is a mechanism that handles all configuration-related activities and helps in configuring nodes using a Puppet Agent. Puppet Agents: Working machines that are managed by the Puppet Master are known as Puppet Agents.

Configuration Repository: This repository saves and pulls all nodes and server-related configurations, when required.

Facts: Facts are the details related to the node or the master machine that are used for analysing the status of any node. Changes are done on any target machine based on the facts. Puppet has pre-defined and custom facts.

Catalog:All manifest files or configurations, which are written in Puppet, are first converted into a compiled format called catalog. Later, these catalogs are applied on the target machine.

Chef: Chef is a configuration management technology, developed on the basis of Ruby DSL language and is used to automate the infrastructure provisioning. It is a flexible cloud infrastructure automation framework that allows the users to install the apps to bare metal VMs and cloud containers. A user can manage the infrastructure through the code rather than using a manual process. Chef supports multiple platforms, like AIX, RHEL/CentOS, Solaris, Ubuntu, and all Linux flavours.

Chef Components:

Nodes: A node is any machine (physical, virtual, cloud, network device, etc.) that is under management by Chef.

Workstations: A workstation is a computer where Chef Development Kit (Chef DK) is run to author cookbooks, and also to interact with the Chef server and nodes.

Knife: Knife is a Chef command-line tool that provides an interface between a local Chef repository and the Chef server.

Repository:The repository structure in which cookbooks are authored, tested, and maintained is called Chef repository (or Chef repo).

Cookbooks:A cookbook is the fundamental unit of configuration and policy distribution that defines and supports a scenario. Chef cookbooks contains recipes, attributes, custom resources, libraries, files, templates, tests, and metadata.

Ansible:Ansible is a simple open-source IT engine which automates application deployment, intra-service orchestration, cloud provisioning, and many other attributes. It is relatively easy to deploy an Ansible since it does not use any agents or custom security infrastructure. Compared with Puppet and Chef, Ansible was developed to simplify complex orchestration and configuration management tasks. Ansible platform is written in Python and it allows the users to script commands in YAML.

Ansible Components:

Control Node: Any machine with an installed Ansible can act as a control node and can run the commands invoking usr/bin/ansible or /usr/bin/ansible-playbook. Managed Nodes: Ansible can enable the management of the network devices or servers. Managed nodes sometimes called "hosts".

Inventory: An inventory is a file which contains a list of managed nodes; it is also known as a "host-file" Inventory file can contain the information like IP address of the managed nodes.

Modules: The units of code that are executed by Ansible are known as Modules. We can invoke a single module with a task or invoke several different modules in a playbook.

Tasks:The unit of action in Ansible is called a Task. It can be execute once with an ad-hoc command.

Playbooks: It is a list of tasks that runs repeatedly in an order. Playbooks can contain variables and tasks that are written in YAML (Ain't Markup Language).

SaltStack: It is an open-source platform based on Python, and it is used for managing and configuring cloud infrastructure developed to create a better tool for collecting and executing data at high speeds

Ansible: is a python-based configuration management tool that uses YAML play books to push configuration to nodes. It's an agentless solution offering wide support for network devices because it uses SSH to reach nodes. Because there is no nodes. Ansible can only push configuration to nodes.

Puppet: is a Ruby based configuration management tool that uses custom manifest files to configure devices.It requires agent to be installed on the node, so it has less network support. Puppet also doesn't support pushing configuration to nodes.Instead configuration is applied when the agent checks in. Puppet does not suport Cisco network devices that can install the puppet agent.

Chef: It is a Ruby based configuration tool that uses cook books to apply configuration.

A cookbook is the fundamental unit of configuration and policy distribution. A cookbook defines a scenario and contains everything that is required to support that scenario:

  • Recipes that specify the resources to use and the order in which they are to be applied

  • Attribute values

  • File distributions

  • Templates

  • Extensions to Chef, such as custom resources and libraries

Chef Infra Client uses Ruby as its reference language for creating cookbooks and defining recipes, with an extended DSL for specific resources. Chef Infra Client provides a reasonable set of resources, enough to support many of the most common infrastructure automation scenarios; however, this DSL can also be extended when additional resources and capabilities are required. Chef is a cloud infrastructure framework. It is a tool that allows us to manage configurations, similar to Puppet and a few other tools, but Chef is is written in Ruby. Chef can help you manage your infrastructure dependencies, create folder structure (with 'knife') and bootstrap our entire system or update configurations with just a few commands.

Puppet is specially designed to manage the configuration of Linux and Windows systems. It is written in Ruby and uses its unique Domain Specific Language (DSL) to describe system configuration.

Previous   Contents   


CCNP ENCOR Cram Notes Contents
certexams ad

simulationexams ad