Ansible, Terraform, Puppet, and Chef Flashcards
What is configuration drift?
When individual changes made over time cause a device’s configuration to deviate from the standard/correct configurations as defined by the company
Explain why configuration drift can lead to issues
As problems occur, records of individual fixes and their config changes aren’t kept, therefore it becomes hard to know what parts of the config are necessary/meaningful and which aren’t
What is configuration provisioning?
How configuration changes are applied to devices. Includes configuring new devices.
What are the two essential components of configuration provisioning?
- Templates
- Variables
Ansible, Puppet, Chef, and Terraform are all examples of:
Configuration management tools
Is Ansible agentless?
Yes
What does agentless mean?
No special software has to be run on managed devices for the config management tool to run properly.
Does Ansible use a push or pull model of getting updates to managed devices?
Push model. The Ansible server (control node) uses SSH to connect to managed devices and push config changes to them.
Does Puppet use a push or pull model of getting updates to managed devices?
Pull model. Managed devices connect to the Puppet sever to get updates from it.
Does Chef use a push or pull model of getting updates to managed devices?
Pull model. Managed devices connect to the Chef server to get updates from it.
What are Ansible playbooks?
Files that are the “blueprints of automation tasks”. Outline the logic and actions of the tasks that Ansible should do. Written in YAML.
What language are Ansible playbooks written in?
YAML
What is an Ansible inventory?
File that lists the devices that will be managed by Ansible, as well as the characteristics of each device. Written in INI, YAML, or other formats
What is an Ansible template?
File that represents the device’s configuration file, but without specific values for the configuration variables.
Written in Jinja2 templating lang
What is an Ansible variable file?
File that lists variables and their values. Values are substituted into the templates to create complete config files. Written in YAML
Is Puppet agentless or agent based?
Typically agent based. A proxy agent can be used, but at that point most people just use Ansible.
What is a Puppet manifest file?
Defines the desired configuration state of a network device
What is a Puppet template?
The same thing as an Ansible template. Used to generate Manifests
Is Chef agentless or agent based?
Agent based. Most Cisco devices don’t support Chef agents
What protocol and port does Puppet use for communicating between devices?
TCP 8140
What protocol and port does Chef use for communicating between devices?
TCP 10002
What language are Chef files written in?
A domain-specific lang based on Ruby
What language are Puppet files written in?
Puppet proprietary lang
What is a Chef resource file?
A file of configuration objects managed by chef
What is a Chef recipe file?
A file that outlines the logic and actions of the tasks performed on the resources
What is a Chef cookbook file?
A set of related recipe files grouped together
What is a Chef run-list?
An ordered list of recipes that are run to bring a device to a desired config state
What programming langauge is Ansible written in?
Python
What programming language is Puppet written in?
Ruby
What programming language is Chef written in?
Ruby
How to both Puppet and Chef communicate?
HTTPS via their REST APIs
How does Ansible communicate?
SSH
Which of the following config management tools connects to devices using SSH?
a) Chef
b) Ansible
c) Puppet
d) None of the above
b) Ansible
Which of the config management tools use a pull model (select all that apply)?
a) Chef
b) Ansible
c) Puppet
d) All of the above
a) Chef
c) Puppet
Which of the following config management tools use a client-sever model?
a) Chef
b) Ansible
c) Puppet
d) All of the above
d) All of the above
Which of the following config management tools are written in Ruby?
a) Chef
b) Ansible
c) Puppet
d) None of the above
a) Chef
c) Puppet
Which of the following config management tools uses playbooks?
a) Chef
b) Ansible
c) Puppet
d) All of the above
b) Ansible
Which of the following config management tools accepts inbound requests from agents by using HTTPS on TCP port 8140?
a) Ansible
b) Salt
c) Chef
d) Puppet
d) Puppet
You are creating a Puppet DSL resource declaration for code that will ensure that members of a group named CoAdmins will be able to issue commands by using the sudo command. What would the code segment for accomplishing this look like?
sudo::conf { 'CoAdmins': ensure => present, content => '%admin ALL=(ALL) ALL', }