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
linuxmodule for flexibility - Split current
cloud-configinto base and "PaaS" versions - Move
cloud-configtemplate outside thelinuxmodule and into its own folder - Set up
dockerand 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.OSTCExtensions2.3 (using awadcfg.xmltemplate) - Add boilerplate for
Azure.Linux.Diagnostics3.0 (using aladCfgtemplate 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
linuxmodule - Cleanup and namespacing
- Single Ubuntu VM with managed disks