AVD without a Custom Image (ImmyBot)

This is one of those edge use-case scenarios, but if any of you are ImmyBot partners, you can use it to set up your hosts without needing to maintain a custom image. What you can do is have a scripted action to deploy the ImmyBot agent and then let ImmyBot do the rest of the work (Configurations, Applications, etc).

The great thing about this is that anytime a host is recreated, it will automatically grab the latest Azure Image, Nerdio will provision the host, and ImmyBot will configure the host (i.e. Install Updates, Install the latest versions of Software, etc). 


Steps to Reproduce:

NOTE: Depending on how long it takes ImmyBot to deploy configure the host, you may want to add another scripted action to put to deactivate (aka DrainMode) the host and tell Nerdio to "sleep" for XX minutes while Immy does its thing.

  1. Configure your ImmyBot deployment settings
  2. Create a scripted action to deploy the ImmyBot Agent
    NOTE: You may want to use a SecureVariable in your script to automatically assign the host to a specific customer in ImmyBot when it checks in.
  3. Configure your host pool properties
  4. Under VM Deployment, assign the Deploy ImmyBot Agent scripted action in the Run Scripted actions when host VM is CREATED section
  5. Configure your AutoScale settings
  6. Choose your desired Multi-Session Azure Marketplace Image
  7. Let Nerdio Auto-Scale





Comments (4 comments)

Tony Cai

Hi Dave,

Do you know the typical wait time it takes for immy to install the typical apps and get it ready? There is also a run book that allows you to setup a time for when the host stays in drain mode till immy finishes doing its thing then proceed to activate host.

Dave Stephenson
(Edited )

Hey, Tony.

It all depends on the app(s) the client is needing. If they're needing Autotask, it's going to take a lot longer than if they need something simple like Notepad++.

I found the Delay host availability in AVD for 10 minutes run book that could do what most people need.
Depending on the client needs, I could see us cloning that run book for longer times.
But, what I think would be the most scalable is to modify the run book to look for a file on the local host and sleep the activate task until it sees the file exists.
Then, we could have the last Immy task be to create that file once it has completed the rest of the onboarding tasks. 

Jim-Barry Behar

Dave Stephenson would you be willing to share your Deploy ImmyBot script? Thanks in advance!

Dave Stephenson
(Edited )

Happy to help, Jim-Barry Behar 

I'm still trying to get the variables to work (for a single script) (see Scripted Action below), but if you use a centralized "Onboarding Tenant" or a separate script for each customer/account, it works as is.

Here are some instructions from our internal Wiki (Confluence) on how to generate an ImmyBot Agent install PowerShell script:

  1. Logon to Immy Bot 

  2. Click Download

  3. Choose the Customer from the drop-down

  4. Click Next

  5. Select the PowerShell radio button

  6. Check the Enable Automatic Onboarding box

  7. **OPTIONAL**
    Select the Reboot preference

  8. Click Generate Install Script

  9. Copy the script to the desired location

  10. Click Close



Scripted Action
If you look at the screenshot below, only the highlighted items are changing when you generate a script for separate companies.
The $ImmyURL isn't changing, but I put it as a variable so we could test out the Inherited Variables feature.


Please sign in to leave a comment.