In this course, we will get started with Terraform, but first we will take a look at Infrastructure as a code Or IaC and the different types of tools available in IaC and their purpose in managing modern IT Infrastructure. We’ll then see the role of terraform in the today’s IT Infrastructure. We’ll then learn how to install Terraform, This is followed by the basics of HashiCorp Configuration Language (HCL). Next we have our first lab where you’ll get your hands dirty with HCL syntax. We will then learn the basics of Terraform such as Providers, Input and Output variables, Resource Attributes and Dependencies.
After this we take a look at state in terraform – what it is, why it is used and considerations to follow when working with state. We then dig deeper in to the fundamentals– starting with the different commands provided by Terraform. This is followed by a lecture where we understand the difference between Mutable and Immutable infrastructure. This is followed by lifecycle rules in terraform where we will learn how to manage the ways in which resources are created. This is followed by other basic topics such as datasources, meta arguments such as count and for each and finally understand version constraints in Terraform.
After this we have a dedicated section on AWS. This section begins with optional lectures and demos where we learn the basics of AWS. – such as setting up an AWS Account and learning about some of the basic AWS services such as IAM, S3, DynamoDB. We will then see how to provision and manage these services using Terraform. Each of these topics, including the ones for AWS are followed by hands on labs where we get to practice the concepts on a real infrastructure.
We will then learn concepts such as remote state and state locking with Terraform and then see how to store state in a remote s3 backend. Next we will see how to use terraform state commands to manipulate the state file. We then have a few lectures and demos where we get introduced to EC2 service and learn how to provision it using terraform. Finally we will learn about provisioners in terraform - what they are, the different types, behaviour and considerations to follow when working with provisioners. We then look at resource taints, learn how to enable debugging and then import other resources in the management of terraform, Terraform modules - what they are, how to create them and also how to make use of modules available in the public terraform registry. We will then learn about functions and continual expressions in Terraform and how to test them using the terraform console. We will then learn about workspaces in terraform – what they are, how to create them and when to use them. We will wrap up the course with an introduction and high level overview of the features offered by Terraform cloud.