Книга: Acing the CCNA Exam: Volume 2 Advanced Networking and Security
Назад: 23 REST APIs
Дальше: Appendix A. Exam topics reference table

25 . It’s an interesting read to learn about the benefits of a DSL.

While a popular tool for managing the IT infrastructure configuration, its level of adoption is relatively low compared to Ansible when it comes to managing networks; not all network devices support a Puppet agent, so Puppet is often not a viable choice.

Chef

Chef is another IaC tool for configuration management that bears some similarity to Puppet. Like Puppet, Chef is written in the Ruby programming language. Chef also uses an agent-based approach, requiring a Chef client to be installed on each managed device; this agent connects to the Chef server to pull and apply the latest configurations.

However, unlike Puppet, Chef uses a procedural approach. In Chef, you define a sequence of steps or tasks, known as recipes, which outline the specific actions needed to configure the system. These recipes are grouped into cookbooks, which can include additional components such as templates, files, and metadata. When the Chef client runs, it executes the recipes in the specified order to bring the managed device into the desired state.

Like Puppet, Chef doesn’t have the popularity of Ansible in the context of managing networks. This is likely why Puppet and Chef were removed from the CCNA exam topics list. However, I recommend knowing their basic characteristics. Specifically, you should understand how a pull model differs from a push model, and the difference between an agentless and agent-based approach.

Which tool to use?

We’ve explored some basic characteristics of these four tools, but which should an organization use? The choice depends on the needs of the particular organization. For example, if an organization’s network devices don’t support a Puppet or Chef agent, Ansible is the natural choice for configuration management. But even if device support isn’t an issue, the simplicity of Ansible’s agentless approach makes it the preferred tool in many networks.

Another key consideration is the operational mode: push or pull? Depending on the organization’s workflows and specific needs, Ansible may be favored for its push model. If a pull model is preferred, the choice is between Puppet and Chef. Of the two, Puppet’s declarative nature allows you to define the desired end state without specifying the specific steps to get there. Chef, on the other hand, takes a procedural approach, which may be preferred for those who want detailed control over the configuration process.

Terraform is primarily used for infrastructure provisioning rather than configuration management. If your primary need is to deploy infrastructure across various platforms, including cloud and on-premises environments, Terraform’s declarative approach and support for different providers make it an excellent choice. Terraform excels in provisioning complex multi-cloud environments and ensuring that the infrastructure remains consistent and reliable by maintaining the desired state through its configuration files.

Ultimately, the decision on which tool to use should be based on the specific requirements of your infrastructure and the workflows of your organizaon process.

Summary