Freddy Mora Silva is Senior Technical Consultant at Infront Consulting. Connect with him on LinkedIn.
As part of any monitoring strategy, we might need to automate some tasks to provide key information to evaluate the state of our infrastructure or apply a repetitive action to resolve specific issues.
We have several ways to implement this. One option is to use Microsoft’s Azure Automation toolset. Let’s explore what you can control with Azure Automation and how to get started using it for cloud server update management, configuration, and more.
Azure Automation is a cloud-based service consisting of process automation, update management, and configuration features. It provides complete control during deployment, operations, and decommissioning of workloads and resources.
What are the capabilities of the platform?
Process Automation provides the ability to automate frequent, time-consuming, and error-prone cloud management tasks by creating custom runbooks (in PowerShell or Python) or by reusing libraries with built-in functions to provide several actions.
You can use Azure platform resources or configure onsite servers acting as hybrid workers to run them. This last option provides flexibility in the execution of certain runbooks, allowing you to adapt them according to your needs.
Configuration Management allows 3 main solutions: Inventory, Change Tracking, and State Configuration (DSC).
Configure VMs to collection/review information about new software, files, registries, services, machine groups, or Linux Daemons.
Configure VMs to collection/review information about changes in software, files, registries, services, machine groups, or Linux Daemons.
State Configuration (DSC):
Configure VMs to check desired settings applied versus a defined configuration expected in these machines. You can track changes across services, daemons, software, registry, and files to quickly identify what might be causing issues. Additionally, DSC can help you diagnose and alert when unwanted changes occur in your environment.
Update Management allows you to update Windows and Linux systems across hybrid environments, while getting information about update compliance across Azure, on-premises, and other clouds. You can process deployments to orchestrate the installation of updates within a defined schedule.
Here you can configure a set of shared resources that will be used by the different mentioned capabilities.
Here you can define global variables that can be used across runbooks and configurations without having to modify any of the runbooks and configurations that reference them.
Here you can store securely credentials that can be used by runbooks and configurations at runtime.
Here you can store certificates to be used during runtime for authentication purposes.
Here you can store names or value pairs of information that contain common information when connecting to systems in connection resources. Connections are defined by the module author for use at runtime in runbooks and configurations.
Here you can configure predefined times used in the service to trigger automation.
Modules are used to manage Azure and other systems. Import into the Automation account for Microsoft, third party, community, or custom defined cmdlets and DSC resources.
As you can see, Azure Automation is highly configurable and customizable based on your needs and cloud environment. Take the time to experiment and explore some commonly used Azure Automation settings and you might find your workflow becomes much more efficient and your environment much more stable!