System Center 2012: Automating Configuration Manager Client Deployment to Linux Systems
With the introduction of System Center 2012 Configuration Manager SP1 Beta, we have been given access to a beta client for some distributions of the Unix/Linux Operating System. This is great news and will allow for many (but not all) Configuration Manager features to be leveraged against these non-Windows Operating Systems. As would be expected, special consideration will need to be taken in order to install the OS specific Configuration Manager client. In fact, the first order of business would be to determine how the Configuration Manager client will be deployed. As Client Push Installation is not supported for the Unix/Linux client, what other methods do we have for automated client deployment?
In this blog posting I will be detailing a sample Linux client deployment solution using a series of System Center Orchestrator Runbooks. If you have seen the SP1 Beta documentation, Orchestrator Runbooks have been recommended as an automated Unix/Linux Client Deployment solution. This post will provide Runbook Samples, a brief explanation of each activity, and will also discuss a bit what is going on the system end. Be aware that this blog posting is detailing pre-released (Beta) software; this should not be used in a production environment and is subject to change at release time.
The Runbooks referenced in this blog posting are available for download here – Download
Client Installation Overview -
This would be a good time to point out that there are many ways in which the logistics of client installation to a Linux machine could be accomplished. I have chosen to rely on only SSH for this example, your mileage may vary based on environmental factors. With that said, what are the high level steps needed in order to install the Configuration Manager SP1 Beta client for Linux (SUSE Enterprise 11)? At its most basic level, this solution consists of three actions
- Mount the CM Client Files on a folder local to the Linux installation
- Install the Client
- Un-mount the CM Client Files
As you will see I’ve broken this down a bit more, but these thee step make up the basic actions.
Orchestrator Runbooks –
As each of these Runbooks consist of only of Run SSH Activities, I will only place a screen shot of each Runbook and then detail each action with the actual SSH command being executed (SSH commands will be italicized).
Main Execution Runbook – this just handles the execution of the three modular Runbooks (mount, install, un-mount).
Mount Client Files – Creates a folder for the Client Files, and mounts the files from a Windows share into this folder.
- Create Mount Folder - mkdir /tmp/CCMClient
- Mount Client Files - mount -t cifs -o username= <Windows User Name> , password= <password> // <Windows computer Name> / <Client File Share> /tmp/CCMClient
After Execution you will see a folder named CMCllient under /tmp. This folder will contain the selected CM Client files.
Install Client – Installs the Configuration Manager Client
- Prepare Installer - chmod +x /tmp/CCMClient/install
- Install Client - /tmp/CCMClient/./install –mp <MP FQDN> -sitecode <Site Code> /tmp/CCMClient/ <TAR File>
*note the <TAR File> is the actual client installation files. There is a different client package for each different distribution of Linux. I have not shown a method by which to dynamically choose an installer package, however this is something that could be crafted.
Once completed the Configuration Manager client will be installed on the client. You can verify installation by examining the opt/Microsoft/configmgr/bin folder. You should also see the client shortly appear as a device in the Configuration Manager console.
Un-mount Client Files – removed the client files mount point and deletes the directory created earlier in the process.
- Un-mount Client - umount /tmp/CCMClient
- Delete Mount Folder -rmdir /tmp/CCMClient
Once completed the client files will be un-mounted and the /tmp/CCMClient folder will be deleted.
Configuring the Downloadable Runbook Examples –
The Rubooks export available here should provide a base installation routine from which to expand on. For instance, out of the box this Runbook set will not detect what Linux distribution you are targeting and will also not select the appropriate Configuration Manager client files. This process woud have to be worked in if desired. That said the installation plumbing is in place. These Runbooks have been tested against SUSE Enterprise 11.
Once you have the Runbooks imported into your Orchestrator Runbook Designer, the following variables will need to be configured (the variables will have been imported but will require values).
- Client Files Computer – the computer hosting the Linux Client Files.
- Client Files Share – the share hosting the Linux Client Files.
- Client Installation .TAR File Name – specify the client to be deployed.
- Linux User Name – Linux Account.
- Linux Password – password for Linux account.
- MP FQDN – FQDN of the Configuration Management Point that will be used for location look up.
- Site Code – Configuration Manager Site Code.
- Windows User Name – account with access to the Client Files share.
- Windows Password – password to the specified windows account.
Once completed there is nothing to configure in the Runbook activities themselves.
The management of non-Windows system is definitely a game changer. During this short blog posting we have seen how to automate the installation of the Configuration Manager client against a Linux system. While doing so we have also seen the ability of System Center Orchestrator to natively interact with Linux Systems. While client installation is only the first layer of the management cycle, it is an important one :) - having the ability to do so in an automated fashion will ease the process. I hope that this blog posting has given you some material from which to work as you approach the task of managing Linux system with Configuration Manager.