<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Shruti Pal on Medium]]></title>
        <description><![CDATA[Stories by Shruti Pal on Medium]]></description>
        <link>https://medium.com/@shrutipal700?source=rss-ff1e6cb8486b------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*MXsFxdsVby8smbwF</url>
            <title>Stories by Shruti Pal on Medium</title>
            <link>https://medium.com/@shrutipal700?source=rss-ff1e6cb8486b------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 10 Apr 2026 16:37:31 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@shrutipal700/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Building with Appwrite and Netlify]]></title>
            <link>https://medium.com/@shrutipal700/building-with-appwrite-and-netlify-dcffb85ddcf8?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/dcffb85ddcf8</guid>
            <category><![CDATA[to-do-app]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[appwrite]]></category>
            <category><![CDATA[github]]></category>
            <category><![CDATA[netlify]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Sat, 29 Oct 2022 16:56:11 GMT</pubDate>
            <atom:updated>2022-10-29T16:56:11.033Z</atom:updated>
            <content:encoded><![CDATA[<p>Let us start with an introduction of Appwrite first. Appwrite is a popular backend as a service provider. It is a docker containerized self-hosted environment which lets you build applications with a variety of secure, flexible APIs. It provides solutions through sustainable databases, user management, location, privacy, storage, and functions with easy integration with any platform, and any language.</p><p>Netlify is an all-in-one platform for automating modern web projects. Replace your hosting infrastructure, continuous integration, and deployment pipeline with a single workflow. Integrate dynamic functionality like serverless functions, user authentication, and form handling as your projects grow.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/927/1*M7mTItqt0TA9a2_vCUTbHg.png" /></figure><p>In this article, we will create a to-do app with React and Appwrite and then we will proceed to deployment via Netlify.</p><h3>Step 1: Installation</h3><p>Install the Appwrite via Gitpod like <a href="https://github.com/appwrite/appwrite#:~:text=In%20addition%20to,the%20providers%20below%3A">this</a>. It will make you install Gitpod and a few steps of authorization. If you choose to open the IDE in the browser, it will configure and show up like the below image.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qJ8LHd-z2Wj46lCt1_iQ0A.png" /></figure><p>Click on the Simple Browser in the workspace.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xLxl0YU6nGOOAs3z-YXPTw.png" /></figure><h3>Step 2: A new project.</h3><p>Sign in and create a new project. For creating a todo app, add a new Web App in Appwrite.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8dcpbSpfqgw3lSAEDs5bXw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QwwjKPvJV174p8XgqLBnXA.png" /></figure><p>Enter the endpoint of your website according to your choice. (&lt;project-name&gt;, &lt;project-name&gt;.netlify.app)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iSB3S3T24BeV4jJT3VVZcg.png" /></figure><h3>Step 3: Databases</h3><p>Create a new Database. Create a new collection with the following properties.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U-A8epFy3wHly3VutP04kA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hjLv9cVEoVyggc9nhx2qgw.png" /></figure><p>Add the following permissions to your collections. These permissions ensure that only registered users can access the collection.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1012/1*Nj2prBGRPSJK9MbDhSVJ_Q.png" /></figure><h3>Step 4: Frontend</h3><p>Create a new folder on the desktop (or any other favorite spot) to set the front end. Fork and git clone <a href="https://github.com/appwrite/demo-todo-with-react">this repo</a> in this new folder.</p><p>Follow these instructions to run the demo app locally:</p><pre>$ git clone <a href="https://github.com/appwrite/todo-with-react">https://github.com/appwrite/todo-with-react</a><br>$ cd todo-with-react</pre><p>Run the following command to generate your .env vars</p><pre>$ cp .env.example .env</pre><p>Now fill in the environment variables in your .env file as below:</p><ul><li>REACT_APP_ENDPOINT — Your Appwrite endpoint.</li><li>REACT_APP_PROJECT — Your Appwrite project ID.</li><li>REACT_APP_COLLECTION_ID — Your Appwrite collection ID.</li><li>REACT_APP_DATABASE_ID — Your Appwrite database ID.</li></ul><p>Now run the following commands and you should be good to go:</p><pre>$ npm install<br>$ npm start</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*D347dTW-ymQLUB6SdxcAlg.png" /></figure><h3>Step 5: Deploy</h3><p>To deploy it, head over to <a href="https://www.netlify.com">https://www.netlify.com</a> and set up your account if not already.</p><p>Click <strong>add a new site → import an existing project.</strong></p><p>Select GitHub and then your forked repo.</p><p>In a few minutes, the website will be ready and the URL will be available on the dashboard. By default, Netlify creates websites with URLs ending by .netlify.app.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HSqgVPRI_CC8r5Iwwmu9Bw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VXEZbe4dblqMKA1OQBskTg.png" /></figure><p>Check out my website here: <a href="https://stalwart-syrniki-c71317.netlify.app/">React App (stalwart-syrniki-c71317.netlify.app)</a></p><p>Happy coding.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dcffb85ddcf8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Create SQL Server on a Windows virtual machine in the Azure]]></title>
            <link>https://medium.com/@shrutipal700/create-sql-server-on-a-windows-virtual-machine-in-the-azure-2eb5dafcb2bb?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/2eb5dafcb2bb</guid>
            <category><![CDATA[sql-server]]></category>
            <category><![CDATA[sql]]></category>
            <category><![CDATA[technical-writing]]></category>
            <category><![CDATA[azure]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Wed, 20 Jul 2022 09:44:48 GMT</pubDate>
            <atom:updated>2022-07-20T09:44:48.075Z</atom:updated>
            <content:encoded><![CDATA[<p><a href="https://azure.microsoft.com/services/virtual-machines/sql-server/">SQL Server on Azure Virtual Machines</a> enables you to use full versions of SQL Server in the cloud without having to manage any on-premises hardware. SQL Server virtual machines (VMs) also simplify licensing costs when you pay as you go.</p><h3>Step 1: Create Azure SQL VM Image</h3><p>Navigate to Azure SQL and <strong>+ add SQL deployment option</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U8eeGkCPprLM15qihy5F4g.png" /></figure><p>In the resource type of <strong>SQL virtual machine</strong>, select and create <strong>Free SQL server License: SQL server 2019 developer on windows server 2022.</strong></p><p>Fill out the instance details and in the Image list, select the image with the version of <strong>SQL Server</strong> and <strong>Windows</strong> operating system. Also, make sure to change the size to <strong>A2 v2</strong>. Fill in other details accordingly.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1006/1*ca4nLDbsZj2m-4WptyrUlA.png" /></figure><p>In the <strong>SQL Server</strong> setting under the <strong>Networking</strong> section, select <strong>public SQL connectivity and 1401 port. </strong>Under <strong>SQL Authentication</strong>, select <strong>Enable.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/842/1*M8QKkifyA14rH1qpln1fIQ.png" /></figure><p>Click <strong>Review + Create</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*t1c3Gb9q8sp3JkEiIMxVTA.png" /></figure><h3>Step 2: Connect to SQL server</h3><p>Download SQL server management studio (SSMS) from<a href="https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16"> here</a>.</p><p>Open <em>C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\ Common 7\ DTASHELL</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/977/1*I3i5F7f0VfJzTUAo0ohYvw.png" /></figure><p>Now copy the<strong> IP address</strong> of the virtual machine and put it in the <strong>Server name</strong> column along with <strong>port 1401</strong>. In the<strong> Authentication box</strong>, select <strong>SQL Server Authentication.</strong> In the <strong>Login box</strong>, type the name of a<strong> valid SQL login and password.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/587/1*Dy_u3V3UTVGhGx22GGNjtQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EIWi3ozvHUK7KXYCT3E26w.png" /></figure><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2eb5dafcb2bb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Multi Factor Authentication setup on Azure.]]></title>
            <link>https://medium.com/@shrutipal700/multi-factor-authentication-setup-on-azure-e0e8f7bc3d3f?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/e0e8f7bc3d3f</guid>
            <category><![CDATA[technical-writing]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[multifactorauthentication]]></category>
            <category><![CDATA[security]]></category>
            <category><![CDATA[active-directory]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Wed, 20 Jul 2022 08:05:52 GMT</pubDate>
            <atom:updated>2022-07-20T08:09:22.488Z</atom:updated>
            <content:encoded><![CDATA[<p>Azure Active Directory (Azure AD) is a cloud computing service operated by Microsoft for application management via Microsoft-managed data centers.</p><p>Multi-factor Authentication is a security tool which make sures that the users have two or more factors of authentication to access application, account or service. This verification measure protects users and their data from security breaching and unauthorize access.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/870/1*8B6_17A6jjuBUCADFYNaxQ.png" /></figure><p>Steps to set up multi-factor authentication on Azure AD:</p><h3>Step 1: Set up Multi-factor authentication</h3><p>First of all navigate to <strong>Azure AD</strong>. On the left column look for <strong>Users.</strong></p><p>Open Users and select the user on which you are willing to apply MFA.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y_kKvywa83xNC__FQbBvvQ.png" /></figure><p>Now click <strong>Per-user MFA</strong>. You will probably land on a page similar to following one.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NG_8IpGdhGEa3vk7EJglHw.png" /></figure><p>Select the user and click <strong>Enable </strong>available under quick steps.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7cdoIil88f-c-f8h5kr3OQ.png" /></figure><p>Confirm multi-factor auth.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PQGV346TEiyAYc3axdFkEw.png" /></figure><p>You should receive a confirmation pop-up.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FKXQAyn94PlRT9vFfRi2FA.png" /></figure><h3>Step 2: Login via Multi-factor auth.</h3><p>Log out from azure portal.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/537/1*qygy6inea0I_SwgUjT1vYg.png" /></figure><p>Now on your <strong>phone</strong>, go to play store and install <strong>Microsoft Authenticator</strong>.</p><p>Sign in new application.</p><p>Now if we try to login on computer, select <strong>other ways to sign in.</strong></p><p>Select <strong>Approve a request on my Microsoft authenticator app</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Nqqh0J0EP86PdmXB0vwBLw.png" /></figure><p>On your phone you will get a new notification.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/591/1*iyUrhenTfFWCOkcp4BHeJw.jpeg" /></figure><p>Upon approval of the request, it’ll automatically log in to your account on azure.</p><p>This example is only one type of multi-factor authentication. MFA includes tons of services in actuality . Explore and try out.</p><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e0e8f7bc3d3f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating single-tier architecture on Azure via Terraform.]]></title>
            <link>https://towardsdev.com/creating-single-tier-architecture-on-azure-via-terraform-e53348d96f12?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/e53348d96f12</guid>
            <category><![CDATA[powershell]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[monolithic-architecture]]></category>
            <category><![CDATA[technical-writing]]></category>
            <category><![CDATA[terraform]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Tue, 19 Jul 2022 16:32:07 GMT</pubDate>
            <atom:updated>2022-08-17T08:10:13.349Z</atom:updated>
            <content:encoded><![CDATA[<p>A single-tier application or Monolithic application is basically a form of Infrastructure-as-a-service (IaaS) in which all components of the application including computing units, networking units, security units, etc. are all attached to a single server.</p><p>In the previous article, we covered how to set up a resource group via Terraform and Azure CLI. In this article, I will be covering how to construct a monolithic architect via Terraform. It would include VNet, subnet, Network interface, Network security group, Disk, IP address range, storage account, and virtual machine.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*dMEHwMIgjSvwHDg1" /><figcaption>Photo by <a href="https://unsplash.com/@clark_fransa?utm_source=medium&amp;utm_medium=referral">Arnold Francisca</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><h3>Step 1: Install Terraform and Azure CLI</h3><p>Refer to my previous blog to download Terraform and Azure CLI. Download and put it in a folder having read and write access.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/897/1*Pb0QyrvXAG1H1TzMdzKcXw.png" /></figure><p>Now run “<strong>az login</strong>” to authenticate via Powershell running as an administrator.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZqEjYdE2uHgZh_ivCoQWFg.png" /></figure><h3>Step 2: Configure the architecture</h3><p>In order to create an architect, we first need to write configuration files.</p><p>In the same folder add a few files.</p><ol><li>providers.tf</li></ol><pre>terraform {<br>required_version = &quot;&gt;=0.12&quot;<br>required_providers {</pre><pre>azurerm = {<br>source = &quot;hashicorp/azurerm&quot;<br>version = &quot;~&gt;2.0&quot;<br>}<br>}<br>}<br>provider &quot;azurerm&quot; {<br>features {}<br>}</pre><p>2. main.tf</p><pre>resource &quot;random_pet&quot; &quot;rg-name&quot; {<br>  prefix    = var.resource_group_name_prefix<br>}</pre><pre>resource &quot;azurerm_resource_group&quot; &quot;rg&quot; {<br>  name      = random_pet.rg-name.id<br>  location  = var.resource_group_location<br>}</pre><pre># Create virtual network<br>resource &quot;azurerm_virtual_network&quot; &quot;myterraformnetwork&quot; {<br>  name                = &quot;myVnet&quot;<br>  address_space       = [&quot;10.0.0.0/16&quot;]<br>  location            = azurerm_resource_group.rg.location<br>  resource_group_name = azurerm_resource_group.rg.name<br>}</pre><pre># Create subnet<br>resource &quot;azurerm_subnet&quot; &quot;myterraformsubnet&quot; {<br>  name                 = &quot;mySubnet&quot;<br>  resource_group_name  = azurerm_resource_group.rg.name<br>  virtual_network_name = azurerm_virtual_network.myterraformnetwork.name<br>  address_prefixes     = [&quot;10.0.1.0/24&quot;]<br>}</pre><pre># Create public IPs<br>resource &quot;azurerm_public_ip&quot; &quot;myterraformpublicip&quot; {<br>  name                = &quot;myPublicIP&quot;<br>  location            = azurerm_resource_group.rg.location<br>  resource_group_name = azurerm_resource_group.rg.name<br>  allocation_method   = &quot;Dynamic&quot;<br>}</pre><pre># Create Network Security Group and rule<br>resource &quot;azurerm_network_security_group&quot; &quot;myterraformnsg&quot; {<br>  name                = &quot;myNetworkSecurityGroup&quot;<br>  location            = azurerm_resource_group.rg.location<br>  resource_group_name = azurerm_resource_group.rg.name</pre><pre>security_rule {<br>    name                       = &quot;SSH&quot;<br>    priority                   = 1001<br>    direction                  = &quot;Inbound&quot;<br>    access                     = &quot;Allow&quot;<br>    protocol                   = &quot;Tcp&quot;<br>    source_port_range          = &quot;*&quot;<br>    destination_port_range     = &quot;22&quot;<br>    source_address_prefix      = &quot;*&quot;<br>    destination_address_prefix = &quot;*&quot;<br>  }<br>}</pre><pre># Create network interface<br>resource &quot;azurerm_network_interface&quot; &quot;myterraformnic&quot; {<br>  name                = &quot;myNIC&quot;<br>  location            = azurerm_resource_group.rg.location<br>  resource_group_name = azurerm_resource_group.rg.name</pre><pre>ip_configuration {<br>    name                          = &quot;myNicConfiguration&quot;<br>    subnet_id                     = azurerm_subnet.myterraformsubnet.id<br>    private_ip_address_allocation = &quot;Dynamic&quot;<br>    public_ip_address_id          = azurerm_public_ip.myterraformpublicip.id<br>  }<br>}</pre><pre># Connect the security group to the network interface<br>resource &quot;azurerm_network_interface_security_group_association&quot; &quot;example&quot; {<br>  network_interface_id      = azurerm_network_interface.myterraformnic.id<br>  network_security_group_id = azurerm_network_security_group.myterraformnsg.id<br>}</pre><pre># Generate random text for a unique storage account name<br>resource &quot;random_id&quot; &quot;randomId&quot; {<br>  keepers = {<br>    # Generate a new ID only when a new resource group is defined<br>    resource_group = azurerm_resource_group.rg.name<br>  }</pre><pre>byte_length = 8<br>}</pre><pre># Create storage account for boot diagnostics<br>resource &quot;azurerm_storage_account&quot; &quot;mystorageaccount&quot; {<br>  name                     = &quot;diag${random_id.randomId.hex}&quot;<br>  location                 = azurerm_resource_group.rg.location<br>  resource_group_name      = azurerm_resource_group.rg.name<br>  account_tier             = &quot;Standard&quot;<br>  account_replication_type = &quot;LRS&quot;<br>}</pre><pre># Create (and display) an SSH key<br>resource &quot;tls_private_key&quot; &quot;example_ssh&quot; {<br>  algorithm = &quot;RSA&quot;<br>  rsa_bits  = 4096<br>}</pre><pre># Create virtual machine<br>resource &quot;azurerm_linux_virtual_machine&quot; &quot;myterraformvm&quot; {<br>  name                  = &quot;myVM&quot;<br>  location              = azurerm_resource_group.rg.location<br>  resource_group_name   = azurerm_resource_group.rg.name<br>  network_interface_ids = [azurerm_network_interface.myterraformnic.id]<br>  size                  = &quot;Standard_DS1_v2&quot;</pre><pre>os_disk {<br>    name                 = &quot;myOsDisk&quot;<br>    caching              = &quot;ReadWrite&quot;<br>    storage_account_type = &quot;Premium_LRS&quot;<br>  }</pre><pre>source_image_reference {<br>    publisher = &quot;Canonical&quot;<br>    offer     = &quot;UbuntuServer&quot;<br>    sku       = &quot;18.04-LTS&quot;<br>    version   = &quot;latest&quot;<br>  }</pre><pre>computer_name                   = &quot;myvm&quot;<br>  admin_username                  = &quot;azureuser&quot;<br>  disable_password_authentication = true</pre><pre>admin_ssh_key {<br>    username   = &quot;azureuser&quot;<br>    public_key = tls_private_key.example_ssh.public_key_openssh<br>  }</pre><pre>boot_diagnostics {<br>    storage_account_uri = azurerm_storage_account.mystorageaccount.primary_blob_endpoint<br>  }<br>}</pre><p>3. variables.tf</p><pre>variable &quot;resource_group_name_prefix&quot; {<br>  default       = &quot;rg&quot;<br>  description   = &quot;Prefix of the resource group name that&#39;s combined with a random ID so name is unique in your Azure subscription.&quot;<br>}</pre><pre>variable &quot;resource_group_location&quot; {<br>  default       = &quot;eastus&quot;<br>  description   = &quot;Location of the resource group.&quot;<br>}</pre><p>4. output.tf</p><pre>output &quot;resource_group_name&quot; {<br>  value = azurerm_resource_group.rg.name<br>}</pre><pre>output &quot;public_ip_address&quot; {<br>  value = azurerm_linux_virtual_machine.myterraformvm.public_ip_address<br>}</pre><pre>output &quot;tls_private_key&quot; {<br>  value     = tls_private_key.example_ssh.private_key_pem<br>  sensitive = true<br>}</pre><h3>Step 3: Creating the architecture</h3><p>On the PowerShell running as an administrator, run the following to initialize and validate:</p><pre>terraform init<br>terraform validate</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jdvDMNCJjQlIk_MEcoDXZA.png" /></figure><p>Next, Terraform will plan a set of actions and eventually applies to finally create our resources. Type:</p><pre>terraform plan<br>terraform apply</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wD2qx11F2gZ03RYbRY5lFA.png" /><figcaption>terraform plan command</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J42rtwg4sPTxT2SWriog1Q.png" /><figcaption>terraform apply command</figcaption></figure><p>And finally,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/511/1*oMIR-VeREGuhIZlQgdeKlw.png" /></figure><p>Now, as indicated by the terminal, our resources are added and ready to use.</p><p>To verify, navigate to the Azure portal.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/955/1*SiS0RZXO41AsaAvUns8tqg.png" /></figure><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e53348d96f12" width="1" height="1" alt=""><hr><p><a href="https://towardsdev.com/creating-single-tier-architecture-on-azure-via-terraform-e53348d96f12">Creating single-tier architecture on Azure via Terraform.</a> was originally published in <a href="https://towardsdev.com">Towards Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Install Terraform on Windows with Azure PowerShell]]></title>
            <link>https://awstip.com/install-terraform-on-windows-with-azure-powershell-157ef5ddf9c1?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/157ef5ddf9c1</guid>
            <category><![CDATA[terraform]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[powershell]]></category>
            <category><![CDATA[chocolatey]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Tue, 19 Jul 2022 07:32:45 GMT</pubDate>
            <atom:updated>2022-07-27T09:11:57.571Z</atom:updated>
            <content:encoded><![CDATA[<p>HashiCorp Terraform is an infrastructure as code tool that lets you define both cloud and on-prem resources in human-readable configuration files that you can version reuse, and share.</p><p>Follow along to install terraform on Powershell and create a resource group using it.</p><h3>Step 1: Install Terraform</h3><p>To install Terraform, we have to first install chocolatey. Run Powershell as administrator and write following commands:</p><pre>Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(&#39;<a href="https://community.chocolatey.org/install.ps1&#39;">https://community.chocolatey.org/install.ps1&#39;</a>))</pre><p>For more details, refer to <a href="https://chocolatey.org/install">this</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QUOHEBwPaIbBXe06xnciJw.png" /></figure><p>Now we install Terraform. In same Powershell window run:</p><pre>choco install terraform</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tCCfhVws-W1okbpHg_Cw_Q.png" /></figure><h3>Step 2: Install Azure CLI</h3><p>Start powershell as adminstrator and run:</p><pre>$ProgressPreference = &#39;SilentlyContinue&#39;; Invoke-WebRequest -Uri <a href="https://aka.ms/installazurecliwindows">https://aka.ms/installazurecliwindows</a> -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList &#39;/I AzureCLI.msi /quiet&#39;; rm .\AzureCLI.msi</pre><p>This will download or update the latest version of Azure CLI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/897/1*Pb0QyrvXAG1H1TzMdzKcXw.png" /></figure><p>Next, we login via Powershell into Azure account:</p><pre>az login</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZqEjYdE2uHgZh_ivCoQWFg.png" /></figure><h3>Step 3: Create a resource group</h3><p>Now create a folder, not in the administrative section.</p><p>Copy terraform.exe from ‘C:\ProgramData\chocolatey\lib\terraform\tools’ to your new folder.</p><p>Also, make Azure CLI available there.</p><p>Add following files in that folder:</p><ol><li><strong>providers.tf</strong></li></ol><pre>terraform {</pre><pre>required_version = &quot;&gt;=0.12&quot;<br>  <br>  required_providers {<br>    azurerm = {<br>      source = &quot;hashicorp/azurerm&quot;<br>      version = &quot;~&gt;2.0&quot;<br>    }<br>  }<br>}</pre><pre>provider &quot;azurerm&quot; {<br>  features {}<br>}</pre><p>2. <strong>main.tf</strong></p><pre>resource &quot;random_pet&quot; &quot;rg-name&quot; {<br>  prefix    = var.resource_group_name_prefix<br>}</pre><pre>resource &quot;azurerm_resource_group&quot; &quot;rg&quot; {<br>  name      = random_pet.rg-name.id<br>  location  = var.resource_group_location<br>}</pre><p>3. <strong>variables.tf</strong></p><pre>variable &quot;resource_group_name_prefix&quot; {<br>  default       = &quot;rg&quot;<br>  description   = &quot;Prefix of the resource group name that&#39;s combined with a random ID so name is unique in your Azure subscription.&quot;<br>}</pre><pre>variable &quot;resource_group_location&quot; {<br>  default = &quot;eastus&quot;<br>  description   = &quot;Location of the resource group.&quot;<br>}</pre><p>4.<strong> output.tf</strong></p><pre>output &quot;resource_group_name&quot; {<br>    value = azurerm_resource_group.rg.name<br>}</pre><p>Now we initialize the configuration in the power shell, run:</p><pre>terraform init </pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/796/1*v37wUTmrIfmIPFgogc2hvg.png" /></figure><p>Next, we validate and plan:</p><pre>terraform validate<br>terraform plan</pre><p>The terraform plan command creates an execution plan, but doesn&#39;t execute it. Instead, it determines what actions are necessary to create the configuration specified in your configuration files.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KwoLSnP7XbyYB9dSmDnOYQ.png" /></figure><pre>terraform apply</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OhJAGAqD5vSWRx0LfiCGCw.png" /></figure><p>Hence a new resource group is created named “<strong>rg-direct-stud</strong>”.</p><p>Navigate to the Azure portal to verify.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Jg36q2xNP_UGhkZkgyXfPQ.png" /></figure><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=157ef5ddf9c1" width="1" height="1" alt=""><hr><p><a href="https://awstip.com/install-terraform-on-windows-with-azure-powershell-157ef5ddf9c1">Install Terraform on Windows with Azure PowerShell</a> was originally published in <a href="https://awstip.com">AWS Tip</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[FTP server on a virtual machine]]></title>
            <link>https://awstip.com/ftp-server-on-a-virtual-machine-3fefc4449160?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/3fefc4449160</guid>
            <category><![CDATA[filezilla]]></category>
            <category><![CDATA[virtual-machine]]></category>
            <category><![CDATA[ftp]]></category>
            <category><![CDATA[azure]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Sun, 17 Jul 2022 18:53:10 GMT</pubDate>
            <atom:updated>2022-07-28T09:29:48.005Z</atom:updated>
            <content:encoded><![CDATA[<p>In this article, we will install an FTP server on a windows instance and connect to it via FileZilla. According to Wikipedia:</p><p>The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network.</p><p>FileZilla is a free and open-source, cross-platform FTP application, consisting of FileZilla Client and FileZilla Server. Clients are available for Windows, Linux, and macOS, servers are available for Windows only.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/653/1*Jg4rzSH2EtTtpxqC6tqvRA.png" /></figure><h3>Step 1: Create a virtual machine</h3><p>On the Azure portal, create a new Windows virtual machine.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ux3VdzuQgQpRqIjhFMP6sQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6tk1fBnBxnHXH-wsz7Feyg.png" /></figure><p>Connect to the instance via RDP.</p><p>On the virtual machine open <strong>Server Manager</strong>. Click <strong>add Roles and Features</strong>. Click next until you reach Server Roles. Select <strong>Web Server(IIS).</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aHrugbSJXPtFJsKo0raCjQ.png" /></figure><p>Click Next. On <strong>Role Services</strong>, select <strong>FTP Service, FTP Extensibility</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Bc_f1fFFLGof-c1Wqj6PsQ.png" /></figure><p>Click Next and finally install. It would take a while.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*y3jRX9DXuIZAkjn0lghCUg.png" /></figure><h3>Step 2: Configuration</h3><p>Navigate to <strong>Tools</strong> on top right bar of server manager. Click on <strong>Computation Management.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/582/1*2Kn3r75QiFq_zJvXV7_dSA.png" /></figure><p>Under<strong> Local Users and Groups</strong>, click on <strong>Groups </strong>and create a new group. I have named my new group “ftp”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/995/1*H8eB2J8NFi0DHOHFcSaruA.png" /></figure><p>In the <strong>Users </strong>section, create a new user. Give it a name and password.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/957/1*1CaAJF7iFUGUrjhGP6DEkw.png" /></figure><p>Now we add the user in our new group. On the properties of the new group, add user.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jNwSn4zS1UQb_TpjTPKmHg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ux3VdzuQgQpRqIjhFMP6sQ.png" /></figure><p>Now we create a folder on the desktop, “new”. Add one or two text files. Right click and open <strong>properties</strong> &gt; open <strong>share. </strong>Add user1. Also, do the same for advanced sharing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/552/1*dMVfgDtonK_UuqbhZWROJw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/695/1*fRqQ5PxcIB9uH6UAFTwVVg.png" /></figure><p>Allow full control, change, and read permission for user1.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/450/1*R3Jh482avpdPNWjLF9bNrw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/567/1*IIHGSeL8ddoDaxCVvvHgxg.png" /></figure><p>Next, go back to Server Manager and under Tools. Click IIS Manager.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/502/1*5b9qkiZ4BS9J9d3IuUYD3Q.png" /></figure><p>Under the VM &gt; Sites &gt; Add FTP Site.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/773/1*5unsiSZpF8KqW0VHLMQLXw.png" /></figure><p>Give it name and it’s physical address.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/883/1*ky3CKC9lA9go-Mt3tnFwPA.png" /></figure><p>Under SSL, select <strong>No SSL</strong>. Click Next.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/838/1*V0LzKbAHh_uTYVi9XLEO6w.png" /></figure><p>Under Authentication select Basic. For Authorization, allow access to specific roles or user groups. Type your group name under. Set up both read and write permission and click finish.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/853/1*rQvi4_zZf-sQeeWPfPWc8g.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J_y30cpSWJg4CubpUUBbUQ.png" /></figure><h3>Step 3: Installing FileZilla and Connect</h3><p>Open the browser and search FileZilla download. Install FileZilla.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1S4sEoga7wvFPYzXqS0OMg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IDl6zt4vrKjZi9SKNseW8g.png" /></figure><p>To connect to the FTP server via FileZilla, type the following information as shown in the orange box. For host write <strong>ftp://VM_IPv4_address. </strong>Also, fill the <strong>physical path</strong> to the folder on<strong> the Local site. </strong>Leave the port at default. Click Quickconnect.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Q-GNMHRk2vvoWipdbnvs4Q.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*97OhNCx0OJHelg0XrYfZCQ.png" /></figure><p>You can see the files under that folder reflected at the <strong>Remote site</strong> as well (Files A and B). Moreover, it displays a successful status.</p><p>That is how we install an FTP server in a virtual machine and connect to it via FileZilla.</p><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3fefc4449160" width="1" height="1" alt=""><hr><p><a href="https://awstip.com/ftp-server-on-a-virtual-machine-3fefc4449160">FTP server on a virtual machine</a> was originally published in <a href="https://awstip.com">AWS Tip</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Install Chrome on VM and Replicate It with Managed Image]]></title>
            <link>https://selectfrom.dev/install-chrome-on-vm-and-replicate-it-with-managed-image-8550446495d3?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/8550446495d3</guid>
            <category><![CDATA[image]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[virtual-machine]]></category>
            <category><![CDATA[chrome]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Sun, 17 Jul 2022 12:35:00 GMT</pubDate>
            <atom:updated>2022-07-30T07:30:49.149Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*NRT9yTPGscdglAx6" /><figcaption>Photo by <a href="https://unsplash.com/@fikrirasyid?utm_source=medium&amp;utm_medium=referral">Fikri Rasyid</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>A managed image is a<strong> </strong>resource that is created from a VM that is generalized. These images are then stored as a managed disk or an unmanaged disk. A managed VM image contains the information necessary to create a VM, including the OS and data disks. The virtual hard disks (VHDs) that make up the image, including both the OS disks and any data disks, are stored as managed disks.</p><p>Managed images can create more virtual machines with the same configuration.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1005/1*_hKoQk81SBfHD0_XiHlX4w.png" /></figure><h3>Step 1: Create a virtual machine</h3><p>Create a basic Windows virtual machine in the desired region. Make sure it contains enough disk size.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/996/1*kF5cZtVihohwPaXkCQI0ww.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iV3uYBoZM6ys0YnH1_fMYQ.png" /></figure><p>Now, connect to the instance via RDP.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-HzQ7WXfyu1o-CIK1V2SFQ.png" /></figure><p>Open PowerShell on the VM and paste the following command to install google chrome.</p><pre>$LocalTempDir = $env:TEMP; $ChromeInstaller = &quot;ChromeInstaller.exe&quot;; (new-object    System.Net.WebClient).DownloadFile(&#39;http://dl.google.com/chrome/install/375.126/chrome_installer.exe&#39;, &quot;$LocalTempDir\$ChromeInstaller&quot;); &amp; &quot;$LocalTempDir\$ChromeInstaller&quot; /silent /install; $Process2Monitor =  &quot;ChromeInstaller&quot;; Do { $ProcessesFound = Get-Process | ?{$Process2Monitor -contains $_.Name} | Select-Object -ExpandProperty Name; If ($ProcessesFound) { &quot;Still running: $($ProcessesFound -join &#39;, &#39;)&quot; | Write-Host; Start-Sleep -Seconds 2 } else { rm &quot;$LocalTempDir\$ChromeInstaller&quot; -ErrorAction SilentlyContinue -Verbose } } Until (!$ProcessesFound)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3ith5RNA8XQjnk1keXo3dA.png" /></figure><p>Type “<em>start chrome</em>” to open chrome.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HlGe3PtBhVguY4q9H_C_Jw.png" /></figure><h3>Step 2: Generalize the machine</h3><p>To generalize the machine:</p><p>First delete C:/Windows/Panther</p><pre>Remove-Item C:/Windows/Panther</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LfRnswZ31INezcB-gcEOzQ.png" /></figure><p>Next, navigate to the C:\Windows\system32\sysprep directory. And run:</p><pre>.\sysprep.exe</pre><p>Select <strong>Generalize.</strong></p><p>Select <strong>Shutdown</strong> from the dropdown. The machine will shut down automatically. Do not restart.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_5727vhFtHBybY7Y8SYnMA.png" /></figure><p>Inform the Azure portal about the Generalization of the machine. Open Azure Powershell and type:</p><pre>Set-AzVm -ResourceGroupName celebal -Name VM -Generalized</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/772/1*anm70IzM6Haeqwf4vnPX4A.png" /></figure><h3><strong>Step 3: Create a managed image</strong></h3><p>Click on <strong>Capture</strong> on the overview page of VM. Select <strong>No, capture only a managed image. </strong>Click<strong> Review + Click.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/842/1*OdIzfEkJKEw1pmmKCh-q8w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0SBANOdJS9mfrkvpXJPkBg.png" /></figure><h3>Step 4: Create a VM from the image</h3><p>To create a virtual machine, go to the overview page of the image.</p><p>Click <strong>Create VM. </strong>Name the new virtual machine and click <strong>Review+ Create</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/832/1*YcBeiOy_AGduM34VvWnDNA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sNKjxiz0XvW6pqh-OC_cow.png" /></figure><p>And with that, you’ve crossed another level to becoming a boss coder. GG! 👏</p><p>I hope you found this article instructional and informative. If you have any feedback or queries, please let me know in the comments below. And follow <a href="https://selectfrom.dev/">SelectFrom</a> for more tutorials and guides on topics like <a href="https://selectfrom.dev/tagged/big-data">Big Data</a>, <a href="https://selectfrom.dev/tagged/spark">Spark</a>, and <a href="https://selectfrom.dev/tagged/data-warehouse">data warehousing</a>.</p><p><strong>The world’s fastest cloud data warehouse:</strong></p><p>When designing analytics experiences which are consumed by customers in production, even the smallest delays in query response times become critical. Learn how to achieve <strong>sub-second</strong> performance over TBs of data with <a href="https://www.firebolt.io/?v=m"><strong>Firebolt</strong></a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8550446495d3" width="1" height="1" alt=""><hr><p><a href="https://selectfrom.dev/install-chrome-on-vm-and-replicate-it-with-managed-image-8550446495d3">Install Chrome on VM and Replicate It with Managed Image</a> was originally published in <a href="https://selectfrom.dev">SelectFrom</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Mount Azure file share on local computer.]]></title>
            <link>https://medium.com/@shrutipal700/mount-azure-file-share-on-local-computer-d722fc12c7c7?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/d722fc12c7c7</guid>
            <category><![CDATA[file-share]]></category>
            <category><![CDATA[azure-storage-account]]></category>
            <category><![CDATA[azure]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Sun, 17 Jul 2022 07:00:07 GMT</pubDate>
            <atom:updated>2022-07-17T07:00:07.524Z</atom:updated>
            <content:encoded><![CDATA[<p>Azure file shares can be mounted concurrently by cloud or on-premises deployments of Windows, Linux, and macOS. File shares are associated with storage accounts.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/757/1*5lIX9EYjLb9oZfq1zOVOdA.png" /></figure><h3>Step 1: Create a storage account</h3><p>You can either create a new storage account or can use an existing account. To create a new account navigate to storage accounts on the azure portal. Name a <strong>globally unique name</strong> for your storage account and appropriate region. Click Review + Create.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/948/1*tOiK55-rAD80YHkiF8ReWA.png" /></figure><h3><strong>Step 2: Create File Share</strong></h3><p>Once your storage account is ready to use, look for <strong>File shares. </strong>Create a new file share.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hAuOq5ojlFdcdX-3kCkm_Q.png" /></figure><p>Name the file share and click create with the rest values set to default.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/548/1*abdArD0w9eK58gqYKZFwDA.png" /></figure><p>When it is done, edit the quota on the overview page. Well, this is optional.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xeDN8l7Fv1M7x71p3wdiQw.png" /></figure><h3>Step 3: Mount on your local system</h3><p>Click <strong>Connect.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/532/1*MxTJ51WRul7iqqQVjs09QQ.png" /></figure><p>Copy the script and run it on Powershell.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yTvZT92FlQXXVQImK93J1Q.png" /></figure><p>Check it on your PC.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1017/1*p6bMNg3Ioa6ROcaUt88RiQ.png" /></figure><p>Hence, a file share is successfully mounted on the device.</p><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d722fc12c7c7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Virtual Machine alerts on Azure]]></title>
            <link>https://medium.com/@shrutipal700/virtual-machine-alerts-on-azure-d88844c182eb?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/d88844c182eb</guid>
            <category><![CDATA[alerts]]></category>
            <category><![CDATA[azure]]></category>
            <category><![CDATA[virtual-machine]]></category>
            <category><![CDATA[monitoring]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Sat, 16 Jul 2022 18:58:17 GMT</pubDate>
            <atom:updated>2022-07-16T18:58:17.749Z</atom:updated>
            <content:encoded><![CDATA[<p>Azure Alerts is part of the toolbox in Azure Monitor. Alerts detect issues and notify customers about problems with infrastructure or applications. There are four types of alerts:</p><ul><li><a href="https://docs.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-types#metric-alerts">Metric alerts</a></li><li><a href="https://docs.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-types#log-alerts">Log alerts</a></li><li><a href="https://docs.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-types#activity-log-alerts">Activity log alerts</a></li><li><a href="https://docs.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-types#smart-detection-alerts">Smart detection alerts</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/815/1*8kwJZy6LxAC8ooGfsNkvUg.png" /></figure><p>Let’s set up an alert rule for VM CPU percentage using Azure Monitor.</p><h3>Step 1: Create a virtual machine</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/870/1*hArrarlsOi7kSx-BqwJH9g.png" /></figure><p>Create a basic virtual machine in your resource group and region. Leave rest at default values. Click Review + Create.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OANRf2gZlXd1OLBSy9Rr6A.png" /></figure><h3>Step 2: Create Alert</h3><p>After the virtual machine is deployed, look for <strong>alerts </strong>in left column<strong>.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hAPO4X19ZMS_DaEVfO9vpw.png" /></figure><p>Click <strong>Create alert rule.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y2neVeGNh5QMt9f2j6cDaw.png" /></figure><p>Now search for “<strong>percentage CPU</strong>”. Select the only option.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/780/1*eJMexPJgr-agIn39TPMJjA.png" /></figure><p>Now, in the<strong> aggregation type</strong> select <strong>Total</strong>. Set the <strong>threshold value</strong> to <strong>80%. </strong>Also, <strong>Aggregation granularity (Period)</strong> to <strong>1 minute</strong>. Click Done.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hdzd2ekxW2KXAmP8_LXQTQ.png" /></figure><p>Next, on the action group page, create a new action group and name it. Click Next.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1SjI-uIzKM0GE-OU-z1Z2A.png" /></figure><p>You will land on the Notification page. Select Email/Message/Voice etc. Give it a name. Select the email option and jot down your email address. Leave rest of the options and click OK. Move forward.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Cim0o1X_0vYIN04_it3dCQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/990/1*E2V9hM_plJMAwXCvdU2Dng.png" /></figure><p>Next, name the alert rule on the Details page. Finally, click Review + Create.</p><p>Before you click create for the last time. You can go ahead and test your alert by specifying some details too. This is an optional step.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1002/1*w-HYEFvc78ciPvRfZ0BLsQ.png" /><figcaption>I received this mail when I tested the alert rule.</figcaption></figure><p>That is all, you will be timely notified next time your CPU percentage approaches to 80% margin.</p><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d88844c182eb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Communication between VNet subnets]]></title>
            <link>https://medium.com/@shrutipal700/communication-between-vnet-subnets-b8f57ca9d1fb?source=rss-ff1e6cb8486b------2</link>
            <guid isPermaLink="false">https://medium.com/p/b8f57ca9d1fb</guid>
            <category><![CDATA[network-security]]></category>
            <category><![CDATA[subnet]]></category>
            <category><![CDATA[azure]]></category>
            <dc:creator><![CDATA[Shruti Pal]]></dc:creator>
            <pubDate>Sat, 16 Jul 2022 14:22:47 GMT</pubDate>
            <atom:updated>2022-07-16T14:22:47.746Z</atom:updated>
            <content:encoded><![CDATA[<p>We have been given a scenario and we have to configure the network security rules to achieve the goal.</p><p>The scenario:</p><p>Create 3 subnets under a virtual network: Web tier, App tier, DB tier</p><p>Configure Network Security Group such that:</p><ul><li>DB tier should not access any tier (Web &amp; App)</li><li>The app tier should access the DB tier and Web tier.</li><li>The web tier should only access the App tier.</li><li>Only the web tier should have access to the internet.</li></ul><p>The steps are pretty easy, here we go:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/856/1*Zn_l7ZL0WFDb-pgQQldSeQ.png" /></figure><h3>Step 1: Create VNet</h3><p>Create a virtual network with three subnets and non-overlapping CIDR ranges.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/858/1*xo4KtfHa_KpRqcZtQ89iyQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/953/1*6cClG4xDZY1SQ-Jxy0a5vQ.png" /></figure><h3>Step 2: Create Virtual Machines</h3><p>For each subnet, we will be creating a basic virtual machine as shown.</p><p>The first is for the Web tier.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/953/1*JsXvTiSLGRGvIdXvPNrLyg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/865/1*C3yQe0dQVgvclasgmsWK3w.png" /><figcaption>VM for Web tier subnet</figcaption></figure><p>The next one is for the app tier. I have denied all public inbound initially.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/885/1*PlR3M6YPUmT8fsAJ_Edqpw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/857/1*5Z1WzKrUoQaHSjoFCJ1Dwg.png" /><figcaption>VM for App tier</figcaption></figure><p>Lastly for the DB subnet. I have denied public inbound here too.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8WntUzdUOj6vHip5N7wxjg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/846/1*w_mEn9BPaYjcmjSQBwEH5A.png" /><figcaption>VM for DB tier</figcaption></figure><h3>Step 3: Configure the network security rules</h3><p>In order to configure the network rule for any VM, we have to go to the <strong>Setting then Networking page</strong> of the respective VM.</p><p>And to test the connection, we will Log in to the SSH of the respective VM.</p><p>Firstly testing the Web VM. It should allow the ping for all other instances of the same network.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/668/1*pShM2V9w7huO_Zt3FGb4Yg.png" /></figure><p>Yes, it does.</p><p>Now if we try to connect to the SSH of other VMs, it’ll deny.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/917/1*U3k5TqM-Cx-J4fYSgiELJQ.png" /></figure><p>Let’s change the networking inbounds of App-VM.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WcyBczUN406JPw2KrKCw4Q.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5vitHQ6hVFDgwcdt6zhAIw.png" /></figure><p>We have added<strong> two </strong>rules in inbound:</p><p><strong>Allow SSH, Allow from Web-VM</strong></p><p>and <strong>three </strong>rules in outbound:</p><p><strong>Allow to Web-VM, Allow to DB-VM, Deny to internet of App-VM.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/812/1*kUcCg-_bhuhUTs2juxYi3Q.png" /><figcaption>Can ping web and DB instances, but cannot connect to google.com</figcaption></figure><p>Next, we configure DB-VM.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OM6SFFuJP4VGefnonZ1_UQ.png" /></figure><p>The outbound rules are set to default.</p><p>We have added an inbound port rule: <strong>Deny web-vm.</strong></p><p>Next, the Web instance already has the necessary ports by default.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/898/1*xkkJJurZNSCne9SDMo1vFg.png" /><figcaption>Can ping google.com and app-vm, but cannot ping db-vm</figcaption></figure><p>That is how we configure network security rules.</p><p>Thanks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b8f57ca9d1fb" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>