A hands-on tutorial that teaches Infrastructure as Code concepts and tools through practical labs covering Packer, Terraform, Ansible, Vagrant, Docker, Docker Compose, and Kubernetes.
Infrastructure As Code Tutorial. Covers Packer, Terraform, Ansible, Vagrant, Docker, Docker Compose, Kubernetes
This tutorial is designed for IT professionals and enthusiasts who want to learn how to manage infrastructure efficiently using Infrastructure as Code (IaC) principles. It provides practical labs to understand how popular IaC tools work together to automate and secure infrastructure deployments, primarily using Google Cloud Platform as the example environment.
The tutorial was created in 2018 and may contain outdated instructions due to changes in APIs and repositories; users should verify and update commands as needed. It assumes access to Google Cloud Platform but principles apply to other cloud providers. The tutorial emphasizes practical experience over theoretical explanations and encourages community contributions to maintain relevance.
Clone the repository: git clone https://github.com/Artemmkin/infrastructure-as-code-tutorial
Ensure access to Google Cloud Platform for infrastructure provisioning
Follow the prerequisites guide in docs/01-prerequisites.md to install required tools (Packer, Terraform, Ansible, Vagrant, Docker, Kubernetes CLI)
Navigate through the labs sequentially starting from docs/00-introduction.md
Use the example repository https://github.com/Artemmkin/infrastructure-as-code-example if stuck
git clone https://github.com/Artemmkin/infrastructure-as-code-tutorial
Clone the tutorial repository to your local machine.
Follow labs in docs/ directory (e.g., docs/04-packer.md, docs/05-terraform.md)
Step through practical labs to learn how to use each IaC tool.
Use Google Cloud Platform CLI tools to provision infrastructure as guided in the labs
Apply learned concepts by provisioning infrastructure on GCP.
Submit pull requests with fixes if you find broken instructions
Contribute to keeping the tutorial up to date by submitting fixes.