A practical learning path for GitHub Actions, Terraform, and Ansible through small WordPress projects.
| Tool | Responsibility |
|---|---|
| GitHub Actions | Automates checks, deployments, and infrastructure runs. |
| Terraform | Creates and removes AWS resources: networking, access rules, and EC2. |
| Ansible | Configures the operating system and application on the provisioned server. |
- 01-gh-actions-ssh-wordpress — deploy WordPress changes over SSH.
- 02-terraform-ec2 — EC2 infrastructure defined as code.
- 03-ansible-wordpress — repeatable server and WordPress configuration.
- 04-full-pipeline-wordpress — full pipeline: infrastructure, configuration, deployment, and test.
- Before the first deployment, configure a budget alert in AWS.
- Do not commit SSH keys, AWS tokens, or
.tfvarsfiles containing secrets to the repository. - Allow SSH only from required IP addresses; do not use
0.0.0.0/0except for a short, deliberate test. - After an exercise, run
terraform destroyand check for remaining volumes, Elastic IPs, or other resources.
Create the local Git repository and publish it to GitHub before adding workflows:
git init
git add .
git commit -m "docs: add DevOps learning roadmap"Create an empty GitHub repository named programmable-devops-lab, without a README, license, or .gitignore. Then connect and push the local repository:
git branch -M main
git remote add origin git@github.com:<YOUR_GITHUB_USERNAME>/programmable-devops-lab.git
git push -u origin mainVerify the setup by opening the GitHub repository and confirming that the main branch contains this README and all four project directories.
Each project should include its own README.md, run instructions, a list of secrets and variables used, and a short “What I learned” section.