We are so excited to announce the beta version of Universal Automation. Universal Automation is the job execution and scheduling engine for PowerShell. In this post, we will go over some of the features of UA and how to get up and running.
Installing Universal Automation
You will need to install Universal Automation from the PowerShell Gallery. Universal Automation ships as two PowerShell modules. The UniversalAutomation module contains the UA agent and cmdlets. The UniversalAutomation.Dashboard module contains a Universal Dashboard website that you can use with your UA instance to view job status and manage your UA instance.
Note: You’ll need to install the latest version of PowerShellGet to use the AllowPrerelease flag.
Install-Module UniversalAutomation -AllowPrerelease Install-Module UniversalAutomation.Dashboard -AllowPrerelease
Getting Started with UA
UA can easily be started by using the Start-UAServer cmdlet. This will open a new PowerShell terminal that will host an ASP.NET Core web app that is the UA agent.
Start-UAServer -Port 1000 Connect-UAServer -ComputerName http://localhost:1000
To start up the dashboard for UA, you’ll use New-UADashboard and specify the web address of the UA server.
$Dashboard = New-UADashboard -ComputerName http://localhost:1000
You can then pass your dashboard to Start-UDDashboard.
Start-UDDashboard -Dashboard $Dashboard -Port 1001
You’ll now be able to create your first script and run it.
$Script = New-UAScript -Name "Hello, World" -ScriptBlock { "Hello, World" }
Invoke-UAScript -Script $Script
Get-UAJob
Navigate to your UA dashboard to see the status of the job, view the contents of the script and schedule the script to run automatically.
Features of UA
UA has been built with PowerShell in mind so it provides tons of great features for automating the execution of PowerShell scripts.
Job Execution and Scheduling
UA runs PowerShell scripts with the ability to schedule them. You can take advantage of CRON expressions or continuous execution schedules to automatically run jobs. Additionally, kick of jobs manually through PowerShell or the UA REST API.
Deep Integration with PowerShell
UA reports all kinds of information about a script’s execution and integrates tightly with the PowerShell engine. Instead of just reporting output, you will also be able to handle feedback from cmdlets like Read-Host, view progress from Write-Progress and even retrieve objects that were written to the pipeline.
This means that you don’t need to write your scripts in a special way just to integrate with UA. It integrates with PowerShell for you.
Persistence
UA uses both git and a small, lightweight database to track scripts as well as job execution. Scripts are stored within an internal git repository so you can track the history of changes within your UA environment. You can optionally connect the internal git repo to a remote so that you can use standard development practices to make changes to scripts outside of UA.
UA also uses LiteDB to track the execution and status of jobs within the UA environment. You’ll be able to see job history, output, and statistics of executions in your environment.
REST API
UA is a web app that can be controlled not only by the cmdlets included within the module but also by any HTTP compatible system. This means that you can integrate easily with heterogeneous systems that can invoke PowerShell scripts and receive feedback without having to actually run PowerShell.
Ready-to-use Dashboard
UA’s ready to use dashboard is built on Universal Dashboard. You can easily view the state of your UA environment within your browser and manage many of the options within UA without having to jump to the console. Because it’s built on UD, you can integrate with authentication services and provide role-based access controls to your UA environment.
Cross-platform and ready for PowerShell 7
UA is a cross-platform module and works on Linux, Mac, and Windows. Just as with UD, you can easily stand up UA in a container, in Azure or anywhere else you’d like to host it.
Learn More
We have a bunch of resources to get started. You can visit the documentation or our YouTube channel to get started today.
Roadmap, Issue Tracker, and Nightly Releases
You’ll be able to find more information about what’s next, file issues and access nightly releases by visiting the GitHub page.
Community
Join the Ironman Software Forums to chat with other users of Universal Automation.
Webinar
We will also be hosting two live webinars next week to showcase the features of UA. It’s open to the first 100 participants. The first one will be at 12:00 PM Mountain Time on January 22nd. The second will be at 6:00 PM Mountain Time on January 22nd. If you can’t make the webinar, we’ll be posting the demo to YouTube after the show.
12:00 PM Mountain Time – January 22nd – https://zoom.us/j/350252517
6:00 PM Mountain Time – January 22nd – https://zoom.us/j/306969593