Terraform is an amazing toolset for automating infrastructure in the public and private cloud. This course will teach you the fundamentals of Terraform to deploy infrastructure in a consistent, repeatable manner across multiple services.
Systems Administrators and DevOp Engineers have always been charged to do more with less. Defining infrastructure in code and automating its deployment helps improve operational efficiency and lower administrative overhead. In this course, Terraform - Getting Started, you'll learn foundational knowledge of Hashicorp's Terraform software, a toolset for infrastructure automation. First, you'll discover how to create and update a basic configuration. Next, you'll explore how to use provisioners, functions, and providers to expand your deployment. Finally, you'll learn how to leverage abstraction and improve code reuse with variables, state files, and modules. When you're finished with this course, you'll have the skills and knowledge of Terraform needed to write, plan, and create automated infrastructure deployments.
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.
Course Overview Hi everyone, my name is Ned Bellavance, and welcome to my course, Terraform - Getting Started, an introductory course into the world of Terraform. Terraform is tool used to automate the deployment of infrastructure across multiple providers, both in the public and private cloud. Within this course, you will learn the fundamentals of how Terraform functions, as well as work with a real-world example to gain hands-on experience with the tool. We'll be focusing on a few topics within the course including creating a basic configuration and updating that configuration with new resources, understanding Terraform components such as variables, provisioners, providers, and more, integrating multiple providers in a single configuration, which is a core strength of Terraform, using abstraction and reusable components such as modules to make your configurations consistent and repeatable. By the end of the course, you will be able to dive into the world of automating infrastructure with the Terraform toolset by your side, enabling you to be more productive and do more with less. It's not necessary to know anything about coding or programming prior to starting the course. This is a Getting Started course after all. The demonstrations utilize both AWS and Microsoft Azure, so a passing familiarity is recommended, but certainly not required. If you're interested in automating infrastructure with one of the most exciting toolsets out there, I invite you to dive in to the Terraform - Getting Started course on Pluralsight.
Deploying Your First Terraform Configuration Hello everyone, and welcome to Terraform - Getting Started. I'm Ned Bellavance, IT consultant and Microsoft MVP in cloud and datacenter management, and I'll be helping you learn the fundamentals of Terraform. In this module, we'll be dipping our toes into the vast lake that is Terraform, and by the end of the module, you'll be familiar with some of the basics syntax and components of Terraform, and you'll be ready to deploy your first instance of automated infrastructure. Before we dive into the fundamentals of Terraform, I'd like to present you with a real-world scenario to help place some of the tasks and information that you'll be learning in the context. You know, as an IT admin, I'm always eager to see where the rubber meets the road with any new tool, and I suspect you'll be the same way. Finally, I'll walk you through a demonstration of deploying a basic configuration based on the requirements outlined in the scenario, and you can think of this as your Terraform hello world, if you will, but I promise it will be much more useful than that.
Configuring Resources After Creation In the last two modules, you learned how to set up a basic configuration and instantiate it in AWS, and that's great, but at a certain point, you're going to want to do a little bit more than just create resources, you might want to configure them. Hi, I'm Ned Bellavance, a Microsoft MVP in cloud and datacenter management, and in this module we'll be covering Configuring Resources After Creation. So what's going on in this module? Let's see, first and foremost we're going to get the party started with provisioners. Provisioners are what plug in to resources to perform actions as that resource is being created. So after your EC2 instance is created and starts to spin up, or once you've provisioned a VPC, there are some actions you might want to take afterwards, and those actions can be done locally or remotely, and that's what provisioners are all about. We're going to take a look at our Globomantics scenario, and see what updates have been made to it, a new requests that have come in from Sally Sue the developer and the rest of the crew. And we're going to talk a little bit about Terraform syntax and grammar, I know so far you may have soaked in some of the syntax and grammar of Terraform just by the demonstrations and the code that's already been out there, but now we're actually going to look at some of the formal syntax, and that'll help later when you have to troubleshoot your own configuration files, at least you'll understand what Terraform's trying to do.
Adding a New Provider to Your Configuration When I was first looking at ways to automate infrastructure, I came across cloud formation in AWS and the Azure Resource Management templates, and I thought to myself, that's great if I'm just doing Azure, or AWS, or you know, Google has their thing, but if I want to deploy resources across multiple clouds, that, that seems like something I might want to do, and neither of those toolsets really allowed me to do that. Well, in this module, we're going to add a new provider to your configuration, and see how Terraform makes that possible. Hi, I'm Ned Bellavance, Microsoft MVP in cloud and datacenter management, and this module 4, Adding a New Provider to Your configuration. In this module, we're going to start out looking at our Globomantics scenario, and how things will have once again evolved, and the new requirements that are being put upon you as a system administrator. We're going to take a look at the available providers that exist in Terraform, and how they kind of, what there genesis is, and how they came about, and we're also going to explore functions, and how they are used within a configuration to further automate components of the infrastructure and simplify your configuration file.
Using Variables in Deployments When you're creating good infrastructure defined within code, it's important to separate out values that are going to change from deployment to deployment, and have a way to submit those values depending on the environment and some other confounding factors that might come into your deployment, and that's the function that variables serve. And we've already looked at variables a little bit in the previous modules, now we're going to look a little more in depth in how we can treat them differently. Hi, I'm Ned Bellavance, Microsoft MVP in cloud and datacenter management, and this module is covering Using Variables in Deployments. So for our overview, we're going to look at the scenario within Globomantics, and how the requirements have once again changed. And now we need to create multiple environments, a dev, a QA, production, possibly more, who knows. We're going to see how variables can be leveraged to create those different environments, and how we can store the state for those environments in different ways to keep them separate, but still using the same configuration file. And finally you'll learn a little bit about how to store secrets and keep them in a safe place, and make sure you're not publishing them for the world to see.
Using Modules for Common Configurations As an IT engineer, I don't like to do anything more than once that I don't have to. Writing code is no exception. If I can write a piece of code that can be reused over and over again, you betcha I'm going to do that. In the world of Terraform the way to do that is to write modules for components that keep reoccurring, that you feel will be reusable for future configurations. And this module deals with exactly that. This is Ned Bellavance, Microsoft MVP and Cloud and Datacenter Management, and welcome to Using Modules for Common Configurations. Now for our overview, as you know, we've been following the evolving requirements of Globomantics and the scenario as it changes and evolves. I have to say it's another day at Globomantics and another request is going to come in. Within this module, we're going to look at how modules from Terraform make code reuse easier and simpler. And we're also going to look at how outputs and the process flow follows when you're going to be using these modules. And finally, we're going to put it all together in a pretty excellent demonstration that shows you how modules snap into a configuration, simplify it, and then can be reused in future configurations.