
This video provides an overview of the entire course.
We teach the viewer to install the software and other prerequisites.
Discuss why not to install Ansible by apt-get, instead of installing it using pip
Install Python, pip, and virtualenv
Install Ansible
Aim of this video to make the viewer understand what we installed and why is it needed.
Install the prerequisites needed
Discuss the prerequisites
Learn about the Ansible configuration
This video aims to set up an Nginx web server using an Ansible playbook with practical examples.
Learn why we chose Nginx
Create and execute Ansible playbooks for Nginx setup
Talk about master playbook and how we will improve it in the coming sections
This video aims to teach Ansible’s basics and how playbooks work.
Learn about YAML and the basic principle about it
Understand how Ansible basically works through these playbooks
Learn how our code directory will be
This video aims to teach you more about how to use the hosts file in Ansible and execute any number of tasks on any number of hosts simultaneously.
Learn about Ansible hosts
Customize and use these hosts file
Learn how we can execute multiple tasks on multiple hosts simultaneously
Learn about Ansible modules and how to use and develop own modules.
Basics of Ansible modules
Developing Ansible modules
How to decide on the development of Ansible modules
Learn about some important Ansible modules and how to use them.
Learn about some of the Ansible modules
Learn about some more Ansible modules
Learn something more about Ansible modules
Learn about some more Ansible modules and how to use them in playbooks.
Some of the Ansible AWS cloud modules
Some more of the Ansible AWS cloud modules
Yet some more of the Ansible AWS cloud modules
This video aims to introduce AWS and the benefits of AWS as a platform. We cover some AWS Services.
Learn why we choose AWS
Learn about the AWS EC2 service
Learn about AWS VPC and ELB services
This video aims to teach a variety of AWS Services.
Learn about the AWS Route53 service
Learn about the AWS RDS service
Learn about the AWS S3 service
This video aims to teach viewers how to create Ansible playbooks for infrastructure automation and purposes.
Create and execute Ansible playbooks for infrastructure automation, such as spinning up instances
Create and execute Ansible playbooks for tasks such as installation of any application like nginx or custom to new servers after spinning up and understand how to terminate them i.e. manage total infrastructure automation.
Learn about Ansible’s characteristics that make us choose it for automation and learn what we achieve through all this automation and tasks.
Let’s understand and take an overview of roles in this video.
Learn about loading var_files, tasks, and handlers
Learn how and why it is better to use roles
Some more examples of playbooks with explanations
In this video we will see how to Convert to roles using tasks and handlers.
Introduction to tasks and how to use them
Introduction to handlers and how to use them
Understand them better with some good examples of Ansible playbooks
Converting to roles using files and templates.
Introduction to files and how to use them
Introduction to templates and how to use them
Understand them better with some good examples of Ansible playbooks
Learn how to include a yaml file or external role in one role or playbook.
Learn about using include in playbooks
Learn about including a role from other existing roles
Learn about importing roles
This video aims to show some large playbooks for big purposes, such as security audit of servers.
Learn about IT security
This video aims to show some large playbooks for big purposes, such as security audit of servers.
Some large Ansible playbooks for purposes such as server security tightening and audit
Learn how security can be taken care of
This video aims to teach where and how to integrate or use custom scripts for several purposes.
Learn how we use custom scripts with playbooks
Learn why we need custom scripts
Learn why we shall stick to Ansible modules most of the time instead of scripts until really needed
This video provides an overview of the entire course.
How to start with Ansible? What are the common commands? What is Heartbleed?
Learn about the standard ad hoc commands
Analyze the main Ansible configuration file
Understand the .cfg file by example
How can the ad hoc commands be used in the Real world examples?
Try out the ping command using the servers
Run the generic ad hoc command against the remote servers
Execute shell and file commands on remote systems
How to use the basic ad hoc commands across web servers?
Install the Apache web server across web servers. Implement the yum command
Get to know about the service module and start the Apache web server
Learn about ad hoc file management and some Ansible facts
How to organize your playbooks?
Learn the basics of organizing your playbooks
Add tasks to a single playbook
Expand your playbook along with learning basic and advanced yml
How to organize large and complex playbooks?
Understand the structure of large playbooks
Learn about playbook organization with an example of ELK stack
Use Git branches to organize your playbooks
What are Handlers and Variables? How are they used in Ansible?
Know the basics of Handlers and Variables
Understand the Ansible Handler example
Execute a code to Restart the Apache server
What are the basics of Conditionals and Logic? How to implement them in Ansible?
Learn about the basics of Conditionals and Logic
Know about the when statement in tasks
Implement a real-world example
How to add a firewall rule? What are its basic steps?
Revise about Variables, Conditionals and Logic
Understand what are the Register values
Execute a code to add an intelligent, idempotent firewall rule
What is Systems Lifecycle Management? What are its contents?
Know what is Ansible User module
Manage Packages and Services
Learn about Ansible Service and Application Content
What are Multi-role Playbooks?
Know how to use multi-role playbooks over standalone systems
Understand CI/CD and testing
Implement a real world example
What are modules and plugine? How are they useful in Ansible?
Learn about Modules and Plugins
Compare Modules and Plugins
Implement Ansible – doc command
What is Ansible Galaxy? What does it consist of?
Understand Ansible Galaxy using an example
Install Galaxy Roles using requirements.yml
Execute a real world example
This video provides an overview of the entire course.
A DevOps pipeline can automate software build and deployment, but it must include complex and sophisticated tasks. Ansible can automate those tasks.
Describe the DevOps pipeline
Show how Ansible helps with DevOps
Demonstrate a DevOps pipeline with Ansible
To get the advantages of DevOps, we need to understand what DevOps is and why it is important.
Understand the DevOps culture, tools, and mindset
Discuss the flow from development to production
Understand how monitoring flows data back to development
Correctly setting up our DevOps pipeline is important. Ansible can help us not only in our DevOps pipeline but also in setting up the pipeline itself.
See how Ansible uses playbooks for automation
Set up a Gitlab CI server with Ansible
Install Ansible itself using Ansible
Deploying to a cloud environment such as Amazon Web Services requires us not only to build our software but also to assemble a complete system.
Show the difference between build artifacts and an assembled application
Show how Ansible helps us perform our application assembly
Demonstrate deploying a complete application to Amazon Web Services
Rapid deployment of an application to AWS requires a prebuilt machine image. We can automate this build with Packer and Ansible.
Describe how Packer works to build machine images
Show how Packer integrates with AWS
Show how Packer uses Ansible to provision the machine it is building
As our use of Ansible gets more sophisticated, we need to organize our automation into roles so that we can better maintain and reuse our work.
Use a role from an Ansible playbook file
Download and use a pre-made role from Ansible Galaxy
Build a custom role to install and configure a custom application
The roles we download or build ourselves contain complex information about how to configure a piece of software. Templates and variables allow us to simplify that information to make it easy to modify.
Deploy a configuration file using the Ansible template module
Define variables in templates to better customize our role
Declare variables outside the role to control the role’s behavior
Automating software configuration requires access to secret information like credentials. Ansible Vault will allow us to store that information safely.
Encrypt a variable file with Ansible Vault
Edit a file while it is in an encrypted state
Use an encrypted file as part of an Ansible playbook run
Installing into a cloud environment like AWS is complex because of the dynamic networking involved. Ansible provides tools to simplify this process.
Build an inventory file to manage virtual machines in AWS
Run an Ansible playbook against an AWS virtual machine
See how Ansible can dynamically generate its inventory based on our current AWS configuration
Deploying an application to AWS requires using multiple different resources. Ansible can automate creating and modifying these resources so we can keep our application up-to-date without any downtime.
Understand how AWS rolling updates work
Deploy AWS resources using Ansible
Roll our AWS deployment to a new application version with zero downtime
To test an application that requires multiple virtual machines, we need a tool like Vagrant that is designed to dynamically create and provision virtual machines.
Understand how Vagrant works and what it is for
Configure Vagrant using a Vagrantfile
Use Ansible to provision a Vagrant virtual machine
With Vagrant and Ansible working together, we can build a test environment that deploys an instance of our application, runs tests, and then clean up.
Add tasks to Ansible to perform testing and report results
Configure Ansible via Vagrant using environment variables
Run an integration test with Vagrant and Ansible
To make our integration test as realistic as possible, we are going to deploy our application to the same AWS environment we use for production.
Increase the capabilities of Vagrant using plugins
Install the Vagrant AWS plugin
Configure our Vagrantfile to create dynamic virtual machines in AWS
Our new integration test should run automatically whenever the application changes. We can use Jenkins to launch our integration test.
Create a Jenkinsfile to configure the integration test
Assign the Jenkins job to a build slave with Vagrant and Ansible installed
Run the Jenkins job automatically when the application changes
Ansible provides two separate ways to build Docker containers from an Ansible playbook and we need to understand the advantages of each one.
Demonstrate the Ansible Docker Connector
Demonstrate the Ansible docker_image module
Discuss the advantages of each approach for using Ansible to build Docker containers
Ansible provides a simple and sophisticated solution for running applications based on Docker.
Use the docker_container module to run Docker containers
Use the docker_volume module to create persistent storage for containers
Show how we can use Docker automated host resolution to simplify application configuration
To use our containerized application in a container orchestration environment, we need to push our Docker image to a registry with a unique tag for each build.
Configure Docker push using the docker_login module
Use extra variables to create unique tag names for each build
Use the docker_image module to push to a registry as part of the build
To perform a rolling update of our containerized application running in Docker, we need to understand how to use Docker Compose in our Ansible playbook.
Use the docker_service module to define our application for Docker Compose
Deploy our Docker Compose application using Ansible
Use Ansible to roll our application to a new version with zero downtime
We need an automated test for our containerized application. We can use Docker to create a test environment, making it easy to clean up when our test is done.
Configure Gitlab CI to automatically run our containerized test
Build a test script that uses Docker to create a temporary test environment
Capture the result of the test and return the result to Gitlab CI
To control resources in Kubernetes, we can use Ansible’s k8s_raw module, but we must configure it with the necessary authentication information for the Kubernetes API server.
Show the k8s_raw module in an Ansible playbook
Identify how to specify authentication information for Kubernetes
Demonstrate an Ansible playbook that deploys to Kubernetes
Kubernetes has a unique set of resources that together allow us to deploy an application. We need to understand what resources to use for our application.
Build persistent storage for our application’s database
Create a database deployment and service
Create our application’s deployment and service
Application integration tests can require multiple components to work together. Kubernetes and Ansible can allow us to deploy our application for testing.
Create a unique namespace to keep our test separate
Create a test pod that runs a test version of our application
Execute our test within the test pod and report the results
To deploy our application to Kubernetes using Ansible, we need to understand how each of the Kubernetes resources are declared in the playbook.
Define the persistent storage for our application
Pull in the database and application service definitions from a separate file
Use Ansible’s lookup function to populate variables to properly define our database and application deployments
We need to keep our application running in Kubernetes even while we deploy new versions. We can use Ansible to simplify our Kubernetes rolling updates.
Run our Ansible playbook and review the resulting Kubernetes resources
Expose our application’s service through a port on the Kubernetes host and access it in a browser
Roll our application to a new version and see how Kubernetes updates a pod at a time to avoid downtime
Designed for multi-tier deployments since day one, Ansible helps take software updates from testing to deployment in a short period of time. It is a great solution for orchestrating DevOps pipelines. Whether you want to manage an entire cloud region, configure network devices, or orchestrate configuration changes across Linux or Windows machines, Ansible is up to the challenge!
This comprehensive 3-in-1 course follows a practical, informative, step-by-step approach to safeguard your system with advanced features of Ansible as well as automate your DevOps and Continuous Delivery process. You’ll begin with configuring and managing your infrastructure using Ansible Playbooks. You’ll then get a deeper understanding of Ansible design and usage, paving the way for designing and managing your own automation using Ansible. Moving further, you’ll deploy and configure your own Git repository server to serve as the basis for your DevOps pipeline.
Towards the end of this course, you'll learn Ansible 2 and perform security automation, CI/CD for software delivery using DevOps with Ansible.
Contents and Overview
This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Getting Started with Core Features in Ansible 2, covers how to automate your infrastructure like a pro using Ansible 2. This course teaches you the key new features in Ansible 2 and gives an introduction to how to create Ansible playbooks and modules. You will also learn modular configuration using roles to simplify your tasks even more. You will learn to overcome security, automation, and deployment concerns by implementing Ansible playbooks. By the end of this course, you will have learned how to create and install custom modules and plugins which can be integrated to automate processes. You will speed-up software delivery from development to production by automating tasks and deliver applications much more efficiently.
The second course, Practical Ansible Solutions, covers real-world examples and methodologies to automate common IT tasks easily and effectively using Ansible. In this video course, we'll focus on getting things done quickly, using real-world examples and a hands-on teaching style rather than focus too much on theory and conceptual ideas once the basics are covered so you can get the job done. Core concepts—such as setting up the inventory and playbooks, ad-hoc commands and quick and dirty heavy lifting will get you up and running quickly. We'll then dive into proper playbook organization and using handlers, variables, conditionals, and logic for maximizing the efficiency of your automation workflow. We'll also dive into handling growth and multi-role playbooks and stack orchestration. As we move onward to victory, we will dive into systems lifecycle management so you can handle users, software and packages, authentication, services and application/web content with ease as well as touch on Ansible Tower/AWX. We'll end the journey with consuming and using Ansible Galaxy so you can borrow, share and collaborate with the vibrant Ansible Open Source community and the plethora of community roles and playbooks available on the internet. At the end of this course, you will attain a deeper understanding of Ansible usage and design and be empowered to create your own playbooks, properly growing and scaling them to adapt to the ever-changing needs of your IT landscape.
The third course, Hands-On DevOps with Ansible, covers automating your DevOps and Continuous Delivery software delivery process using Ansible 2.x. In this course, we show how a DevOps pipeline can speed up your software development. We will use DevOps practices to automate your building and testing environments to push software into production. You will use Ansible to automate your DevOps pipeline. Whether you test and deploy applications on-premise or in the cloud, and whether you build full systems or containers with Docker and Kubernetes, by the end of the course you will be able to develop and deploy reliable applications with speed using Ansible.
Towards the end of this course, you'll learn Ansible 2 and perform security automation, CI/CD for software delivery using DevOps with Ansible.
About the Authors
Prateek Jain is an enthusiastic DevOps Engineer with the necessary drive and determination to work with organizations to build large platforms, with a focus on end-to-end automation, the cloud, continuous delivery, and infrastructure automation. He is a senior DevOps Engineer and Security Chief in the current organization. He specializes in security and automation.
The primary course author, Will Foster, has been in the IT industry for the past two decades helping organizations build, automate and streamline platforms for business success. He is currently working as a Systems Engineer / DevOps professional in the realm of Performance and Scale Engineering. Will also leads and maintains several Open Source upstream projects.
Alan Hohn is a Software Architect who primarily works in Java, Go, and Python. He has a lot of experience re-architecting embedded systems and in combining embedded and enterprise approaches. Currently, he works as a Lockheed Martin Fellow encouraging the adoption of virtualization, DevOps, and cloud technologies. This also means that he frequently tries out new technologies and new approaches. He enjoys teaching on technical topics and enjoys hearing from those who find his courses useful. He is employed by Lockheed Martin Rotary and Mission Systems and his personal blog is called Variegated.