Policy as Code: Revolutionizing IT Compliance and Governance.
Policy as Code is the idea of writing code to manage and automate policies. Policy as Code arose as a natural progression from Infrastructure as Code.
Policy as Code is the idea of writing code to manage and automate policies. Policy as Code arose as a natural progression from Infrastructure as Code.
Terraform is an open source tool created by HashiCorp to define infrastructure as cod using a simple, declarative language called HCL. Terraform is used to deploy and manage infrastructure across a variety of cloud providers & virtualization platforms. It can be used to deploy infrastructure to all major cloud providers such as Azure, AWS, Digital ocean, and virtualization platforms such as VMware, Open stack, and others.
This post is a follow up on the Terraform 101 sessions for the Sunshine Coast dotnet user group. The slides and the code from the session are below. Slides Terraform 101 from Pradeep Loganathan Creating a Windows Virtual Machine provider "azurerm" { version = "=2.8.0" features {} } #create the resource group resource "azurerm_resource_group" "rg" { name = "ateam-resource-group" location = "australiaeast" } #create the virtual network resource "azurerm_virtual_network" "vnet1" { resource_group_name = azurerm_resource_group.rg.name location = "australiaeast" name = "dev" address_space = ["10.0.0.0/16"] } #create a subnet within the virtual network resource "azurerm_subnet" "subnet1" { resource_group_name = azurerm_resource_group.rg.name virtual_network_name = azurerm_virtual_network.vnet1.name name = "devsubnet" address_prefixes = ["10.0.0.0/24"] } ##create the network interface for the VM resource "azurerm_public_ip" "pub_ip" { name = "vmpubip" location = "australiaeast" resource_group_name = azurerm_resource_group.rg.name allocation_method = "Dynamic" } resource "azurerm_network_interface" "vmnic" { location = "australiaeast" resource_group_name = azurerm_resource_group.rg.name name = "vmnic1" ip_configuration { name = "vmnic1-ipconf" subnet_id = azurerm_subnet.subnet1.id private_ip_address_allocation = "Dynamic" public_ip_address_id = azurerm_public_ip.pub_ip.id } } ##end creating network interface for the VM ##create the actual VM resource "azurerm_windows_virtual_machine" "devvm" { name = "development-vm" location = "australiaeast" size = "Standard_A1_v2" admin_username = "pradeep" admin_password = "kq7UciQluJt%3dtj" resource_group_name = azurerm_resource_group.rg.name network_interface_ids = [azurerm_network_interface.vmnic.id] os_disk { caching = "ReadWrite" storage_account_type = "Standard_LRS" } source_image_reference { publisher = "MicrosoftWindowsServer" offer = "WindowsServer" sku = "2016-Datacenter" version = "latest" } } ##end creating VM The above code is not at all production ready and was used as part of a live coding exercise to use Terraform to create a Windows VM. The above code creates the VM password as plain text which is not ideal. The password can be generated and printed as an output if necessary. ...
Infrastructure as code (IaC) is the process of provisioning and managing your infrastructure resources through definition files or code.
AWS CloudFormation is an IaC tool for creating AWS resources in a declarative way.