This is a training sample I originally created for a Terraform on Azure workshop, which I am cleaning up for public consumption and as an end-to-end, full-stack provisioning demo that can be used as a starting point for more complex solutions.
(Blog post with more info)
This is the list of currently implemented/planned features:
- Let's Encrypt support
- Set up a full web stack
- Set locale in
cloud-config
- Metrics agent 2.3/3.0 selection through conditionals
- Improve comments
- Move NSG outside the
linux
module for flexibility - Split current
cloud-config
into base and "PaaS" versions - Move
cloud-config
template outside thelinux
module and into its own folder - Set up
docker
and other core packages viacloud-init
- Re-instate public IP, DNS alias and NSGs in
main.tf
- Set SSH port and harden configuration via
cloud-init
- Split naming for shared vs instance resources in
base.tf
- Add portal-compatible metrics using
Microsoft.OSTCExtensions
2.3 (using awadcfg.xml
template) - Add boilerplate for
Azure.Linux.Diagnostics
3.0 (using aladCfg
template inlined insettings.json
) - Add availability set in
base.tf
- Update Ubuntu to 18.04 in
main.tf
- Add boot diagnostics in
main.tf
- Break out VM into
linux
module - Cleanup and namespacing
- Single Ubuntu VM with managed disks