If you want to start a career in DevOps, then you must know the importance of automation. Ansible and Chef are some of the notable automation tools that have revolutionized the way we perform configuration management, application deployment, intraservice orchestration, and provisioning.
The opportunities for a promising job in infrastructure automation become accessible by obtaining the Associate DevOps Automation Engineer certification.
Attaining certified status means you possess the skills, knowledge, and abilities needed to use Ansible and Chef to automate the deployment, configuration and management of systems at an associate level.
Prerequisite
There are no prerequisites for Associate DevOps Automation Engineer, but you should have a good understanding of the exam topics before taking the exam.
Objective 1.1. Explain what Ansible is and what are the benefits of using it
Details
• Explain what Ansible is.
• Ansible architecture.
• Explain the key benefits of using Ansible.
• Give examples of systems that can be managed with Ansible.
Objective 1.2. Explain the Ansible installation and setup process
Details
• Ansible installation options.
• Initial Ansible setup steps, including preparing hosts for using Ansible in production.
Objective 1.3. Explain the main features and advantages of Ansible
Details
• Describe the agentless Ansible architecture.
• Describe the performance of Ansible.
• Describe the security of Ansible.
Objective 1.4. Explain how Ansible works
Details
• Describe Ansible modules usage.
• Describe the inventory file (INI and YAML formats).
• Explain the locations searched by Ansible for the inventory file
• Describe the Ansible configuration file.
• Describe dynamic inventory types (plugins and scripts).
Objective 1.5. Describe how to use Ansible with ad-hoc commands
Details
• Describe the ad-hoc command structure (“ansible” command syntax).
• Describe how to pass different arguments to modules.
• Describe authentication methods.
Objective 1.6. Describe how to use Ansible playbooks
Details
• Describe YAML language basics.
• Describe the general playbook structure.
• Explain the difference between modules, tasks, plays and playbooks.
• Describe task results. Explain the difference between “OK”, “changed”, and “failed”.
• Best practices to write idempotent tasks.
• Describe the usage of handlers.
• Describe the usage of tags.
• Understand how to use Ansible to run playbooks (“ansible-playbook” command syntax)
Objective 1.7. Describe Ansible facts and variables
Details
• Explain what are facts and when is fact gathering performed
• Describe how to disable default fact gathering behavior
• Explain how to create and use custom facts
• Explain Ansible variables and how they can be used in playbooks
• Explain the difference between facts and variables
Objective 1.8. Explain Loops and Conditionals
Details
• Explain how loops are implemented in Ansible.
• Describe how to use (multiple) Conditionals.
• Explain how to combine Loops and Conditionals.
• Explain how to keep track of the loop index.
Objective 1.9. Describe Ansible Templates
Details
• Explain the main usage of Ansible templates.
• Describe the Jinja2 template language.
• Explain Jinja2 common tests and filters.
• Describe the template module parameters.
• Describe Jinja 2 filter usage.
Objective 1.10. Describe usage of Ansible Vault
Details
• Explain the advantages of Ansible Vault.
• Describe Ansible Vault commands.
• Explain how multiple vaults can be used in the same playbook (vault IDs).
• Explain how to speed up Ansible Vault operations.
Objective 1.11. Describe Ansible Roles
Details
• Explain the advantages of using roles
• Describe the typical role directory structure
• Explain the difference between the “vars/” and “defaults/” role directories.
• Describe methods of using roles in playbooks
• Explain what happens when a role is applied multiple times within a playbook
Objective 1.12. Describe Ansible lookups
Details
• Describe the most common types of lookup plugins.
• Explain the lookup evaluation process.
Objective 1.13. Describe Ansible Pull
Details
• Explain how ansible-pull works.
• Describe how to use ansible-pull.
Objective 1.14. Describe Ansible Galaxy
Details
• Describe the usage of Ansible Galaxy.
• Explain the ansible-galaxy command (with subcommands).
Objective 1.15. Describe Ansible integration with docker and Kubernetes
Details
• Describe the Ansible docker_service module.
• Describe Jinja filters used to interact with Kubernetes.
Objective 1.16. Describe best practices of Ansible
Details
• Describe the Ansible execution strategies.
• Explain how to use the Ansible debugger (including debugger commands).
• Explain advantages and limitations of Ansible pipelining.
• Explain how to show time spent in Ansible tasks.
• Explain what task delegation is.
• Explain how to abort play execution depending of failure.
Part 2: Chef
Objective 2.1. Chef as a DevOps tool
Details
• Describe Chef as a tool and its purpose.
• Explain how Chef fits inside a CI/CD pipeline.
Objective 2.2. Chef Architecture
Details
• Describe Chef’s components and architecture.
• Describe how Chef’s components interact with each other.
• Describe the Chef communication flow between components.
Objective 2.3. Chef recipes
Details
• Describe what recipes are.
• Explain how code is executed inside a recipe.
• Describe recipe components.
• Describe common resources.
Objective 2.4. Chef Cookbooks
Details
• Describe the use of cookbooks.
• Describe cookbook components and their uses.
• Explain the purpose of the Chef Supermarket.
Objective 2.5. Chef Client Run
Details
• Explain the steps of the chef client run execution
• Explain idempotency in chef client runs
• Understanding and debugging pass / fail execution logs
Objective 2.6. Chef Run Lists
Details
• Describe the use of run lists in the context of Chef.
• Explain Run List execution order and duplicate handling.
• Describe to setup a RunList and apply it.
Objective 2.7. Chef Server
Details
• Describe the purpose of Chef Server.
• Describe the components of the Chef Server.
• Describe the Knife tool and communication flow between Chef Repo and Chef Server.
Objective 2.8. Bootstrapping
Details
• Describe the steps of the bootstrapping operation.
• Understand the communication flow during bootstrapping.
• Understand how to manage nodes with the Knife tool.
Objective 2.9. Chef Security
Details
• Explain how client.pem and validator.pem certificates work.
• Explain the use of “sudo” during the chef client run with different resources.
• Describe permissions requirements when managing Chef Server.
Objective 2.10. Chef Kitchen
Details
• Describe the purpose of Chef Kitchen.
• Explain Chef Kitchen configuration features.
• Describe Kitchen Commands and their uses.