I just wanna learn!


Getting started with Microsoft Azure Stack (ASDK) (8)

After seven posts on how to get started with Microsoft Azure Stack/Azure Stack Development Kit, I think it’s finally time to share some additional resources that can help you on this amazing journey!

First (and the most important one… and the one that I already mentioned a few times) is the official documentation – hosted at, regularly updated… with everything you need… just at the tip of your fingers! Amazing!

Next, there are two books I’ve been reading (feel free to leave a comment if you know any other book or resource I’ve missed) – the first one is Packt’s Building Hybrid Clouds with Azure Stack by Markus Klein and Susan Roesner (thank you, Ron!). The second book is Sams’ Microsoft Hybrid Cloud Unleashed with Azure Stack and Azure by Kerrie Meyler, Steve Buchanan, Mark Scholman, Jakob Gottlieb Svendsen and Janaka Rangama. Great books written by great authors!

Also, PluralSight is offering the short Microsoft Azure Stack: The Big Picture by Jason Helmick – totally free!

And if you plan to certify on Azure Stack – the official exam 70-537: Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack is available
(accompanied by the official MOC, of course)!

Lastly – make also sure that you don’t miss Jeffrey’s inspiring talk!

Hope it helps!


Getting started with Microsoft Azure Stack (ASDK) (7)

One other important topic of running your Microsoft Azure Stack/ASDK environment is updating. You’ll need to update your deployment regularly to stay supported.

So… how do we do it?

First, you’ll download updates by using the provided Azure Stack Updates Downloader utility.

If you remember the following video, starting at 1:04, you could see the Downloader in action:

Next, you’ll unpack and upload the updates to your Stack deployment (to the updateadminaccount storage account, to be exact):

As the last step, Azure Stack will pick the info about uploaded updates and let you press the (magic) Update now button.

Then… we wait and our updates will be (magically) installed. And that's it! Cool!

I've recorded a short video about this one as well:

Note, though, that updating of the nested Azure Stack/ASDK (i.e. installed inside of a virtual machine, either on Hyper-V, Azure or somewhere else) will probably not work… and this is perfectly fine (and expected)!


P.S. The whole YouTube playlist is available here.


Getting started with Microsoft Azure Stack (ASDK) (6)

Once you’re all set with preparing your Azure Stack/ASDK infrastructure, it’s time to let other users actually use it by forming tenants.

For this, you’ll first create a Plan which contains all the services a tenant is allowed to use with setting the appropriate Quotas on these services. Next, you’ll create an Offer consisting of the plan you just created (and any other you may have created earlier). With that, you can create a Subscription which will, finally, allow your user to consume Azure Stack/ASDK services (i.e. provision virtual machines and any other service you may have put in your plan).

I’ve made a short video about provisioning the above mentioned for my newly created TestUser@azurestack.local user:

Note that my user is using the "tenant portal" (https://portal.local.azurestack.external/) for provisioning its services, and not the "admin portal" (https://adminportal.local.azurestack.external/).



Getting started with Microsoft Azure Stack (ASDK) (5)

It’s not like we can deploy only WordPress or Ubuntu on top of our ASDK – we can do so much more! And now I’ll show you how to add Windows 2016 image to your Azure Stack (ASDK) environment.

First, you’ll need to connect to your ASDK environment by using the Login-AzureRmAccount command. Then you’ll need the Windows Server 2016 ISO, and with an easy New-AzsServer2016VMImage command, you’ll import the Windows Server 2016 bits and create Windows Server 2016 image/template for your Azure Stack environment.

There is also a video showing you all the steps and note that you can also add the latest Cumulative Update (CU) to the template with a simple switch called -IncludeLatestCU (how cool is that?!):

After that, you can easily create a new virtual machine based on Windows Server 2016 template you’ve just created, like in the following video:



Getting started with Microsoft Azure Stack (ASDK) (4)

And now, a short and sweet one – once you have downloaded, installed and registered your ASDK, you can finally start using it!

First thing I would do is to grab something from the Azure Marketplace – inside your Admin Portal (https://adminportal.local.azurestack.external/), you can open up the Marketplace management section and then click on Add from Azure button:

This gives you a whole selection of images available on Azure, which can be downloaded and used on you ASDK. Just for fun, in the next video, I’ll download WordPress (on Ubuntu) and a VM extension called Microsoft Antimalware (hmmm… I wonder what it does? Smile):

Once downloaded, you can provision yourself a brand new WordPress instance, running on top of Ubuntu, on top of your own ASDK, as you can see in the following video:

Happy weekend!


Getting started with Microsoft Azure Stack (ASDK) (3)

As a final preparation step (following my previous post) in using the ASDK, we need to first register it. For that, an Azure subscription is required!

So… let’s do it.

First, we need to make sure we have the required Azure Stack PowerShell modules. It’s also convenient to make the PSGallery trusted repository for installation of the modules, if we need to install them. Then we can download all the tools we’ll need, and finally register our (connected) ASDK environment, using the following commands:

You can find the whole procedure explained in more detail inside the official documentation, of course.

And... once registered – we can finally start using our ASDK!

As before – I’ve also prepared a short video about registering the ASDK:

Happy exploring!


Getting started with Microsoft Azure Stack (ASDK) (2)

In my previous post, I’ve discussed how you can get your hands on the Microsoft Azure Stack Development Kit (ASDK) – now, I’ll show you how to install it.

As I’ve mentioned there already, we will install the ASDK inside of a Hyper-V virtual machine with nested virtualization enabled (a scenario that is not officially supported, but will give you an opportunity to work with ASDK in your lab, if you don’t have all the required hardware).

So… let’s start.

The things you’ll need, as per official article:

  • Hyper-V (2016) host
  • 12-core CPU
  • 96+GB of RAM
  • ~200GB free space for CloudBuilder.vhdx (OS)
  • 4 x 250+ GB free space for data disks
  • Internet/NTP access (time is important!) through a single network adapter (without proxy!)

Once you’ve downloaded and extracted the ASDK bits, you’ll get the CloudBuilder.vhdx file, which we will use for the boot disk of our newly created virtual machine.

But first, we will expand it a bit (I’ve expanded it to 200GB). Don’t forget to expand the partition inside as well!

Then, we can create a new (Generation 2) virtual machine with the following settings, our CloudBuilder.vhdx attached as the first disk and four freshly created data disks:

One other thing we need to ensure is to enable nested virtualization for this virtual machine (allowing us to run Hyper-V inside this virtual machine):

And now we are ready to start our virtual machine, hosting the ASDK.

Once started, virtual machine will finish its configuration (specialization phase of Windows installation), so let it finish and then configure password, computer name and IP address.

After this initial configuration, we configure the NTP settings by using the following:

Now we are ready to use the asdk-prechecker.ps1 script, to check if everything is OK:

And…. we are ready for the installation!

Now we need to run the asdk-installer.ps1 script, which will actually start the wizard which will help with entering the required IP adresses and checking the network connection – as a result, we will get the final commands to kick-off the installation:

One more thing needs to be configured for our virtual ASDK installation to succeed inside in nested enviroment – when the extraction process starts, we need to edit the C:\CloudDeployment\Roles\PhysicalMachines\Tests\BareMetal.Tests.ps1 file by changing the every "-not $IsVirtualizedDeployment" to "$IsVirtualizedDeployment" (that is, remove the "-not"):

Final thing to do is to wait for the whole process to complete (~4,5 hours on my hardware), and the result looks like this:

And there is another (shortened) video of the installation process:

And now we can start playing with our own ASDK!

Stay tuned!


Getting started with Microsoft Azure Stack (ASDK) (1)

So… you’ve heard all about the "hybrid clouds" (all around us), and you’ve finally decided to go with the truly hybrid one – the one from Microsoft, which consists of Microsoft Azure, extended to Microsoft Azure Stack on-premises.

If you are just starting and want to learn about it, you may find it difficult (and rather costly) to obtain the fully integrated OEM solution for your lab. But, there is a solution – Microsoft provides the development kit (ASDK), which can be used for playing around, learning and development (of course).

Where to get started?

First stop should definitely be the official Azure Stack Development Kit (ASDK) page. There, you can register for the download of ASDK software:

After that, you’ll receive a page with all the info you need – hardware and deployment requirements, download and step-by-step guidance links:

First, I recommend you to read through the requirements, and then you can run the prerequisites check script, just to double-check you have all that is needed. Don’t forget that, with hardware, you’ll also need an Azure subscription!

Script should give you output similar to mine (note that I’m using the virtual machine as my “ASDK host” and will be nesting all of it inside Hyper-V, of course):

If everything is fine, you’re ready to download the ASDK, using the provided downloader:

Download of ~12 GB may take a while, so “Please sit back and relax…” (as during the Windows 98 installation, some time ago).

The last step is to unpack the downloaded ADSK binaries (actually, the CloudBuilder.vhdx, as you’ll see):

There is also a short video to help you with the first steps inside the "brave new ASDK world":

In my next post, I’ll show you how to prepare a Hyper-V virtual machine for hosting the ASDK – not the most performing environment, but it’s 'good enough for a simple lab, if you don’t have the hardware one.

Stay tuned!


Deploying Linux machines by using System Center 2016: Virtual Machine Manager templates

In light of "Microsoft loves Linux" initiative, you can now deploy your Linux virtual machines by using templates in the System Center 2016: Virtual Machine Manager. As I was searching on how to do this (successfully), there were couple of articles that helped, so I’ve decided to do a short list of all the necessary steps (in one place).

Steps to make your Linux VM template deployments work:

  • create a new (Generation 2) virtual machine (as you would normally do)
  • install the Linux operating system in that virtual machine (as you would normally do)
    • HINT: A list of supported Linux distributions and versions on Hyper-V is available here.
  • install the Linux Integration Services (LIS) (as per this post):
    • open the "modules" file
    • add the following to the end of this file:
    • save it (Ctrl+X and Y)
    • install LIS and reboot the machine by using the following commands:
    • check if the services are running by using the command:
  • install the Virtual Machine Manager agent (as per this post):
    • share the folder C:\Program Files\Microsoft System Center 2016\Agents\Linux on your VMM machine
    • copy the VMM agent files to Linux virtual machine
      • as a real Windows admin, I did it through the GUI
    • install the agent:
  • fix the boot for Generation 2 virtual machine (boot information is by default stored in the VM configuration file, not on disk – Ben wrote a great article on this “issue”)
    • Ben’s way (didn’t work for me):
      • change directory to the boot EFI directory
      • copy the ubuntu directory in to a new directory named boot
      • change directory to the newly created boot directory
      • rename the shimx64.efi file
    • TriJetScud’s way in the comments (worked for me with Ubuntu 16.04 Generation 2 VM):
  • shutdown the virtual machine and copy its VHDX to the VMM Library
    • HINT: Don't forget to refresh the VMM Library.
  • go to the VMM Library, right-click the copied VHDX and select the Create VM template option
  • proceed with creating the template as you normally would, to the part Configure Operating System
    • HINT: If you are using Secure boot, don’t forget to select the MicrosoftUEFICertificateAuthority template in hardware settings.
  • there, under Guest OS profile, you select the option to create a new Linux operating system customization settings
  • next you specify your guest OS settings and finish creating the template
  • now you can create a new Linux virtual machine from the template you’ve configured!

Hope it helps!



Citrix NetScaler 12 – CLI upgrade helps

There is a new and shiny NetScaler version available – version 12! Smile

All the news and docs are available here, and you can download the latest bits from here. But, I will not write about them now – there is something else I would like to share.

Unlike with other (minor) upgrades, upgrading to this version… well, there were some “challenges”. If you have used Citrix NetScaler before, it has its nice and simple GUI, through which you can do many things… one of them being a system upgrade.

Upgrade process by using GUI is pretty straight-forward:

  • download the latest firmware from Citrix website (.tgz file)
  • login to the appliance and save current configuration
  • if you are using virtual appliances, you can also do a snapshot or checkpoint (depending on the virtualization platform you are using)
  • go to System System Upgrade and select the firmware file and click Upgrade


  • when installation completes, reboot the appliance
  • enjoy your shiny, new NetScaler 12 (upgraded in just 6 steps)! Smile

And now about “the other way”… Smile

As I’ve observed, upgrade option through GUI was not working (for me) in any of the major browsers (Chrome, Firefox, Edge or even Internet Explorer) – upload of firmware finishes and then… nothing really happens. Strange, but… it’s just my luck. No big deal! Smile

What helped in my case:

  • download the latest firmware from Citrix website (.tgz file)
  • use PuTTY to establish SSH connection to your appliance
  • run save config to save all the changes you have made to your existing configuration (but maybe forgot to save it before Smile)
  • if you are using virtual appliances, you can also do a snapshot or checkpoint (depending on the virtualization platform you are using)
  • type in shell (to enter the shell, where we will work with files)
  • create a folder for the new version (I have simply called it 12, as in /var/nsinstall/12/, where I will upload the new firmware)
  • use PSCP (PuTTy Secure Copy Client), also a free command-line utility to copy firmware to the appliance, inside the newly created folder:


  • go back to PuTTy and extract the contents of this firmware:

  • once extracted, run the ./installns command, which will actually do the upgrade (something that was never triggered in my GUI upgrade attempts, obviously Smile)
  • when installation completes, reboot the appliance


  • enjoy your shiny, new NetScaler 12 (upgraded in just 11 steps)! Smile



For a longer, better explained… and official version, please check the Citrix docs, available here.

Note that nothing really changes in your usual upgrade routine – those steps are just in case you have trouble with the GUI, as I did (if your GUI works normally, with your browser, use it).

Hope it helps!