{"id":31912,"date":"2022-08-04T20:32:18","date_gmt":"2022-08-04T15:02:18","guid":{"rendered":"http:\/\/ismiletechnologies.com\/?p=31912"},"modified":"2023-02-24T13:59:59","modified_gmt":"2023-02-24T08:29:59","slug":"azure-virtual-desktop-automated-provisioning-using-terraform","status":"publish","type":"post","link":"https:\/\/ismiletechnologies.com\/en_us\/automation\/azure-virtual-desktop-automated-provisioning-using-terraform\/","title":{"rendered":"Azure Virtual Desktop Automated Provisioning using Terraform"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"31912\" class=\"elementor elementor-31912\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6d6f01b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6d6f01b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f1c8211\" data-id=\"f1c8211\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a8eed66 elementor-widget elementor-widget-text-editor\" data-id=\"a8eed66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Virtual desktop infrastructure for remote desktops and applications can be difficult to manage and confusing for those unfamiliar.\u00a0\u00a0\u00a0<\/p>\n<p>Terraform is a tool that allows you to provision cloud resources using code and has it automatically deployed in your workspace.\u00a0\u00a0\u00a0<br \/>In this blog post, we will show a tutorial on how you can use Terraform to create and configure an Azure Virtual Desktop solution through the following steps:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79d4074 elementor-widget elementor-widget-text-editor\" data-id=\"79d4074\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol>\n<li>Write code using Terraform\u2019s HashiCorp Language Syntax to specify our cloud provider and cloud resources\u00a0\u00a0<\/li>\n<li>Create an execution plan for previewing infrastructure changes\u00a0\u00a0<\/li>\n<li>Apply the execution plan and deploy the infrastructure\u00a0\u00a0<\/li>\n<\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6bb0a4 elementor-widget elementor-widget-text-editor\" data-id=\"c6bb0a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\">As prerequisites to this tutorial, please ensure that you have the following before starting:\u00a0<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b81260 elementor-widget elementor-widget-text-editor\" data-id=\"5b81260\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\">A Microsoft Azure account subscription\u00a0\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\">An appropriate Microsoft Azure landing zone\/foundation setup\u00a0\u00a0<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3671d0e elementor-widget elementor-widget-text-editor\" data-id=\"3671d0e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\">We will be running Terraform v1.2.4 on a local instance of Windows Terminal.\u00a0<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d4dc18 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"9d4dc18\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0633526 elementor-widget elementor-widget-heading\" data-id=\"0633526\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Configuring Terraform\u00a0\u00a0<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-139aee9 elementor-widget elementor-widget-text-editor\" data-id=\"139aee9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>First, you\u2019ll need to configure Terraform to be associated with your Microsoft Azure account.\u00a0\u00a0\u00a0<\/p>\n<p>Install the Azure CLI using Microsoft\u2019s Azure CLI installer, and then download Terraform from the HashiCorp website.\u00a0\u00a0\u00a0<\/p>\n<p>Extract the Terraform executable to a directory of your choice, then update your system\u2019s global path to the executable.\u00a0\u00a0<\/p>\n<p>Finally, open a terminal window and try running the \u201cterraform -version\u201d to verify that you have successfully installed Terraform.\u00a0\u00a0<\/p>\n<p>Next, you\u2019ll need to connect your Microsoft Azure account to Terraform. Because you\u2019ve installed the Azure CLI, you can open a terminal window and type \u201caz login\u201d to be prompted with instructions to sign into Azure. Upon success, you will see your account information.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2ad8565 elementor-widget elementor-widget-image\" data-id=\"2ad8565\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"624\" height=\"207\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-1.png\" class=\"attachment-full size-full wp-image-31916\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-1.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-1-300x100.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d328df7 elementor-widget elementor-widget-text-editor\" data-id=\"d328df7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">Now that you\u2019ve logged in with Microsoft Azure, your Terraform executable is ready to communicate with your Microsoft Azure landing zone. <\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-712b84b elementor-widget elementor-widget-heading\" data-id=\"712b84b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Writing Terraform Code using HCL \u00a0<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d6cf85 elementor-widget elementor-widget-text-editor\" data-id=\"6d6cf85\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Next, we\u2019ll need to create the modules that Terraform will read to create a plan for deploying our infrastructure resources. \u00a0<\/p>\n<p>Create a directory to host the Terraform code. In that folder, create four files: \u201cmain.tf\u201d, \u201coutput.tf\u201d, \u201cproviders.tf\u201d, and \u201cvariables.tf\u201d. \u00a0<\/p>\n<p>Using your text editor of choice (graphical or CLI), open \u201cproviders.tf\u201d. The provider&#8217;s file allows Terraform to interact with cloud providers and other APIs. Place the following code in it:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2fc7690 elementor-widget elementor-widget-image\" data-id=\"2fc7690\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"435\" height=\"361\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image.png\" class=\"attachment-full size-full wp-image-31915\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image.png 435w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-300x249.png 300w\" sizes=\"(max-width: 435px) 100vw, 435px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3414cab elementor-widget elementor-widget-text-editor\" data-id=\"3414cab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In this case, \u201cazurerm\u201d and \u201cazuread\u201d refers to Azure Resource Manager and Azure Active Directory, respectively. \u201chashicorp\/azurerm\u201d and \u201chashicorp\/azuread\u201d use HashiCorp\u2019s repositories for necessary files for both elements. \u00a0<\/p>\n<p><br \/>Next, open \u201cmain.tf\u201d. Main.tf will contain the main set of configurations for your environment. Place the following code inside of it.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-428930a elementor-widget elementor-widget-image\" data-id=\"428930a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"886\" height=\"788\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-1.png\" class=\"attachment-full size-full wp-image-31944\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-1.png 886w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-1-300x267.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-1-768x683.png 768w\" sizes=\"(max-width: 886px) 100vw, 886px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06f6d2e elementor-widget elementor-widget-image\" data-id=\"06f6d2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1159\" height=\"431\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-2.png\" class=\"attachment-full size-full wp-image-31945\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-2.png 1159w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-2-300x112.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-2-1024x381.png 1024w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/AVD-2-768x286.png 768w\" sizes=\"(max-width: 1159px) 100vw, 1159px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9113cb2 elementor-widget elementor-widget-text-editor\" data-id=\"9113cb2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\">As we mentioned earlier, Terraform uses code to deploy infrastructure. Here, we can see resources by name being provisioned with configurations that we can make via code. For example, the resource \u201cazurerm_virtual_desktop_application_group\u201d or VDAG has<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5fcdd83 elementor-widget elementor-widget-text-editor\" data-id=\"5fcdd83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\">a \u201cresource group name,\u201d referring to the container that will hold the new VDAG,\u00a0\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\">a \u201chost pool ID,\u201d which is how the VDAG will associate with a Virtual Desktop Host Pool,\u00a0\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\">a \u201clocation,\u201d specifying in what location\/region the VDAG will be located,\u00a0\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"4\" data-aria-level=\"1\">a \u201ctype,\u201d which specifies the type of VDAG as either RemoteApp or Desktop,\u00a0\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"5\" data-aria-level=\"1\">a \u201cfriendly_name\u201d for ease of recall for administrators,\u00a0\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"6\" data-aria-level=\"1\">a \u201cdescription,\u201d for clarity,\u00a0\u00a0<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"7\" data-aria-level=\"1\">and \u201cdepends_on,\u201d a meta-argument to handle resource and module dependencies that Terraform cannot automatically infer.\u00a0<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6afbf6 elementor-widget elementor-widget-text-editor\" data-id=\"b6afbf6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>All resources in Terraform are constructed like this. More information on each of the specific resource arguments can be found on the HashiCorp Terraform documentation database.\u00a0\u00a0<\/p>\n<p>Next, open \u201cvariables.tf\u201d. Variables.tf contains the variable definitions for your module, and when the module is used by other modules, the variable will be configured as arguments in a \u201cmodule\u201d block.\u00a0\u00a0\u00a0<\/p>\n<p>Place the following code inside of \u201cvariables.tf\u201d:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7eaf69f elementor-widget elementor-widget-image\" data-id=\"7eaf69f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"859\" height=\"815\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-2.png\" class=\"attachment-full size-full wp-image-31917\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-2.png 859w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-2-300x285.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-2-768x729.png 768w\" sizes=\"(max-width: 859px) 100vw, 859px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f5ea687 elementor-widget elementor-widget-text-editor\" data-id=\"f5ea687\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Variables in HCL have types, descriptions, and defaults. The type specifies what kind of variable is being described. In our case, we have a bunch of strings. The description is for high-level understanding. The default is a failsafe in the case that where you\u2019re trying to use your variable does not provide as input a parameter to take the place of the variable.\u00a0<\/p>\n<p>Next, open \u201coutput.tf\u201d. Output.tf contains the output definitions for our module, and they are often used to pass information about the parts of your infrastructure defined by this module to other parts of configurations.\u00a0<\/p>\n<p>Insert the following code into \u201coutput.tf\u201d:\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4195824 elementor-widget elementor-widget-image\" data-id=\"4195824\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"805\" height=\"692\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-9.png\" class=\"attachment-full size-full wp-image-31924\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-9.png 805w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-9-300x258.png 300w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-9-768x660.png 768w\" sizes=\"(max-width: 805px) 100vw, 805px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e20105 elementor-widget elementor-widget-text-editor\" data-id=\"7e20105\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Our \u201coutput\u201d resources have descriptions and values. The description is for a high-level understanding of what the resource intends to do, written by the developer. The value argument takes an expression whose result will be returned to the user. For example, \u201cazure_virtual_desktop_compute_resource_group\u201d will return a \u201csh.name\u201d attribute exposed by an \u201cazurerm_resource_group\u201d defined elsewhere in the module. \u00a0<\/p>\n<p>We are now finally finished configuring our Terraform module. Next, we will use Terraform commands to stage our configuration for execution and deploying the plan we designed. \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-161482e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"161482e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-823af0b elementor-widget elementor-widget-heading\" data-id=\"823af0b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Writing Terraform Code using HCL \u00a0<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3abd88 elementor-widget elementor-widget-text-editor\" data-id=\"d3abd88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In your Windows Terminal, run \u201cterraform init\u201d while inside of the directory you created that hosts your four .tf files. These commands download the Azure modules required to manage the Azure resources we defined in the four .tf files from the previous step. It initializes a working directory containing Terraform configuration files.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e7e9406 elementor-widget elementor-widget-image\" data-id=\"e7e9406\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"264\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-15.png\" class=\"attachment-full size-full wp-image-31930\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-15.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-15-300x127.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06ca840 elementor-widget elementor-widget-text-editor\" data-id=\"06ca840\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Next, run the \u201cterraform plan.\u201d This will evaluate our Terraform configuration to determine the desired state of all the resources it declares. Then it compares that desired state to the actual infrastructure objects being managed within the current working directory and workspace. It creates an execution plan but doesn\u2019t execute it.\u00a0\u00a0<\/p><p>Running this command should present you with a list of the resources specified in your main.tf file and how Terraform has interpreted them. You can inspect that and verify that they match your intended result.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b96d9a elementor-widget elementor-widget-image\" data-id=\"2b96d9a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"351\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-19.png\" class=\"attachment-full size-full wp-image-31934\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-19.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-19-300x169.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23eb1db elementor-widget elementor-widget-image\" data-id=\"23eb1db\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"324\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-4.png\" class=\"attachment-full size-full wp-image-31919\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-4.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-4-300x156.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d04a2f5 elementor-widget elementor-widget-image\" data-id=\"d04a2f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"326\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-14.png\" class=\"attachment-full size-full wp-image-31929\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-14.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-14-300x157.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05f2992 elementor-widget elementor-widget-image\" data-id=\"05f2992\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"305\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-5.png\" class=\"attachment-full size-full wp-image-31920\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-5.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-5-300x147.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdecb52 elementor-widget elementor-widget-image\" data-id=\"cdecb52\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"394\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-3.png\" class=\"attachment-full size-full wp-image-31918\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-3.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-3-300x189.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b724fc7 elementor-widget elementor-widget-image\" data-id=\"b724fc7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"393\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-17.png\" class=\"attachment-full size-full wp-image-31932\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-17.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-17-300x189.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac7ef37 elementor-widget elementor-widget-image\" data-id=\"ac7ef37\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"391\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-13.png\" class=\"attachment-full size-full wp-image-31928\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-13.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-13-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f82785 elementor-widget elementor-widget-text-editor\" data-id=\"0f82785\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Terraform plan outputs can be lengthy, but checking them diligently will ensure that you don\u2019t commit to provisioning any resources you don\u2019t intend to.\u00a0\u00a0<\/p><p>Finally, run \u201cterraform apply.\u201d Terraform apply applies the changes required to reach the desired state of the configuration, i.e., the set of actions generated by our run of \u201cterraform plan.\u201d\u00a0\u00a0<\/p><p>When you run \u201cterraform apply,\u201d you\u2019ll see a review of the plan that Terraform intends to apply one last time and be prompted to confirm execution by typing \u201cyes.\u201d\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c12c34 elementor-widget elementor-widget-image\" data-id=\"5c12c34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"390\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-18.png\" class=\"attachment-full size-full wp-image-31933\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-18.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-18-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4562049 elementor-widget elementor-widget-image\" data-id=\"4562049\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"392\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-12.png\" class=\"attachment-full size-full wp-image-31927\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-12.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-12-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91a972f elementor-widget elementor-widget-image\" data-id=\"91a972f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"389\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-6.png\" class=\"attachment-full size-full wp-image-31921\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-6.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-6-300x187.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5631ba5 elementor-widget elementor-widget-image\" data-id=\"5631ba5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"390\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-11.png\" class=\"attachment-full size-full wp-image-31926\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-11.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-11-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b53761f elementor-widget elementor-widget-image\" data-id=\"b53761f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"391\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-10.png\" class=\"attachment-full size-full wp-image-31925\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-10.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-10-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46235db elementor-widget elementor-widget-image\" data-id=\"46235db\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"389\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-16.png\" class=\"attachment-full size-full wp-image-31931\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-16.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-16-300x187.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-72fe609 elementor-widget elementor-widget-image\" data-id=\"72fe609\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"390\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-8.png\" class=\"attachment-full size-full wp-image-31923\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-8.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-8-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5572493 elementor-widget elementor-widget-text-editor\" data-id=\"5572493\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\">When you type \u201cyes\u201d, you\u2019ll see how Terraform automatically deploys your resources in real-time.<\/span>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eb4a7c5 elementor-widget elementor-widget-image\" data-id=\"eb4a7c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"387\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-7.png\" class=\"attachment-full size-full wp-image-31922\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-7.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-7-300x186.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c04c730 elementor-widget elementor-widget-image\" data-id=\"c04c730\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"390\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-21.png\" class=\"attachment-full size-full wp-image-31936\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-21.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-21-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f8db06e elementor-widget elementor-widget-image\" data-id=\"f8db06e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"391\" src=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-20.png\" class=\"attachment-full size-full wp-image-31935\" alt=\"\" srcset=\"https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-20.png 624w, https:\/\/ismiletechnologies.com\/wp-content\/uploads\/2022\/08\/image-20-300x188.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e92167 elementor-widget elementor-widget-text-editor\" data-id=\"7e92167\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>If your \u201cterraform apply\u201d completes, then you\u2019re almost done.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37cc46f elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"37cc46f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-327c708 elementor-widget elementor-widget-heading\" data-id=\"327c708\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Verifying Results\u00a0\u00a0<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d48e7b elementor-widget elementor-widget-text-editor\" data-id=\"6d48e7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Go to your Azure Portal, and select \u201cAzure Virtual Desktop.\u201d Select \u201cHost Pools,\u201d and the \u201cName of the pool created\u201d resource. Finally, select \u201cSession hosts\u201d and then verify that the session host is listed. If you see a session host, then congratulations! You have successfully applied Terraform to create an Azure Virtual Desktop environment.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a76bd6f elementor-widget elementor-widget-heading\" data-id=\"a76bd6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How ISmile Technologies Help:<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a3e648 elementor-widget elementor-widget-text-editor\" data-id=\"8a3e648\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul><li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span style=\"color: #000000;\">Simplifies Provisioning Process:<\/span> <br \/>ISmile Technologies provides a simplified provisioning process for Azure Virtual Desktop using Terraform, which makes it easy to automate the deployment of the virtual desktop infrastructure. This reduces the workload for IT teams and speeds up the provisioning process.\u00a0<\/li><li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span style=\"color: #000000;\">Customizable:<\/span> <br \/>The Terraform templates created by ISmile Technologies are highly customizable, allowing organizations to configure their virtual desktop infrastructure according to their specific requirements. This ensures that the virtual desktop environment is tailored to meet the needs of the business.\u00a0<\/li><li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span style=\"color: #000000;\">Enhanced Security:<\/span> <br \/>With Terraform, ISmile Technologies helps ensure that the Azure Virtual Desktop environment is set up with enhanced security. This includes configuring role-based access control and network security groups, among other measures.\u00a0<\/li><li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span style=\"color: #000000;\">Cost Optimization:<\/span> <br \/>ISmile Technologies\u2019 Terraform templates also include options to optimize costs by selecting the appropriate VM sizes and storage types. This helps organizations to minimize unnecessary expenses while still meeting their virtual desktop infrastructure requirements.\u00a0<\/li><li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span style=\"color: #000000;\">Ongoing Support:<\/span> <br \/>ISmile Technologies provides ongoing support for their Terraform templates, ensuring that we remain up-to-date with the latest Azure Virtual Desktop features and security updates.\u00a0<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ecc65b0 elementor-widget elementor-widget-text-editor\" data-id=\"ecc65b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tISmile Technologies is an expert in Azure Virtual Desktop automated provisioning using Terraform. By simplifying the provisioning process, providing customizable templates, enhancing security, optimizing costs, and providing ongoing support, we help organizations deploy a virtual desktop infrastructure that meets their specific needs.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e8d7912 elementor-widget elementor-widget-heading\" data-id=\"e8d7912\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion\u00a0<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34c5426 elementor-widget elementor-widget-text-editor\" data-id=\"34c5426\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Using Terraform, you can create configuration files that use your Cloud provider of choice\u2019s resources and automatically deploy infrastructure as code. This greatly speeds up management and allows for system configuration and management as your business grows. For more information, <span style=\"color: #14a49c;\"><a style=\"color: #14a49c;\" href=\"http:\/\/ismiletechnologies.com\/request-a-consultation\/\">Get Your Free Consultation<\/a><\/span>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-e4fd62a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e4fd62a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-17a8c45\" data-id=\"17a8c45\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7e704f1 elementor-widget elementor-widget-spacer\" data-id=\"7e704f1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-e609c71\" data-id=\"e609c71\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8b5e542 elementor-widget elementor-widget-heading\" data-id=\"8b5e542\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Cloud Engineer<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ace22b8 elementor-widget elementor-widget-heading\" data-id=\"ace22b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Gabriel Chutuape<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b86ee33 elementor-widget elementor-widget-text-editor\" data-id=\"b86ee33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>A technology enthusiast passionate about automation, Gabriel Chutuape is a Cloud Engineer at ISmile Technologies. He\u2019s part of the ISmile Technologies Cloud enablement team that help customers to design\/solution\/project engineering, integrating and implementing infrastructure technologies &amp; services.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-5584cdb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5584cdb\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1020421\" data-id=\"1020421\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0781f48 elementor-widget elementor-widget-spacer\" data-id=\"0781f48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-e3a4ede\" data-id=\"e3a4ede\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f301ae2 elementor-widget elementor-widget-heading\" data-id=\"f301ae2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CLOUD ENGINEER<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7a281a elementor-widget elementor-widget-heading\" data-id=\"c7a281a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Mahaboob Khan<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6fee12b elementor-widget elementor-widget-text-editor\" data-id=\"6fee12b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>A Cloud Engineer at ISmile Technologies, he had extensive experience working on Microsoft Azure which involves activities like Implementation, Managing and troubleshooting the User related issues. With automation tools like Azure ARM Template, Terraform, and Azure DevOps, he helps our client to automate deployment of IaaS and PaaS services.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Virtual desktop infrastructure for remote desktops and applications can be difficult to manage and confusing for those unfamiliar.\u00a0\u00a0\u00a0 Terraform is a tool that allows you to provision cloud resources using code and has it automatically deployed in your workspace.\u00a0\u00a0\u00a0In this blog post, we will show a tutorial on how you can use Terraform to create [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":31913,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[89],"tags":[],"class_list":["post-31912","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation"],"_links":{"self":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts\/31912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/comments?post=31912"}],"version-history":[{"count":41,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts\/31912\/revisions"}],"predecessor-version":[{"id":37994,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/posts\/31912\/revisions\/37994"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/media\/31913"}],"wp:attachment":[{"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/media?parent=31912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/categories?post=31912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ismiletechnologies.com\/en_us\/wp-json\/wp\/v2\/tags?post=31912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}