Detailed Course Outline
Module 01 - Introduction to Terraform for Google Cloud
Topics:
- Introduction to IaC
- What is infrastructure as code (IaC)?
- Problems IaC can solve
- Benefits of IaC
- Provisioning versus configuration
- Imperative versus declarative approach
- Introduction to Terraform
- Terraform overview
- Terraform features
- IaC configuration workflow
- Terraform use cases
- Using Terraform
- How to use Terraform
- Running Terraform in production
- Installing Terraform
- Authentication for Google Cloud
Objectives: Upon completion of this module, the student will be able to:
- Define infrastructure as code.
- Explain the features and benefits of using Terraform.
- Explain the use case of Terraform for Google Cloud.
- Describe how to use Terraform for Google Cloud.
Module 02 - Terms and Concepts
Topics:
- The Author phase
- Terraform Directory structure
- Introduction to HCL syntax
- Resources
- Variables
- State
- Modules
- Terraform commands
- terraform init
- terraform plan
- terraform apply
- terraform fmt
- terraform destroy
- Terraform Validator tool
- Introduction
- Why use the Terraform Validator tool
- Validation workflow
- Terraform Validator use cases
Objectives: Upon completion of this module, the student will be able to:
- Explain the Terraform workflow.
- Create basic configuration files within Terraform.
- Explain the purpose of a few Terraform commands.
- Describe the Terraform Validator tool.
- Create, update, and destroy Google Cloud resources using Terraform.
Module 03 - Writing Infrastructure Code for Google Cloud
Topics:
- Introduction to Resources
- Resources overview
- Syntax
- Example
- Refer a resource attribute
- Considerations to define a resource block
- Meta-arguments for resources
- Resource dependencies
- Implicit dependency
- Explicit dependency
- Introduction to Variables
- Overview
- Syntax to declare a variable
- Syntax to reference and assign a value to a variable
- Variables best practices
- Introduction to output values
- Output values overview
- Best practices
- Terraform Registry and CFT
- Introduction to Terraform Registry
- Introduction to CFT
Objectives: Upon completion of this module, the student will be able to:
- Declare the resources within Terraform.
- Explain implicit and explicit resource dependencies.
- Use variables and output values within the root configuration.
- Explain Terraform Registry and Cloud Foundation Toolkit.
Module 04 - Organizing and Reusing Configuration with Terraform Modules
Topics:
- Introduction to modules:
- Why are modules needed
- What is a module?
- Example
- Reusing configurations by using modules
- Module sources
- Calling a module into the source configuration
- Using variables to parameterize your configuration
- Pass resource attributes using output variables
- Module use cases, benefits, and best practices
Objectives: Upon completion of this module, the student will be able to:
- Define Terraform modules.
- Use modules to reuse configurations.
- Use modules from the public registry.
- Use input variables to parameterize configurations.
- Use output values to access resource attributes outside the module.
Module 05 - Introduction to Terraform State
Topics:
- Introduction to Terraform state
- How information is stored in a Terraform state file
- Ways to save a state file
- Storing a state file in a Cloud Storage bucket
- Issues when storing the Terraform state locally
- Benefits of storing a state file in a Cloud Storage bucket
- Process of storing a Terraform state file remotely in a Cloud Storage bucket
- Terraform state best practices
Objectives: Upon completion of this module, the student will be able to:
- Define Terraform state.
- List the benefits of storing the state file remotely.
- Explain how to store the Terraform state in a Cloud Storage bucket.
- Explain Terraform state best practices.