Professional Documents
Culture Documents
ch29 Key Topics
ch29 Key Topics
Chapter 29
Embedded Event Manager (EEM) is a very flexible and powerful Cisco IOS tool. EEM
allows engineers to build software applets that can automate many tasks. EEM also derives
some of its power from the fact that it enables you to build custom scripts using Tcl. Scripts
can automatically execute, based on the output of an action or an event on a device. One
of the main benefits of EEM is that it is all contained within the local device. There is no
need to rely on an external scripting engine or monitoring device in most cases. Figure 29-1
illustrates some of the EEM event detectors and how they interact with the IOS subsystem.
Puppet
Puppet is a robust configuration management and automation tool. Cisco supports the
use of Puppet on a variety of devices, such as Catalyst switches, Nexus switches, and the
Cisco Unified Computing System (UCS) server platform. Puppet works with many different
vendors and is one of the more commonly used tools used for automation. Puppet can be
used during the entire lifecycle of a device, including initial deployment, configuration
management, and repurposing and removing devices in a network.
Puppet uses the concept of a puppet master (server) to communicate with devices that have
the puppet agent (client) installed locally on the device. Changes and automation tasks are
executed within the puppet console and then shared between the puppet master and puppet
agents. These changes or automation tasks are stored in the puppet database (PuppetDB),
which can be located on the same puppet master server or on a separate box. This allows the
tasks to be saved so they can be pushed out to the puppet agents at a later time.
Chef
Chef is an open source configuration management tool that is designed to automate con-
figurations and operations of a network and server environment. Chef is written in Ruby and
Erlang, but when it comes to actually writing code within Chef, Ruby is the language used.
Ansible
Ansible is an automation tool that is capable of automating cloud provisioning, deployment
of applications, and configuration management. Ansible has been around for quite some
time and was catapulted further into the mainstream when RedHat purchased the company
in 2015. Ansible has grown very popular due to its simplicity and the fact that it is open
source. Ansible was created with the following concepts in mind:
■■ Consistent
■■ Secure
■■ Highly reliable
Puppet Bolt
Puppet Bolt allows you to leverage the power of Puppet without having to install a puppet
master or puppet agents on devices or nodes. Much like Ansible, Puppet Bolt connects to
devices by using SSH or WinRM connections. Puppet Bolt is an open source tool that is
based on the Ruby language and can be installed as a single package.
In Puppet Bolt, tasks can be used for pushing configuration and for managing services, such
as starting and stopping services and deploying applications. Tasks are sharable. For example,
users can visit Puppet Forge to find and share tasks with others in the community. Tasks
are really good for solving problems that don’t fit in the traditional model of client/server
or puppet master and puppet agent. As mentioned earlier in this chapter, Puppet is used to
ensure configuration on devices and can periodically validate that the change or specific
value is indeed configured. Puppet Bolt allows you to execute a change or configuration
immediately and then validate it.