To attend this course you must have a good understanding of
You should attend if you are planning to use a cloud technology, and wish to be able to repeatably build your infrastructure in the cloud, and be able to create environments such as Development, Testing and Production, etc from the same source code, but using different parameters. The aim of the course is to help you build better cloud environments in less time and to manage these environments in a repeatable and automated way.
The aim of this course is to provide a hands on approach to working with Terraform and providing as much time for you to get your hands dirty and fix any problems that may occur during the course. The sessions will consist of some theory to understand the concepts of Terraform, but mostly you'll be following examples either instructor lead, or through lab exercises.
A good understanding of Linux command line and Git as you will need to write some commands at the command line and manage your code in a version control environment. You should have experience of a cloud based environment, and understand network topologies and configuring and installing software on computers through Linux.
1st Day: Start 9:00am - Finish
5:00pm
Subsequent Days: Start
9:00am - Finish 5:00pm
Here we will discuss what Terraform is, its advantages of managing your infrastructure and where it fits into your DevOps processes. We will also discuss the different ways in which you can use Terraform to manage your IT projects.
Before we get into the details of Terraform we will look at some best practices for doing infrastructure as Code, as well as some other tools you may require to help make IaC work for you.
We'll get straight in to using Terraform by installing it on to a Linux system, and integrating it into AWS or Azure ready for us to run our code.
In this module you will write some Terraform code to launch instances in your cloud provider. We will also introduce variables to enable changes to your code when executed.
Here you will set up your Terraform project and ensure dependencies are ready.
Checking your code and changes using plan. Applying and destroying your resources. You will also make use of the variables you created earlier, and see how to override them at runtime.
Understanding resources in more detail. Where to find the documentation and arguments required. Why it is important to name your resources, and pass runtime values between the resources where one is dependent on another.
Understand what providers are and where to use them. We will add a provider to our code to provision our launched instance.
Here you will add the ability to pass information between youe Terraform code and modules.
As your configuration become more complex with varying attributes that require data at runtime, you'll need to be able to create files or other settings that could be specific to an instance, or other resource. In this module you will learn how to pass data into templates that will be configured at runtime.
Here you will be introduced to working with modules. You will understand how you can save time and create your own library of modules, as well as how to find and use modules available in the public domain. You will also be able to integrate them with your existing code to make use of runtime values and outputs.
In this section you will learn what a state file is, view the content of the file and look at how you can improve this for the enterprise and collaboration through remote states. You will also learn how to check the remote state, and how to fix discrepancies between local and remote states.
In this module you will learn how to obtain data from other Terraform configurations or state that are not in your section, but available when all the code sections a brought together.
Sometimes you just want to run something that doesn't need to be part of the cloud. We will also look at how you can create multiple resources using the same piece of code under the same resource.
In this section you will see how Terraform deals with dependencies both in creation and destruction. You will learn what to do when your infrastructure does not destroy.
Here you will learn how to run specific parts of your Terraform code.
All businesses want to be efficient in their code and scalability. Here you will be able to store states for different environments such as Development, Testing and Production but use the same code for all of them.
In this module we will take our Terraform code which will be in a Git repository, and have it automated to perform tests and updates to our environment.