Wednesday, July 17, 2024

Cisco 137 - Ansible, Puppet, and Chef

Ansible
Model: PUSH = Agentless
Action file: Playbook
Protocols: SSH & NETCONF
Uses YAML.
Written in Python.


Puppet

Model: PULL = Requires Agent (or proxy)
Action file: Manifest
Protocols: HTTPS(REST) TCP port 8140
Written in Ruby

Example of Puppet DSL resource declaration:

sudo::conf { 'CoAdmins':
ensure    => present,
content    => '%admin ALL=(ALL) ALL',
}


Chef

Model: PULL = Requires Agent
Action file: Recipe, Runlist
Protocols: HTTPS(REST) TCP port 10002
Written in Ruby

Example of Chef recipe:
sudo "CoAdmins"
    group "CoAdmins"
    nopasswd true


Ansible's playbooks use an imperative language, whereas Puppet uses a declarative language.

Adoption numbers:

Wendell Odom's book says Ansible > Puppet > Chef

Jeremy says Ansible is the most popular choice for network device config management

Boson ExSim says Puppet is most mature and widely used

 


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.