Deep Dive - Terraform

Terraform is an amazing toolset for automating infrastructure in the public and private cloud. This course will teach you the advanced Terraform concepts and functionality needed to take your skills to the next level.
Course info
Rating
(23)
Level
Intermediate
Updated
Feb 6, 2018
Duration
3h 39m
Table of contents
Course Overview
Setting the Stage
Importing Existing Resources
Setting up Remote State and Workspaces
Creating and Using Custom Data Sources and Templates
Adding Terraform to a CICD Pipeline
Integrating with Configuration Managers
Recap and Next Steps
Description
Course info
Rating
(23)
Level
Intermediate
Updated
Feb 6, 2018
Duration
3h 39m
Description

Deploying and maintaining traditional infrastructure is a manual task fraught with repetitive tasks, inconsistent configuration, and always out-of-date documentation. In this course, Deep Dive - Terraform, you'll learn some of the more advanced uses of Terraform for infrastructure automation. First, you'll learn about importing existing infrastructure. Next, you'll explore remote state and data sources. Finally, you'll get an idea of how to integrate Terraform with a CICD pipeline and configuration management software. By the end of this course, you'll know how to incorporate these techniques into your existing skillset, empowering you to integrate Terraform into the rest of your operations and expand out into the larger enterprise.

About the author
About the author

Ned Bellavance is an IT professional and Microsoft MVP with over 15 years of experience in the industry. Passionate about technology, he is always looking to embrace future trends and share new discoveries with the community.

More from the author
Managing Microsoft Azure Information Protection
Intermediate
1h 39m
Oct 11, 2018
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone, my name is Ned Bellavance. And welcome to my course, Deep Dive - Terraform. An intermediate course for those that have a firm grasp on Terraform basics and would like to dive deeper down the automation rabbit hole. Deploying and maintaining traditional infrastructure is a manual endeavor, fraught with repetitive tasks, inconsistent configuration and always out of date documentation. Maybe you've been tinkering with Terraform on some smaller projects. Now it's time to expand your aspirations and tackle enterprise size problems. In this course, we are going to explore some of the more advanced uses of Terraform, including importing existing infrastructure, remote state and workspaces, data sources and templates, CICD pipeline integration and configuration management. By the end of this course, you'll have a deeper understanding of Terraform, including advanced use cases and how it can integrate with other dev ops tools and processes. It's not necessary to be a dev ops guru to jump into this course, however before beginning the course a basic understanding of Terraform and its essential functions is assumed. A novice-level of familiarity with AWS would also be helpful, as the course relies heavily on deploying resources in AWS. If you're interested in taking your fundamental terraform skills and turning them up to 11, I invite you to take the plunge with Deep Dive Terraform at Pluralsight.

Adding Terraform to a CICD Pipeline
Infrastructure deployments are just part of the process. Applications will be deployed on top of that infrastructure, sometimes using something called a continuous integration and deployment pipeline. In order to reduce friction and streamline the application deployment process, it makes a lot of sense to add Terraform configurations to the pipeline and source control. Let's get Terraform integrated with the process. Hey everyone, this is Ned Bellavance, Microsoft MVP and Cloud and datacenter management. In this module, you'll learn how to set up a basic pipeline in Jenkins and integrate your Terraform configurations with automated deployment. Before we dive into the actual integration of Terraform, let's first level set with terminology. Personally, I come from a background of infrastructure and operations, which means that some of the terminology that I'm using here was initially very unfamiliar to me. But don't be scared, this is a safe space. We'll talk through these terms so you can feel comfortable if you're not familiar with any of them as we move forward. Once we feel comfortable with our terminology, we're going to look at how automation is being used at Globomantics, and we walk through an example of how that deployment pipeline is set up. We're going to review Jenkins, Github and some of the supporting services that feedback into the automation process at Globomantics and how we're going to be setting those up in the demonstration. And finally, we're going to go through some considerations in regards to Terraform when you're planning on automation and CICD pipelines.

Integrating with Configuration Managers
Terraform excels at deploying infrastructure but when its job is done, you might want a configuration management application to take over and prepare the resource for code deployment. Working in tandem, Terraform and a config manager like Chef, Ansible or Salt can get the resource configured precisely as it should be and control configuration drift over time. Having an automated hand off and configuration process also removes the possibility of manual configuration error and ensures consistent configuration across all environments. In this module you will learn how to add a configuration manager, Ansible in this case to your Terraform configuration. Hello, this is Ned Bellavance, Microsoft MVP, cloud and data center management and this is Integrating with Configuration Managers. Since, we're going to be using configuration managers, it would probably be useful to define what a configuration manager does, what its functionality is and how it sort of integrates with other things. You could think of Terraform as a tool in a larger tool set and while it does many things very well, there are some things that it's better to hand off to another tool to handle and configuration management if often one of those things. We're going to look at different deployment patterns and how the hand off might happen between Terraform and a configuration management application. Then we'll look at how Globomantics is integrating Terraform and Ansible into their deployment process to get the application laid down on the infrastructure that has been provisioned.

Recap and Next Steps
You absorbed a lot of content in the previous modules, so let's take a pause at the end of this course and try to put everything in context. There's a bigger picture here, namely the expansion of Terraform from your desktop to the larger organization, and the integration of Terraform within a culture of DevOps. You're now armed to start that integration based on what you've learned in this course. We've also encountered some new technologies and concepts that you might want to become more familiar with, including Ansible, Jenkins, Docker and DevOps. Hey, this is Ned Bellavance, Microsoft MVP and Cloud and Datacenter Management, and this is the course Recap and Next Steps for you. So as I said, you've learned a lot in this course, and absorbed a lot of information, but that's not the end of the journey. You can certainly go deeper down the rabbit hole of Terraforms. So we'll talk a little bit about that. There's also some integrations with Terraform in the larger enterprise, so we can talk a little bit about that, and how you might go about integrating Terraform in the enterprise. We'll also talk about the larger ecosystem at play here. There's a lot of tools and toolsets out there beyond just Terraform. And finally, where to go next. What's the next step in your journey?