Getting Started with Ansible
What if you could specify WHAT a system should look like and another tool took care of making that possible so you don't need to know HOW it works and can focus on WHAT outcome is desired. That's what Ansible can do for you!
What you'll learn
Ansible is a popular choice for IT automation because it allows you to concisely specify a desired state and then it does the heavy lifting to make that state a reality. In this course, Getting Started with Ansible, you will learn foundational knowledge to quickly and reliably configure just about anything with Ansible. First, you will learn how to install Ansible and use the ansible Ad-hoc command line tool to execute one-off modules in Ansible to configure single aspects of a system like ensuring a line exists in a file, or an application is installed. Playbooks will be composed of modules to build up larger configurations all stored in simple file(s) that pass through ansible-playbook. Then, you'll see how to use inventories to configure multiple machines including a full fledged VM learning lab that you then use Ansible to configure. Next, you'll explore how to learn what you need to know, when you need to know it. Later, you'll see how to swap out Ansible's default usage of SSH via connection plugins to connect to different environments such as Windows machines and docker containers. And how the ansible-pull command inverts Ansible's default push model. Finally, you'll discover reuse with Ansible Galaxy and corresponding ansible-galaxy command via both Roles and Collections. By the end of this course you'll be prepared to move beyond manually configuring applications, servers, networks, etc. Beyond writing confusing scripts. To spending your time on more valuable endeavors.
Table of contents
- Configuring an Explosion of Devices 4m
- Using the git config Command to Manually Configure User Name and Email 7m
- A Repeatable Script to Automatically Configure Git with user.name and user.email 10m
- git config --add Is Not Idempotent Because It Duplicates Config 9m
- Desired State Reconciliation and the Power of Ansible 8m
- Installing Ansible and the Installation Guide Docs 5m
- Updating Ansible via pip or Otherwise 3m
- Leverage the Porting Guides 2m
- Know How to Know What You Need to Know as You Go 2m
- Why Installs and Even Updates Are Easy - Control Node Architecture 5m
- The Ansible Ad-hoc Command 8m
- Disseminating a .gitconfig with Ansible Ad-hoc and the Copy Module 6m
- Understanding Idempotence with the Copy Module 3m
- How Ansible's Copy Module Handles Drift Thanks to Idempotence 3m
- The --check Flag Simply Checks if Changes Would Be Made 3m
- The --diff Flag Shows What Will Change or Did Change 4m
- Ansible Is a Framework for Idempotent Commands 2m
- How About Just Scripting Multiple Ad-hoc Calls! 2m
- Morphing Ad-hoc Calls or Scripted Ad-hoc Calls into Ansible Playbooks 8m
- docker Is to docker-compose What ansible Is to ansible-playbook 1m
- What a Script of Ad-hoc Ansible Calls Looks Like 4m
- Writing a First Playbook to Ensure Our .gitconfig Is Setup 8m
- Running ansible-playbook for the First Time 3m
- Testing ansible-playbook by Removing and Restoring Our .gitconfig 2m
- Increasing ansible-playbook Output Verbosity 5m
- I Cannot Emphasize Enough the Value of Versioning Playbooks with Git 2m
- Adding a Second Play with Two Tasks 5m
- What Happens When We Have a Syntax Error in a Playbook 2m
- What Is Inventory? 2m
- Creating Test VMs with Vagrant 3m
- Perusing My Inventory Directory Example and a Bit About ansible-config list and INVENTORY_IGNORE_EXTS 5m
- VMs Are Operational with No Git Configuration 1m
- Groups and Hosts and Ansible Ad-hoc with Multiple Hosts 7m
- Walking through the Playbook We Will Run against All VM Hosts 8m
- Running Our Playbook against Multiple VMs to Install and Configure Git 7m
- Destroying and Recreating Is Scalable and Reproducible 3m
- Configuring Ansible with ansible.cfg 2m
- Summarizing Inventory with ansible-inventory --graph and with --vars 5m
- Drilling into How Inventory Can Be Represented including with Static INI Files and Inventory Scripts 6m
- Troubleshooting Inventory Scripts by Running Them Independently before Plugging Them into Ansible 2m
- Ansible Uses Inventory Plugins to Provide Inventory in Any Number of Formats including Static and Dynamic 7m
- Learn Just What You Need to Be Productive 2m
- ansible-doc --help Is a Launching Point for Learning 4m
- Perusing Ansible's Source Code to Learn About Ansible and Discovering the git_config Module 5m
- Finding Nuanced Examples Specific to Your Use Case 2m
- Using Our Newfound git_config Module 6m
- Learning from Extending Your IDE 4m
- I Can Not Emphasize the Value of Command Line Completion 1m
- The Ansible Console REPL 5m
- Don't Feel Bad About Evolving Your Usage and Understanding of Ansible 3m
- Perusing the Connection Plugins 4m
- Visualizing Connection Plugins, Specifically the Docker Connection Plugin 5m
- ansible-doc -t connection docker 1m
- Creating Three Background Containers with a Playbook 7m
- Using ansible-console to Quickly Inspect Our Newly Created Containers 3m
- Configuring git in Our Three Containers 3m
- Force Killing and Destroying Our Containers at Mock Speed with state=absent and force_kill=yes docker_container Module Parameters 3m
- Making and Testing a Hypothesis About Ansible Using docker container exec 4m
- ansible-pull Is yet Another Connection Approach 2m
- Roles and Collections Are High Level Compositions of Low Level Blocks 4m
- galaxy.ansible.com 1m
- Finding Content on Ansible Galaxy 2m
- First Look at the ansible-galaxy Command and its Role and Collection Actions 4m
- Listing Installed Roles and an Aside to Learn About keep_remote_files 3m
- ansible-galaxy's role install and remove Actions 4m
- Installing a Role and Finding Role Docs Online 5m
- Know What a Role Does before Using It for Security's Sake and, to Know What It Will Do 7m
- Exploiting Containers to Quickly Test Past ansible-galaxy Versions 3m
- Safety Meets Sanity: Testing a Role in an Isolated, Freshly Created Container 6m