Azure Virtual Network Manager

Intro In this post, I will guide you through creating an Azure Virtual Network Manager preview (VNM) and describe what the service can do for you. The service is still in preview when writing this post, so please do not deploy any of this into your production environment. VNM will enable central management of connectivity and security policies across regions and subscriptions. What this actually means will be shown in the guide below, but it does bring something new to the table.
7 minutes to read
Martin Therkelsen

Getting Azure Function under source control

Intro In this post, I want to show you how you can easily set up Azure DevOps to control your Azure Function Apps (AF). Out of the box, AF supports editing in the portal or using VS Code / Visual Studio for both editing and updating. While both methods are fine, I prefer to use Azure DevOps for AF instead, enabling source control. Want to know how I do this? Read on, and I will show you.
4 minutes to read
Martin Therkelsen

Windows 365 - Custom images

Intro In this blog post, I want to show you how easy it is to create a custom image in Azure and use it inside your Windows 365 machines. The process is simple, and hopefully, this guide will help you get started with the basics. And after that, you can start automating all the steps if you want to. Setup I first need to create a new virtual machine in Azure with the Windows 10/11 operating system.
4 minutes to read
Martin Therkelsen

Windows 365 - How to get started

Intro In this post, I want to guide you through the initial setup of Windows 365 (W365) from Microsoft. W365 is also known as Cloud PC and is the new desktop in the Cloud that Microsoft delivers. There are two flavors of W365, a business and an enterprise edition. The business edition will be a standard alone machine with no network connectivity to your on-premises or Azure network. In contrast, the enterprise edition will have a network card inside your Azure subscription so that you have the option of connecting it to internal resources.
5 minutes to read
Martin Therkelsen

Citrix images using Citrix Cloud RestAPI and Azure DevOps

Intro In this blog post, I want to show you how to create Citrix images using Azure DevOps and publish them to Citrix Cloud via the RestAPI. I will show you that Citrix images can run both on-premises and in Azure (or any other cloud, but outside this scope). I am using Citrix Cloud, Azure DevOps, Azure IaaS, VMware ESXi, and Microsoft Deployment Toolkit (MDT) for this blog post. Now I won’t get much into the MDT configuration and use, but I am using it in both the on-premises and Azure deployments.
10 minutes to read
Martin Therkelsen

Azure Network Security Group rules - Azure DevOps

As you may know, I am a bit fan of automation and source control, and the reason for this is that these tools help me provide a stable IT environment for customers and internal use. The confidence that doing an installation or update and that the deployment is executed exactly as I did the last time is something I appreciate. Using automation doesn’t mean there are no mistakes, but I only have to fix it one time instead of remembering or doing a document each time explaining the change.
7 minutes to read
Martin Therkelsen

GitHub Actions and Azure key vault

We all know that we shouldn’t put any passwords into our code and check them into source control, but many guides (including my own) often reference a password variable or parameter. The parameter option is actually OK, in my opinion, as long as you then reference a secure password from either an Azure DevOps library, GitHub Secret, or using an Azure key vault. In this post, I want to show you how to reference secrets stored in the Azure key vault and use them in a GitHub action and pass the value to a Bicep deployment.
4 minutes to read
Martin Therkelsen

Getting started with GitHub Actions and Bicep – Part 6

This is the last part of this blog series, and here I want to show you how to use a JSON configuration file and a PowerShell script to deploy the same environment as you have seen in the first five parts of the series. This deployment type will feel familiar to many consultants since PowerShell is widely used among consultants. This deployment method can ease them into a DevOps mindset. Doing it this way enables flexibility around which part of the code to deploy by using if statements in the PowerShell script.
6 minutes to read
Martin Therkelsen

Getting started with GitHub Actions and Bicep - Part 5

In this part of the series, I will create two virtual machines and join them in my on-premises domain. These machines will be Citrix Cloud Connectors that will serve my Citrix environment with a new resource location in Azure. The Cloud Connectors will be deployed in an Azure Availability Set to ensure high availability. Source code can be found on my GitHub, find it here . I start with the creation of a new branch for my code, this will be called “VM”.
8 minutes to read
Martin Therkelsen

Getting started with GitHub Actions and Bicep - Part 4

In this part of the blog series, I want to create the VPN connection from Azure to my on-premises lab environment. As I did in the last part, I will create a new branch in Github for my work. I am doing this to ensure that my main branch is always running without errors. I will call this new branch for “VPN”. The first step is to create the template file for the Virtual Network Gateway in Azure.
6 minutes to read
Martin Therkelsen