Tag: Linux

Add Custom Script Extension Azure Arc Server

Extensions for Azure Arc enabled Servers

With the latest update for Azure Arc for Servers, you are now able to deploy and use extensions with your Azure Arc enabled servers. Currently, you have six different Azure Arc extensions you can deploy to your servers.

  • Custom Script Extension for Linux – Azure Arc
  • DSCForLinux extension on a Ubuntu
  • OMS Agent for Linux – Azure Arc
  • Custom Script Extension for Windows – Azure Arc
  • PowerShell Desired State Configuration – Azure Arc
  • Microsoft Monitoring Agent – Azure Arc

These extensions are similar and consistent with the virtual machine extensions for Azure VMs. These are small applications that provide post-deployment configuration and automation tasks on Azure Arc enabled servers. For example, if a server requires software installation, anti-virus protection, or to run a script inside of it, an Azure Arc extension can be used. Extensions can be run with the Azure CLI, PowerShell, and the Azure portal.

Introducing Azure Arc
For customers who want to simplify complex and distributed environments across on-premises, edge and multicloud, Azure Arc enables deployment of Azure services anywhere and extends Azure management to any infrastructure.
Learn more about Azure Arc here.

You can find more information about Virtual machine extension management with Azure Arc for servers on Microsoft Docs.



Azure Arc Enabled Servers Extension Management

Azure Arc Enabled Servers Extension Management

Azure Arc for Server just got a couple of new features. In this blog post, we are going to have a look at the new feature on Azure Arc enabled servers called extension management. This new Azure Arc enabled servers features allows you not only to deploy extensions like the Custom Script Extension, or the Microsoft Monitoring Agent but also enable features like Azure Update Management, Inventory, Change Tracking, and more for your servers running in a hybrid environment.

Introducing Azure Arc
For customers who want to simplify complex and distributed environments across on-premises, edge and multicloud, Azure Arc enables deployment of Azure services anywhere and extends Azure management to any infrastructure.
Learn more about Azure Arc here.

Azure Arc enabled servers already could benefit from several Azure Resource Manager features like Tags, Policies, RBAC, and some Azure Management features like logs and Azure Policy. With the new update, you can start using more extensions.  With these extensions available, Azure Arc enabled servers also get features like Azure Update Management, Inventory, Change Tracking, and insights capabilities.

Azure Arc Azure Management Control Plane

Azure Arc Azure Management Control Plane

Azure Arc Enabled Servers Extension Management Video

You can also watch my summary video on YouTube.



Speaking at the Microsoft European Open Source Virtual Summit

Speaking at the Microsoft European Open Source Virtual Summit

I am honored to let you know that I will be speaking at the Microsoft European Open Source Virtual Summit 2020 on June 16th. Microsoft European Virtual Open Source Summit by the Microsoft Open Source team is a unique digital event, designed to celebrate communities, entrepreneurs, and developers coming together to build the future of open source technologies in the cloud.

The day will divide into four parallel tracks designed to provide the best learning experience for IT Pros, Developers, and Data Scientists. Each track will be packed with expert guest speakers who’ll be deep-diving into a wide variety of topics, from chaos engineering and serverless architecture to multi-cloud app development.

  • 2 Keynotes from GitHub and Red Hat
  • 4 Tracks with 7 sessions (check the agenda)
  • Ask the Experts Live Q&A
  • 30 Sessions from the most engaging Open Source speakers
  • Digital Expo Area with Digital booths of our partners

I will be presenting two sessions:

  • Hybrid Management capabilities for open source solutions like Azure Arc.
    11:30 – 12:15 CEST
    Register here
  • Making Windows Awesome for ALL Developers with Scott Hanselman
    13:00 – 13:45 CEST
    Register here.

More tracks and sessions:

  • Keynote Session 1: Open Source Built the Modern World by Nat Friedman, CEO, GitHub
  • Keynote Session 2: Business Benefits of Open Source Collaboration Between Red Hat and Microsoft by Stefanie Chiras, SVP & General Manager, Red Hat Enterprise Linux Business Unit
  • Track 1: Infra & Ops – Infra related topics around Linux, Hybrid Management, Chaos Engineering, and more.
  • Track 2: Innovation – Cloud-native track with diverse line-up of speakers and subjects.
  • Track 3: Data & AI – Learn all there is to know about Open Source and Data. Strong line-up also from partners.
  • Track 4: Developers – 7 amazing sessions ensuring the developer audience get what they want!

I hope to see you at the Microsoft European Open Source Virtual Summit! If you have any questions feel free to leave a comment.



How to SSH into an Azure VM from Windows Terminal Menu

How to SSH into an Azure VM from Windows Terminal Menu

A couple of days ago, I released a blog post on how you can add a PowerShell remote session in the Windows Terminal menu. In my example, I created a menu item in Windows Terminal to use PowerShell remoting to connect to an Azure virtual machine (VM). In the meantime, I got a lot of questions on how you can add an SSH connection to an Azure VM in the Windows Terminal. That is why I am going to share here, how you can add an SSH connection to an Azure VM in the Windows Terminal menu.

Scott Hanselman wrote a great blog post on how you can add tabs to open an SSH connection, so I highly recommend that you read his blog for all the details.



Speaking at Deploy by ShareGate Online Event

Speaking at Deploy by ShareGate Online Event

I am happy to let you know that I will be speaking online at Deploy by ShareGate. Deploy is an expert-led online event focused on Microsoft Azure Governance. On May 7th, at Deploy, I’ll be talking about Manage and govern your hybrid servers using Azure Arc, to help you stay on top of your Azure hybrid environment. This full-day virtual event, led by me and seven other Azure experts, is all about helping you implement Azure governance best practices.

Manage and govern your hybrid servers using Azure Arc

Thomas Maurer shows you how you can manage and govern your Windows and Linux machines hosted outside of Azure on your corporate network or other cloud provider, similarly to how you manage native Azure virtual machines. When a hybrid machine is connected to Azure, it becomes a connected machine and is treated as a resource in Azure. Azure Arc provides you with the familiar cloud-native Azure management experience, like RBAC, Tags, Azure Policy, Log Analytics and more.

If you’re interested in learning how to implement Azure governance best practices, join me (virtually) at Deploy by ShareGate on May 7! Save your free seat now and join me (virtually) at Deploy. I hope to see you there!



PowerShell Remoting over SSH in PowerShell 7

Enable PowerShell SSH Remoting in PowerShell 7

In this blog post, we will have a look at how you can enable and set up PowerShell SSH Remoting or PowerShell Remoting over SSh with PowerShell 7. With PowerShell Core 6, Microsoft introduced PowerShell 7 Remoting over SSH, which allows true multiplatform PowerShell remoting between Linux, macOS, and Windows. PowerShell SSH Remoting creates a PowerShell host process on the target machine as an SSH subsystem. Normally, Windows PowerShell remoting uses WinRM for connection negotiation and data transport. However, WinRM is only available on Windows-based machines.

There are also some downsides to it. SSH-based remoting doesn’t currently support remote endpoint configuration and JEA (Just Enough Administration). It is also important to understand that this is not just another PowerShell SSH client.

Use SSH Transport with PowerShell Remoting

To use PowerShell 7 remoting with SSH on Windows, Linux, and macOS machines, you can use the same cmdlets you are already familiar from Windows PowerShell remoting with WinRM.

  • New-PSSession
  • Enter-PSSession
  • Invoke-Command

There are three new parameters for these cmdlets if you are using PowerShell SSH remoting.

  • -HostName (Instead of -Computername, you define the SSH target)
  • -UserName (Instead of -Credentials you use the -UserName parameter)
  • -KeyFilePath (If you are using SSH key authentication you can use the -KeyFilePath parameter to point to the key file)
New-PSSession -HostName tomsssh.server.com -UserName thomas


What's new in PowerShell 7

What’s new in PowerShell 7 – Check it out!

As you know, the PowerShell team just released the new PowerShell version called PowerShell 7. PowerShell 7 will brings a couple of new features and enhancements not only for users who used PowerShell Core 6 but also for people who are currently using Windows PowerShell 5.0. I want to quickly give you an overview of what’s new in PowerShell 7.

New feature enhancements – What’s new in PowerShell 7

There are many enhancements in PowerShell 7 to make it the best PowerShell version yet. It is almost impossible to list all of them in one single blog post, so I will focus on the once, which are the most important once for me.

Out-GridView, -ShowWindow and other GUI cmdlets are back on Windows

With .NET Core 3 brining back WPF support on Windows, the PowerShell team was able to bring back some of the popular graphical tools and cmdlets like Out-Gridview, Show-Command, and the Get-Help -ShowWindow.

Show-Command PowerShell 7

Show-Command PowerShell 7

ForEach-Object -Parallel

Since I started using PowerShell and get into working with objects, ForEach-Object was one of the most critical cmdlets. By adding the -Parallel parameter to the ForEach-Object cmdlet, you can execute a scriptblock in parallel, similar to the option we had with PSWorkflow. With that performance can get so much better if you are working with a broad set of objects. You can also optionally set the maximum threads, which will be used in parallel (the default thread count is set to 5) with the -ThrottleLimit parameter.