Author Archive | Jonathan

Add module in Azure Automation if DSC Configuration compilation fails

If you get the following error, see below, when compiling DSC Configuration in Azure Automation, it is probably because the module for the DSC Configuration is missing. In my example I need the “nx” module to compile the DSC configuration file. To solve the problem, add the module to the Azure Automation account.

Add module in Azure Automation if DSC Configuration compilation fails 1

Exception calling “NewScriptBlock” with “1” argument(s): “At line:4 char:5 + Import-DSCResource -Module nx + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The DSC engine could not load the module ‘nx’. It was not found on the system. At line:8 char:9 + nxPackage apache2Install + ~~~~~~~~~ Undefined DSC resource ‘nxPackage’. Use Import-DSCResource to import the resource. At line:15 char:9 + nxService apache2Service + ~~~~~~~~~ Undefined DSC resource ‘nxService’. Use Import-DSCResource to import the resource. At line:23 char:9 + nxFile apache2File + ~~~~~~ Undefined DSC resource ‘nxFile’. Use Import-DSCResource to import the resource.” (At line:4 char:5 + Import-DSCResource -Module nx + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The DSC engine could not load the module ‘nx’. It was not found on the system. At line:8 char:9 + nxPackage apache2Install + ~~~~~~~~~ Undefined DSC resource ‘nxPackage’. Use Import-DSCResource to import the resource. At line:15 char:9 + nxService apache2Service + ~~~~~~~~~ Undefined DSC resource ‘nxService’. Use Import-DSCResource to import the resource. At line:23 char:9 + nxFile apache2File + ~~~~~~ Undefined DSC resource ‘nxFile’. Use Import-DSCResource to import the resource.)

Add Module

Open the Azure Automation account and click Asset and then Modules.

Add module in Azure Automation if DSC Configuration compilation fails2

If you have a module package you can upload it to Azure Automation by clicking “Add a module” if it exists in the Gallery, you can download and install it from there. In my example I will click “Browse Gallery” and install it from there.

Add module in Azure Automation if DSC Configuration compilation fails3

Search for the module to install. In my example “nx”.

Add module in Azure Automation if DSC Configuration compilation fails4

Click the module to install and then “Import”.

Add module in Azure Automation if DSC Configuration compilation fails5

Now the module should be installed into the Azure Automation account and be ready to use.

Add module in Azure Automation if DSC Configuration compilation fails6

Try to compile the DSC Configuration file again to see if it works!

 

 

0

Install and configure an Apache web server on Linux with DSC and Azure Automation

This post will describe how to install an apache server, check that the apache service is running and configure the default web page with Desired State Configuration and Azure Automation. After deployed, I will show how to monitor that the configuration is not drifting with DSC in Azure Automation. This DSC service with Azure Automation works both for servers in the on-prem datacenter or at a public cloud provider.

The blog post will also show how to create an easy DSC Configuration file, add it so DSC in Azure Automation, and deploy it to a Linux computer. I will not show how to create an Azure Automation account or deploy the DSC agent. If you need help to deploy DSC on Linux, please see my blog post “Easy installation and registration script for OMS and DSC on Linux” where I install OMI, DSC and the OMS agent.

Get started

To get started we have to create a DSC Configuration file. Below is anexample that will deploy an Apache web server, check that Apache is running and that the web page looks like it should. To test this configuration save the below configuration in a file named DSCLinux01.ps1. This configuration uses the Apt package installer in Linux and is tested on Debian and Ubuntu.

When the configuration file is created go to the Azure Automation account and click DSC Configurations.

Install and configure an Apache web server on Linux with DSC and Azure Automation1

After entered the DSC Configuration click “Add a configuration file” and upload the file DSCLinux01.ps1.

Install and configure an Apache web server on Linux with DSC and Azure Automation2

 

Click on the “DSCLinux01” and then “Compile”. When the status is “Completed” it is time to deploy the configuration to a Linux computer.

Install and configure an Apache web server on Linux with DSC and Azure Automation3

Before the configuration can be deploy the DSC Configuration DSC needs to be installed on the Linux server that is going to use the configuration. See my blog post “Easy installation and registration script for OMS and DSC on Linux” where I install OMI, DSC and the OMS if you need help with this.

When DSC is installed and registered the server shows up under DSC Nodes. Click DSC Nodes and the server to deploy DSC configurations to.

Install and configure an Apache web server on Linux with DSC and Azure Automation4

Click Assign Node Configuration to be able to select the configuration you wish to use.

Install and configure an Apache web server on Linux with DSC and Azure Automation5

Select “DSCLinux01.apache2”.

Install and configure an Apache web server on Linux with DSC and Azure Automation6

Check that the configuration was selected in the “Node Configuration” section.

Install and configure an Apache web server on Linux with DSC and Azure Automation7

Now it is just to wait for the configuration to be added to the server. In the picture below one can see that the configuration has been added and checked that the server is compliant with the configuration file.

Install and configure an Apache web server on Linux with DSC and Azure Automation8

To check the end result, enter the IP or DNS for the server in a web browser to check if one can see the webpage. The result should look like this.

Install and configure an Apache web server on Linux with DSC and Azure Automation10

Let’s also make a quick check on the server to see the apache is installed and the service is started.

Install and configure an Apache web server on Linux with DSC and Azure Automation11

0

Easy installation and registration script for OMS and DSC on Linux

This is an easy Linux bash script to install and register OMS and DSC for Azure Automation. The script uses dpkg for installation of a .deb file so use it for Linux systems that can use the installation option.

Paste the script and save it into an install.sh file. Change the variables for the OMS and DSC installation and registration. Chmod the script with execution rights and then run it as ./install.sh.

Remember that the links in the script can change because of new agents.

 

1

Use Microsoft Assessment and Planning Toolkit to do inventory of the Windows servers

In this post I will show how to do inventory of servers with the tool Microsoft Assessment and Planning Toolkit (MAP). To be able to do this the servers needs to be accessed by WMI because MAP will use this technology to connect and collect information from servers.

Technet resources: https://technet.microsoft.com/library/bb977556.aspx

Download Microsoft Assessment and Planning Toolkit: https://technet.microsoft.com/en-us/solutionaccelerators/dd537566.aspx

Installation

The installation is very strait forward and can be run directly on a server. Just run the installation executable and follow the wizard.

MAP1

When the installation is done, create a database to store the data that is going to be collected.

MAP3

Inventory

To start doing inventory on the servers, click Server on the left side of the application.

MAP4

Then click “Collect inventory data”. This will bring up a wizard. To do inventory of Windows computers checkbox “Windows computers” and click next.

MAP5

Choose how you want to discover the servers to get the inventory from.

MAP6

MAP7

MAP8

To do inventory with “Windows Networking Protocols” one need to have started “Computer Browser” service. This service is disabled by default.

MAP9

MAP10

Add IP range if this is selected.

MAP11

At the ”All Computers Credentials” hit enter if the dialog below don’t show up. Add the accounts needed. For example different accounts that have access to enter different servers.

MAP13

Put the credentials in the order they should be used.

MAP14

MAP15

Click “Finish” to start the inventory.

MAP16

When the inventory is done the status is published in the dashboard. To get a report click on the dashboard, in my example I clicked “Windows Server 2012 R2” and then “Generate Windows Server 2012 R2 Report” to get an Excel report.

MAP17

Report

In the Excel report there are a lot of information regarding the servers. The information is divided in different Sheets in Excel. Below is a summary of what is covered in the report.

  • Windows Server 2012 R2 Assessment Summary
  • System Requirements Used in the Assessment
  • Assessment Results for Servers
  • Server Role Assessment Summary for Windows Server 2012 R2
  • Discovered Applications
  • Device Summary
  • Device Details
  • Inventory Results for All Windows Servers

Inventory Results in the Excel Sheet “Inventory Results for All Windows Servers”

Below is a screenshot of inventory results regarding the servers that is inventoried.

MAP18

More information that are included in the report.

  • Computer Name
  • WMI Status
  • Machine Type
  • Current Windows Server 2012 R2 Readiness
  • Installed Roles
  • Computer Model
  • Current Operating System
  • Service Pack Level
  • Active Network Adapter
  • IP Address
  • MAC Address
  • DNS Server
  • Subnet Mask
  • WINS Server
  • Registered User Name
  • Domain/Workgroup
  • Number of Processors
  • Number of Cores
  • Number of Logical Processors
  • CPU
  • System Memory (MB)
  • Video Card
  • Video Card Memory (MB)
  • Sound Card
  • Disk Drive
  • Disk Drive Size (GB)
  • Optical Drive
  • BIOS
  • BIOS Serial Number
  • BIOS Manufacturer
  • BIOS Release Date

Inventory Results in the Excel Sheet “Discovered Applications”

Below is a screenshot of the inventoried applications.

MAP19

0

Create an Azure Automation DSC Configuration with PowerShell

This is a short introduction on how you can create an Azure Resource Group, Azure Automation Account and DSC configuration with PowerShell.

The first one need is a DSC configuration file to upload into the DSC Configuration. In this example I will use an DSC Configuration file with configuration for the IIS role. To try this, save the following script as a PowerShell ps1 file as C:\DSC\IISFeature.ps1.

To create a Resource Group, Azure Automation Account and DSC Configuration with PowerShell run the following.

0