This repository serves as a terraform training repository for workplace engineers new to using terraform for management of Jamf Pro instances. The content within this repo aims to provide a learning path taking someone with little to no experience on a journey whereby at the end, the engineer feels empowered to use DevOps tools and practises within their team at a profient level.
This training does not seek to reinvent the wheel, so where it's senisble links will be provided to other publically available training materials. However, using DevOps practises with workplace teams is a relatively new concept and there are distinctions between IaC (infrastructure as code) and CaC (configuration-as-code) using IaC principles. To that end, rather than direct people to training that IaC targetted, this repo will house material, exercises and hackathons relevant to the workplace domain and it's nuances.
--devops culture
--problem statements
--devops principles
--what and why ?
- Binary Plist
- GitHub Codespaces
- GitHub Pull Requests and Issues
- gitignore
- Git Graph
- Live Server
- pre-commit
- TODO Highlight
- VSNotes
- indent-rainbow
- AppleScript
- Docker
- docs-yaml
- Edit CSV
- Go - Go(Lang) Language Support
- HashiCorp Terraform
- Markdown All in One
- Pylance
- Python
- Shebang Language Associator
- ShellCheck
- XML - XML Language Support
- YAML - YAML Language Support
themes for VS code are an entirely personal perference, here are some optional suggestions.
--workspaces
--settings sync
--github
--shortcuts and keybindings https://code.visualstudio.com/docs/getstarted/keybindings
Challenges:
--build dev environment
https://github.com/smithjw/vs-code-mac-admins?tab=readme-ov-file
--picking a terminal
--customization
https://scrimba.com/articles/web-developer-terminal/
https://www.freecodecamp.org/news/learn-git-through-gamification/
--push
--merge
--conflicts
Challenges:
--runners
--events
--jobs
--yaml
--act - Run your GitHub Actions locally 🚀
--reuseable workflows - https://docs.github.com/en/actions
--repo templates
--dependancy management
Challenges:
https://learn.microsoft.com/en-us/training/paths/github-actions/
https://youtu.be/Tz7FsunBbfQ?si=6ULhdjUdK9obKsFb
--Questions:
--Branching strategies
--gitlab flow (terraform)
--pr approvals
Challenges:
--Questions:
Engineers
--semvar
--conventional commits
--release please
--docker base images
Challenges:
--Questions:
--machine identity
--hashivault
--breakglass accounts
https://developer.hashicorp.com/vault/tutorials/get-started
Challenges:
--Questions:
--Learning path
--usecases
https://github.com/collabnix/terraform/blob/master/getting-started/use-cases.md
--declarative vs. imperitive
--local install
https://github.com/collabnix/terraform/tree/master/beginners/os
--commands
--providers
--resources
https://github.com/collabnix/terraform/blob/master/beginners/resources/Terraform_Resources.md
--workspaces
--data sources
--modules
--provisioners
--state and state locking
--taint and untaint
--secrets management
--hcl syntax and language features
https://github.com/sidpalas/devops-directive-terraform-course/tree/main/05-language-features
--naming conventions
https://www.terraform-best-practices.com/naming
--using locals
--using variables
--code quality and repo structure
https://developer.hashicorp.com/terraform/language/style
http://www.marktinderholt.com/terraform/2024/12/04/six-terraform-formatting-tips.html
--best practice
https://www.terraform-best-practices.com/
--further reading
https://github.com/shuaibiyy/awesome-tf
--Challenges:
--Questions
https://www.datacamp.com/blog/terraform-interview-questions
--open telemetry
--inbuilt incident reporting
--log management