├── .gitignore ├── LICENSE ├── README.md └── terraform-manifests ├── README.md ├── app-scripts └── app1-cloud-init.txt ├── c1-versions.tf ├── c2-variables.tf ├── c3-locals.tf ├── c4-resource-group.tf ├── c5-virtual-network.tf ├── c6-linux-virtual-machine.tf ├── c7-outputs.tf ├── dev.auto.tfvars └── ssh-keys ├── terraform-azure.pem └── terraform-azure.pub /.gitignore: -------------------------------------------------------------------------------- 1 | # Local .terraform directories 2 | **/.terraform/* 3 | 4 | # .tfstate files 5 | *.tfstate 6 | *.tfstate.* 7 | 8 | # Crash log files 9 | crash.log 10 | 11 | # Ignore any .tfvars files that are generated automatically for each Terraform run. Most 12 | # .tfvars files are managed as part of configuration and so should be included in 13 | # version control. 14 | # 15 | # example.tfvars 16 | 17 | # Ignore override files as they are usually used to override resources locally and so 18 | # are not checked in 19 | override.tf 20 | override.tf.json 21 | *_override.tf 22 | *_override.tf.json 23 | 24 | # Include override files you do wish to add to version control using negated pattern 25 | # 26 | # !example_override.tf 27 | 28 | # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan 29 | # example: *tfplan* 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # terraform-cloud-azure-demo1 2 | Terraform Cloud Azure Demo1 3 | -------------------------------------------------------------------------------- /terraform-manifests/README.md: -------------------------------------------------------------------------------- 1 | # Terraform Cloud with Azure Usecase Demo 2 | 3 | ## Azure Demo on Terraform Cloud 4 | - We are going to create the following Azure Resources 5 | 1. Azure Resource Group 6 | 2. Azure Virtual Network 7 | 3. Azure Subnet 8 | 4. Azure Public IP 9 | 5. Azure Network Interface 10 | 6. Azure Linux Virtual Machine 11 | -------------------------------------------------------------------------------- /terraform-manifests/app-scripts/app1-cloud-init.txt: -------------------------------------------------------------------------------- 1 | #cloud-config 2 | package_upgrade: false 3 | packages: 4 | - httpd 5 | write_files: 6 | - owner: root:root 7 | path: /var/www/html/index.html 8 | content: | 9 |
Terraform Demo
Application Version: V1
14 | runcmd: 15 | - sudo systemctl start httpd 16 | - sudo systemctl enable httpd 17 | - sudo systemctl stop firewalld 18 | - sudo mkdir /var/www/html/app1 19 | - [sudo, curl, -H, "Metadata:true", --noproxy, "*", "http://169.254.169.254/metadata/instance?api-version=2020-09-01", -o, /var/www/html/app1/metadata.html] 20 | 21 | -------------------------------------------------------------------------------- /terraform-manifests/c1-versions.tf: -------------------------------------------------------------------------------- 1 | # Terraform Block 2 | terraform { 3 | required_version = ">= 1.0.0" 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = ">= 2.0" 8 | } 9 | random = { 10 | source = "hashicorp/random" 11 | version = ">= 3.0" 12 | } 13 | } 14 | } 15 | 16 | # Provider Block 17 | provider "azurerm" { 18 | features {} 19 | } 20 | 21 | # Random String Resource 22 | resource "random_string" "myrandom" { 23 | length = 6 24 | upper = false 25 | special = false 26 | number = false 27 | } 28 | 29 | 30 | -------------------------------------------------------------------------------- /terraform-manifests/c2-variables.tf: -------------------------------------------------------------------------------- 1 | # Input Variables 2 | # 1. Business Unit Name 3 | variable "business_unit" { 4 | description = "Business Unit Name" 5 | type = string 6 | #default = "hr" 7 | } 8 | # 2. Environment Name 9 | variable "environment" { 10 | description = "Environment Name" 11 | type = string 12 | #default = "dev" 13 | } 14 | # 3. Resource Group Name 15 | variable "resoure_group_name" { 16 | description = "Resource Group Name" 17 | type = string 18 | #default = "myrg" 19 | } 20 | # 4. Resource Group Location 21 | variable "resoure_group_location" { 22 | description = "Resource Group Location" 23 | type = string 24 | #default = "eastus" 25 | } 26 | # 5. Virtual Network Name 27 | variable "virtual_network_name" { 28 | description = "Virtual Network Name" 29 | type = string 30 | default = "myvnet" 31 | } 32 | # 6. Subnet Name 33 | variable "subnet_name" { 34 | description = "Virtual Network Subnet Name" 35 | type = string 36 | } 37 | # 7. Public IP Name 38 | variable "publicip_name" { 39 | description = "Public IP Name" 40 | type = string 41 | } 42 | # 8. Network Interfance 43 | variable "network_interface_name" { 44 | description = "Network Interface Name" 45 | type = string 46 | } 47 | 48 | # 9. Virtual Machine Name 49 | variable "virtual_machine_name" { 50 | description = "Virtual Machine Name" 51 | type = string 52 | } 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /terraform-manifests/c3-locals.tf: -------------------------------------------------------------------------------- 1 | # Local Values Block 2 | locals { 3 | # Use-case-1: Shorten the names for more readability 4 | rg_name = "${var.business_unit}-${var.environment}-${var.resoure_group_name}" 5 | vnet_name = "${var.business_unit}-${var.environment}-${var.virtual_network_name}" 6 | snet_name = "${var.business_unit}-${var.environment}-${var.subnet_name}" 7 | pip_name = "${var.business_unit}-${var.environment}-${var.publicip_name}" 8 | nic_name = "${var.business_unit}-${var.environment}-${var.network_interface_name}" 9 | vm_name = "${var.business_unit}-${var.environment}-${var.virtual_machine_name}" 10 | 11 | # Use-case-2: Common tags to be assigned to all resources 12 | service_name = "Demo Services" 13 | owner = "Kalyan Reddy Daida" 14 | common_tags = { 15 | Service = local.service_name 16 | Owner = local.owner 17 | Tag1 = "Terraform-Cloud-Demo1" 18 | Tag2 = "Terraform-Cloud-Demo1-Workspace-Locked" 19 | Tag3 = "Terraform-Cloud-Demo1-VCS-Demo" 20 | Tag4 = "Terraform-Cloud-Demo1-Auto-Apply-Test" 21 | Tag5 = "Notifications Testing" 22 | } 23 | } -------------------------------------------------------------------------------- /terraform-manifests/c4-resource-group.tf: -------------------------------------------------------------------------------- 1 | # Resource-1: Azure Resource Group 2 | resource "azurerm_resource_group" "myrg" { 3 | name = local.rg_name 4 | location = var.resoure_group_location 5 | tags = local.common_tags 6 | } -------------------------------------------------------------------------------- /terraform-manifests/c5-virtual-network.tf: -------------------------------------------------------------------------------- 1 | # Create Virtual Network 2 | resource "azurerm_virtual_network" "myvnet" { 3 | name = local.vnet_name 4 | address_space = ["10.0.0.0/16"] 5 | location = azurerm_resource_group.myrg.location 6 | resource_group_name = azurerm_resource_group.myrg.name 7 | tags = local.common_tags 8 | } 9 | 10 | # Create Subnet 11 | resource "azurerm_subnet" "mysubnet" { 12 | name = local.snet_name 13 | resource_group_name = azurerm_resource_group.myrg.name 14 | virtual_network_name = azurerm_virtual_network.myvnet.name 15 | address_prefixes = ["10.0.2.0/24"] 16 | } 17 | 18 | # Create Public IP Address 19 | resource "azurerm_public_ip" "mypublicip" { 20 | name = local.pip_name 21 | resource_group_name = azurerm_resource_group.myrg.name 22 | location = azurerm_resource_group.myrg.location 23 | allocation_method = "Static" 24 | domain_name_label = "app1-${var.environment}-${random_string.myrandom.id}" 25 | tags = local.common_tags 26 | } 27 | 28 | # Create Network Interface 29 | resource "azurerm_network_interface" "myvmnic" { 30 | name = local.nic_name 31 | location = azurerm_resource_group.myrg.location 32 | resource_group_name = azurerm_resource_group.myrg.name 33 | 34 | ip_configuration { 35 | name = "internal" 36 | subnet_id = azurerm_subnet.mysubnet.id 37 | private_ip_address_allocation = "Dynamic" 38 | public_ip_address_id = azurerm_public_ip.mypublicip.id 39 | } 40 | tags = local.common_tags 41 | } 42 | -------------------------------------------------------------------------------- /terraform-manifests/c6-linux-virtual-machine.tf: -------------------------------------------------------------------------------- 1 | # Resource: Azure Linux Virtual Machine 2 | resource "azurerm_linux_virtual_machine" "mylinuxvm" { 3 | name = local.vm_name 4 | computer_name = local.vm_name # Hostname of the VM 5 | resource_group_name = azurerm_resource_group.myrg.name 6 | location = azurerm_resource_group.myrg.location 7 | size = "Standard_DS1_v2" 8 | admin_username = "azureuser" 9 | network_interface_ids = [ azurerm_network_interface.myvmnic.id ] 10 | admin_ssh_key { 11 | username = "azureuser" 12 | public_key = file("${path.module}/ssh-keys/terraform-azure.pub") 13 | } 14 | os_disk { 15 | name = "osdisk${random_string.myrandom.id}" 16 | caching = "ReadWrite" 17 | storage_account_type = "Standard_LRS" 18 | } 19 | source_image_reference { 20 | publisher = "RedHat" 21 | offer = "RHEL" 22 | sku = "83-gen2" 23 | version = "latest" 24 | } 25 | custom_data = filebase64("${path.module}/app-scripts/app1-cloud-init.txt") 26 | tags = local.common_tags 27 | } 28 | 29 | 30 | -------------------------------------------------------------------------------- /terraform-manifests/c7-outputs.tf: -------------------------------------------------------------------------------- 1 | # 1. Output Values - Resource Group 2 | output "resource_group_id" { 3 | description = "Resource Group ID" 4 | # Atrribute Reference 5 | value = azurerm_resource_group.myrg.id 6 | } 7 | output "resource_group_name" { 8 | description = "Resource Group name" 9 | # Argument Reference 10 | value = azurerm_resource_group.myrg.name 11 | } 12 | 13 | # 2. Output Values - Virtual Network 14 | output "virtual_network_name" { 15 | description = "Virutal Network Name" 16 | value = azurerm_virtual_network.myvnet.name 17 | #sensitive = true 18 | } 19 | 20 | # 3. Output Values - Virtual Machine 21 | output "vm_public_ip_address" { 22 | description = "My Virtual Machine Public IP" 23 | value = azurerm_linux_virtual_machine.mylinuxvm.public_ip_address 24 | } 25 | 26 | # 4. Output Values - Virtual Machine Admin User 27 | output "vm_admin_user" { 28 | description = "My Virtual Machine Admin User" 29 | value = azurerm_linux_virtual_machine.mylinuxvm.admin_username 30 | } 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /terraform-manifests/dev.auto.tfvars: -------------------------------------------------------------------------------- 1 | # Generic Variables 2 | business_unit = "it" 3 | environment = "dev" 4 | 5 | # Resource Variables 6 | resoure_group_name = "rg" 7 | resoure_group_location = "eastus" 8 | virtual_network_name = "vnet" 9 | subnet_name = "subnet" 10 | publicip_name = "publicip" 11 | network_interface_name = "nic" 12 | virtual_machine_name = "vm" 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /terraform-manifests/ssh-keys/terraform-azure.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /terraform-manifests/ssh-keys/terraform-azure.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBp1PP0AMY1Q55cB5ASHz2kFMdqevNU6TLc6Jw/igPQIhM+y8jtX3nlu+QW1YyQdkGblb22j1z1NvK4ym30dWdgZjEz2tCowgou7IHF3Kc/c1MEjsdQc1LpwCOKkQQJrrGwQ5ZqEd2F1I70365SRVHCK8BMq8HXxh9pmAXQ9pcL2paKBi1O9pzCCxuodP0FFjWvfRnT8rPf2V5dV8LqWiQDqKYivLC89kiXcLf5u/6WU4e25geqgWJpXiMXgTpkV9g7lZtcU9v/fG6VMi5DGQMGHICwsMYaeN/cDwJMy85awbeJdlRWPIP/Ox9Y1NB2qssiUS+fse/rbFiWMkTg5Yp6bvL3tk6M9kJ9DFu9sCfA5hAWpbLVQ8t6DvkxQQb6AeqZtJx5Zm2FMerFWb5me1fqKSzmk6KGOshZZy1y+ctcjlw9HwgxUtYUARklkN4YA4U47UBXZtH20e0BG6QnTBMxH1LgfbbCJvyX4ytPqG+ebTq9xiAij+/ZoX+ZpfMyphr6xiNzFvypqFcpNSdJTVaNU8XPtfpk7NH33ZBWryERriN0MADlRtVJm2TKJ4wZOy+1YF+Zu+yzbPOSAKMA5vKIv8uYW3arnOFFiDl27Fji4bSiBZTDLyXb95xkTixB0NXgbeUBBsPtUpvvGTU8nSpw8hj/7FEE6i94juFu7nP/Q== azureuser@myserver 2 | --------------------------------------------------------------------------------