Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Ansible 2 for Security Automation and Implementing DevOps
Rating: 4.2 out of 5(43 ratings)
448 students

Ansible 2 for Security Automation and Implementing DevOps

Learn Ansible 2 and perform security automation, CI/CD for software delivery using DevOps with Ansible.
Last updated 4/2019
English

What you'll learn

  • Configure and manage your infrastructure using Ansible Playbooks.
  • Perform SSH hardening and manage SSH users with Ansible.
  • Deal with SELinux at a more advanced level.
  • Create task Blocks and choose the right Ansible Strategy for the job.
  • Integrate Ansible with various Cloud Providers such as AWS and OpenStack.
  • Design every step in the DevOps pipeline, from code check-in to deployment.
  • Deploy and configure your own Git repository server to serve as the basis for your DevOps pipeline.
  • Build virtual machines to automate testing and deploying your applications.
  • Create a containerized application by using Ansible to build custom Docker images.
  • Deploy a virtualized or containerized application and automatically and safely roll out updates.

Course content

3 sections74 lectures9h 20m total length
  • The Course Overview4:25

    This video provides an overview of the entire course.

  • What Is Ansible?3:29

    In this section, you'll learn about the most popular uses of the Ansible automation tool. It's a tool that you can use to manage the full life cycle of your infrastructure.

    • Use of the Ansible automation tool

    • Ansible Security

  • Why Ansible?3:09

    Ansible is more than just configuration management, like many other tools in this space. It's also much more lightweight than competitors like Puppet and Chef—to configure a server, all you need is an SSH login and Python 2 installed.

    • Reasons to try Ansible

  • Demonstration – From Bash to Ansible19:28

    We'll use a simple example: installing and configuring an nginx server and a simple static HTML website, first using bash and then using Ansible.

    • A demonstration of how configuration management has changed over time

    • Differences between traditional bash and process in Ansible

    • An example on manual versus shell script versus playbook

  • Course Layout2:54

    This video gives you an overview of how the course is structured. The focus is on practical, real-world applications, since that prepares you for real-life application of this knowledge.

    • Install and set up the environment for Ansible

    • Basic configuration files

    • Cloud integration and Ansible tower

  • Basic Ansible Vocabulary2:53

    In this video, we'll cover the basic Ansible vocabulary. You'll have many basic questions answered.

    • What's the difference between a server and a machine?

    • What is an Ansible target machine?

    • How do Ansible tasks, plays, and playbooks fit together?

  • New Features in Ansible 2.03:30

    In this video, you'll learn about the new features and improvements that Ansible 2.0 offers.

    • Task blocks (which can make your code easier to read and reason about)

    • Dynamic includes (which can allow you to simplify your playbooks)

    • Execution strategies (which can dramatically improve Ansible's performance on large deployments)


  • Creating an Ansible Home Base3:02

    In this video, we'll set up an environment that you can use to safely practice everything you see in this course.

    • Which type of VM to use for your Ansible Controller machine

    • How to set things up to make your learning experience comfortable

  • Installing Virtualbox and Creating an Ubuntu Virtual Machine5:48

    In this video, we’ll be installing Ansible on Ubuntu and further we’ll look two ways of version-based installation.

    • Install Ansible on Ubuntu

    • Two ways to install Ansible on Ubuntu

  • Installing Ansible8:30

    In this video, you'll learn the three most popular ways to install Ansible, and decide which one is right for you.

    • How to install Ansible through your package manager (if you just want a low-fuss install to learn with )

    • How to install Ansible through their third-party repository (PPA) in Ubuntu (if you want something more up-to-date)

    • How to install Ansible through pip (if you've already got a Python development environment set up)

    • Use the Ansible-provided script to set up your shell environment so that you can use your bleeding-edge Ansible code


  • Setting up our Test Environment7:33

    In this video you'll learn how to simulate test machines with LXC (Linux Containers). LXC is a lightweight precursor to Docker which will let us configure some test hosts that we can run Ansible against.

    • Create three containers

  • Target Machine Requirements3:07

    Ansible only requires two things: Python 2 and a running SSH service. In this video, I'll show you the 10-second process that prepares a brand-new host for Ansible.

    • Automated by a playbook in one of the first pieces of Ansible code

  • Ansible Configuration Hierarchy5:16

    In this video, you'll learn where Ansible looks for its primary configuration file, and the different ways in which you can approach configuring Ansible.

    • The top-level Ansible configuration file

    • The user-level Ansible configuration file

    • A config file in the directory that Ansible is being executed from

    • The ANSIBLE-CONFIG environment variable

  • Ansible Hosts Inventory File5:19

    How does Ansible know which hosts to configure? The Ansible Hosts (Inventory) file!

    • What the inventory file is?

    • Basic syntax for the Ansible inventory file

    • The top-level Ansible inventory file (/etc/ansible/hosts)


  • Ad-Hoc Commands7:54

    Ad-Hoc Commands are simple one-off commands that perform a single action on a target host. These simple replacements for small bash scripts or 'for' loops are run from the command-line, and work well for cases where a full-featured Playbook is overkill. You'll see Ad-Hoc commands for doing several things across one server, or many servers at once

    • Pinging and checking memory usage

    • Install a package

    • Add timeouts to your commands

    • Specify additional command-line arguments (custom users, ignoring host-key checking, etc.)

  • Introduction top playbooks19:40

    Playbooks are the Ansible feature you'll be working with on most projects. In this video, you'll learn the three components that make a Playbook what it is: tasks, templates, and handlers.

    • Discuss how Playbooks make code reuse easy

    • See some simple examples of practical playbooks

  • Playbook Structure11:16

    In this video, you'll learn how to structure your playbooks for maximum readability, predictability, and flexibility. You'll learn about Roles, and how they can help you reuse code. Note: For this course, we're not using every available Playbook feature, because it can make things excessively complex. We're focusing on the practical 90% of features that you'll be using every day.

    • Look at some Python code that creates an empty playbook template

    • Compare that to a playbook-creating Ansible playbook

  • Introduction to Modules6:01

    In this video, you'll learn what Ansible modules are and how they help you get things done.

    • Where to find documentation for modules you are interested in

    • The advantages of using modules vs. manually managing a task

    • Managing state versus managing process, and how it can make your life easier

  • Common Modules11:29

    In this video, you'll learn about some of the most popular (and useful!) Ansible modules. At the end of this video, you'll have a list of modules to dig into, which you can use to manage

    • Using Package module

    • Using Files and Directories module

    • Using System state module

  • Variables and Facts17:55

    In this video, you'll learn about how Ansible deals with Variables and Facts:

    • The different levels (namespaces) at which variables can be applied

    • The most common places to set variables and their benefits/drawbacks

    • How Ansible gathers facts about a target host, and when you might want to disable this behavior

    • How you can access facts that Ansible has registered


  • Real-Life Playbook: Mattermost Deployment12:02

    In this video, you'll see a real-life web application deployment. We'll be setting up Mattermost, an open-source alternative to the popular Slack team-chat application.

    • Deployed on a single test host

    • Install and configure the Mattermost application

  • Real-Life Playbook Walkthrough14:43

    This video reviews everything we just saw in the application deployment. After watching this video, you'll start to have an intuitive 'real-world' grasp of how a playbook works.

    • Look at the different modules

    • Ansible features that were used

  • Debugging and Troubleshooting13:06

    While developing Ansible automation, you'll be doing a lot of troubleshooting as part of the process. In this video, I'll show you the most common Ansible features that you'll use for debugging, along with some of the most common Ansible errors you'll encounter.

    • Doing troubleshooting

    • Use debugging along with Ansible errors

  • Conditionals and Control Flow4:52

    In this video, you'll learn about the control flow that you can use in your Tasks and Plays. At the end of this video, you'll be comfortable with Ansible iteration constructs like:

    • with_items

    • with_dict

    • with_nested and conditionals like:

    • when

    • register

    • changed_when

    • failed_when

  • Templating, Control Flow, and Iteration in Jinja27:37

    In addition to control flow in your YAML files, we can also introduce control flow for our file content in your Jinja2 templates.

    • Introduce control flow for your file content

    • Use regular Python for control flow and iteration

  • YAML Basics4:37

    We have been using YAML to write your Playbooks, Plays, Tasks, and Handlers. Now it's time to dig in for a moment and learn some of the rules you need to keep in mind when working with this markup language.

    • Learn some of the rules of YAML

    • Working with this markup language

  • Ansible Blocks3:59

    Task Blocks are one of the useful new features in Ansible 2.0. They allow you to group related tasks together, so you can tie control-flow to larger chunks of actions. This is something that comes in handy for larger actions which are made up of several tasks.

    • Learn the optional 'rescue' and 'always' block features

  • Performance and Execution Strategies8:10

    Ansible has two built-in execution strategies that affect how it applies tasks to hosts. Knowing whether you want to use the linear (default) strategy or the free strategy can make the difference between completing a deployment in minutes or hours

    • Difference between using a linear(default) strategy and free strategy

    • Choosing the right feature

  • Ansible Galaxy4:58

    Ansible Galaxy allows you to leverage open-source roles that other people in the Ansible community have created. It can be useful for studying code that others have written, or for quickly getting some functionality that you need without having to write it from scratch.

    • Install a role from Ansible Galaxy

    • Use that role in a Playbook

    • Control where a downloaded role is stored

    • Remove a role (cleanup)

  • Security4:13

    In this video, I'll cover some of the basic security features. This is essentially a quick list of "best practices" and "things to watch out for." Using Ansible for provisioning, deployment, configuration management, and orchestration does not absolve you of managing the security of your systems...you'll still have to invest thought and planning into how you do this.

    • Cover some of the basic security features

    • Using Ansible for provisioning, deployment, configuration management, and orchestration

  • Ansible in the Cloud3:01

    Ansible can be used to provision services on all major cloud providers: Amazon Web Services (AWS), OpenStack, Google Cloud, Microsoft Azure, and more. There are also Ansible modules for on-premise virtualization and cloud solutions, which makes it really easy to get started.

    • Use provision services on all major cloud providers

    • UseAnsible modules for on-premise virtualization and cloud solutions

  • Ansible AWS Demo25:10

    In this demonstration, you'll see how the Mattermost Deployment playbook was ported to Amazon AWS.

    • Provisioning and configuring Application Servers on EC2

    • Provisioning an RDS instance and a replica to handle our database needs

    • Creating EC2 security groups to manage access and protect our infrastructure

    • Dynamically creating host groups from the infrastructure we're provisioning

  • Ansible Tower2:30

    This video will give you a quick taste of Ansible's commercial solution: Ansible Tower. This is a web application wrapper around the core open-source Ansible toolset

    • Role-based Access Control.

    • An API that you can integrate into the rest of your automation tooling.

    • A GUI that allows nontechnical users to leverage Ansible's power.


  • Test your knowledge

Requirements

  • No prior basic Knowledge of Ansible is required.

Description

Ansible is a simple, open source, IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs. 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 software delivery process. You’ll begin with configuring and managing your infrastructure using Ansible Playbooks. You’ll then integrate Ansible with various Cloud Providers such as AWS and OpenStack. Moving further, you’ll build virtual machines to automate testing and deploying your applications. Finally, you’ll create and deploy a containerized application by using Ansible to build custom Docker images.

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, Ansible 2 for Beginners, covers automating manual tasks for your organization with ease using the highly reliable Ansible 2. In this course, you will get started with Ansible 2.0, including its installation, the problems it solves, and more. We will also walk through creating your very first playbooks. You’ll understand the power of variables and quickly be able to manage environments and implement strategies. You will find out how to integrate with different cloud platforms and be introduced to Ansible Galaxy and Tower, which are Ansible's enterprise tooling for supporting large-scale infrastructure. By the end of this course, you will be well versed in the basics of Ansible and be able to automate your organizational infrastructure easily.

The second course, Ansible 2: Advancements with Security Automation, covers safeguarding your system with advanced features of Ansible 2. The course starts with basic Ansible concepts and later progresses to the advanced features of Ansible 2. You'll start with the usage of Ansible with non-Linux targets, before then moving on to discuss some advanced uses of Ansible Tower. Ansible Tower makes it easy to control the way your infrastructure is configured via configuration definitions and continuous remediation. Next, we will look at secure user management with Ansible managing multiple user and different permissions. We will be closely looking at more complex hardening with STIG and CIS.

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

  • David Cohen: I've been a system administrator, platform engineer, DevOps engineer, and software developer in everything from small businesses to growing companies (100+ employees) and large tech/engineering firms (10,000+ employees). Most of my work has centered on Linux and UNIX system administration, web security, and software development in Python, Ruby, JavaScript, and Go. I've also done stranger things like helping to design two Tier-4 data centers and being an Infantryman (not at the same time). On my tutorial Linux YouTube channel, I've helped tens of thousands of people learn the basics (and not-so-basics) of system administration, DevOps, and software engineering.


  • Anish Nath is a developer, author, and a hacker who is willing to contribute and learn. He is an active member of StackOverflow and a DevOps Engineer. He has expertise as a security advocate and security architect. He is experienced in handling security issues such as performing white-hat hacking. He is a community-oriented developer.


  • 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.

Who this course is for:

  • This course is perfect for:
  • System Administrators, Developers and IT professionals who not only want to automate their organization’s infrastructure using Ansible but also implement a fully automated DevOps pipeline.