Managing Linux Computers Using System Center 2012 R2 Configuration Manager
Managing Linux Computers Using System Center 2012 R2 Configuration Manager
In this post we will take a look at steps for managing Linux computers using System Center 2012 R2 Configuration manager (SCCM 2012 R2). If I look back at my post on Installing SCCM 2012 SP1 client agents on linux computers it was just about the installation of SCCM client agents on the Linux machine. In this post we will not only install the SCCM 2012 R2 client on Linux machine but we will also learn more on managing the Linux computers using SCCM 2012 R2.
We will install the client agent, create a collection for linux based computers, create and deploy the custom client device settings enabling hardware inventory settings, we will see examples of hardware inventory reports and lastly we will see how to uninstall the SCCM client out of the Linux machines. The System Center 2012 R2 Configuration manager clients for UNIX and Linux extends the scope of your Configuration Manager environment to collect inventory, deploy software, and run reports about UNIX and Linux servers in your enterprise. The client operates as a workgroup client that is managed by Configuration Manager.
When we install SCCM 2012 R2 client agents on linux machine, you can use some of the management capabilities on Linux and UNIX computers while some of them cannot be used.
Supported | Not Supported |
---|---|
Collections, queries, and maintenance windows | Client push installation |
Hardware inventory | Operating system deployment |
Software deployment | Application deployment |
Monitoring | Software inventory |
Reporting | Software updates, Compliance settings |
Deploy custom client settings | Internet-based client management |
Deploy software by using packages and programs | Remote control, Power management |
Client status client check and remediation |
Now we will download the SCCM 2012 R2 client agents for Linux based computers. You can download the client agent for Linux computers by clicking on below button.The following UNIX and Linux versions are supported.
- Â Â Â AIX Version 7.1, 6.1, 5.3
- Â Â Â Solaris Version 11, 10, 9
- Â Â Â HP-UX Version 11iv2 , 11iv3
- Â Â Â RHEL Version 6 , 5, 4
- Â Â Â SLES Version 11, 10, 9
- Â Â Â CentOS Version 6, 5
- Â Â Â Debian Version 6, 5
- Â Â Â Ubuntu Version 12.4 LTS, 10.4 LTS
- Â Â Â Oracle Linux 6, 5
SCCM 2012 R2 Clients for Additional Operating Systems
Download the ConfigMgr Clients for Linux and click Next.
Once you have downloaded the ConfigMgr clients for linux, extract it to a folder and copy the folder to your Linux machine, copy the files to a directory /opt/client (client is a new folder that has been created under /opt) . In this example I am using RedHat 6.2 server on which the SCCM 2012 R2 client agent will be installed.
Before you proceed and install the client agent on linux machine make sure that your linux machine is properly communicating with SCCM server. Use Ping to check the connectivity to the SCCM server. To resolve the hostname, open the terminal on linux machine and type the command vi /etc/resolv.conf. Set the IP address for nameserver (set to DNS Server IP), provide the domain name and search name and save the file.
On the linux computer, use root credentials to run the following command to enable the script to run as a program, chmod +x install.
execute the command ./install –mp sccm.prajwal.local -sitecode IND ccm-UniversalX64.1.0.0.4580.tar
The syntax of the command is ./install -mp <Management point server FQDN> -sitecode <code> ccm-Universal-x64.<build>.tar
Additionally, Configuration Manager client for Linux and UNIX supports the use of fallback status points. You can specify the FSP by adding -fsp <FSP server FQDN> to the command.
From the below screenshot we see that the client agent has been installed successfully on the linux machine. If you are looking for a log file to validate the install process you can check /var/opt/microsoft/scxcm.log. In case you change the hostname of linux machine after the installation of client agent, then you must reboot the linux machine once.
/var/opt/microsoft/scxcm.log – This log file contains information about the installation and ongoing operations of ccmexec.bin. If you are looking for troubleshooting UNIX/Linux client operations then you must use this log file.
/opt/microsoft/omi/scxcmprovider.log – This is the CIM service log file which captures the CIM service operations.The CIM server installs as part of the client for Linux and UNIX. If you are using SCCM 2012 SP1 (without CU1) you will see that the client used nanowbem as its CIM server.
I would recommend to restart the linux machine once the client agent has been installed on it. If you don’t not want to restart the server you can stop and start the ccmexecd process.
To STOP the ccmexecd you can use the command          /etc/init.d/ccmexecd stop
To START the ccmexecd you can use the command          /etc/init.d/ccmexecd start
As mentioned earlier scxcm.log file records both installation and operational information. This log file is useful when you want to troubleshoot client operations. There might be a situation where you are troubleshooting the client installation issues and you want verbose information to be logged in scxcm.log. There are four different log levels each one having a unique setting.
1) ERROR: Indicates problems that require attention.
2) WARNING: Indicates possible problems for the client operations.
3) INFO: More detailed logging that indicates the status of various events on the client.
4) TRACE: Verbose logging that is typically used to diagnose problems.
To change the log level, edit /opt/microsoft/configmgr/etc/scxcm.conf and change each instance of the tag MODULE to the desired log level.
After the SCCM client has been installed on linux machine, in the Configuration Manager console, under All Systems you will find the linux machine name. Right click on the linux computer and click Approve.
Now lets create a collection to group the linux computers. Microsoft recommends to use the Caption value for the Operating System class to identify different Linux and UNIX operating systems in queries and collections. In this example I will be using the Attribute Class as Operating System and Attribute as Manufacturer. You can use the below query to add the redhat machines to collection.
select SMS_R_System.ResourceId, SMS_R_System.ResourceType, SMS_R_System.Name, SMS_R_System.SMSUniqueIdentifier, SMS_R_System.ResourceDomainORWorkgroup, SMS_R_System.Client from SMS_R_System inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Manufacturer = “Red Hat, Inc.”
We have now created a collection named RHEL systems and our linux machine has been added to the collection.
We will now create a custom client device settings for the RHEL systems collection and enable the Hardware Inventory.
The client for Linux and UNIX supports the following hardware inventory classes that are available on Linux and UNIX servers:
- Win32_BIOS
- Win32_ComputerSystem
- Win32_DiskDrive
- Win32_DiskPartition
- Win32_NetworkAdapter
- Win32_NetworkAdapterConfiguration
- Win32_OperatingSystem
- Win32_Process
- Win32_Service
- Win32Reg_AddRemovePrograms
- SMS_LogicalDisk
- SMS_Processor
To perform a Machine Policy Refresh action on clients execute the following command :- /opt/microsoft/configmgr/bin/ccmexec -rs policy
To trigger an inventory scan from a client run the following command :- /opt/microsoft/configmgr/bin/ccmexec -rs hinv
Once you trigger the hardware inventory scan cycle, open the MP_Hinv.log file located on the SCCM server. Look for the line Full report from client linux.prajwal.local, action description = hardware.
In the CM console right click the linux machine and click Start > Resource Explorer. Under Hardware, click Services to see the list of services.
You can also find the Installed Applications on the linux machine.
You can also generate the report for the Linux machine.
In case of Windows we typically query WMI for inventory data, whereas the UNIX/Linux client stores its inventory data in a series of XML files. You can view the default classes by directory listing /opt/microsoft/configmgr/root/cimv.Â
Lastly to uninstall the SCCM client agent from the linux machine you can use the command :- /opt/microsoft/configmgr/bin/uninstall
To completely uninstall ConfigMgr and OMI press C and hit enter. The client has been uninstalled.
Is Linux supported in SCCM anymore? I see no update on min requirements going past RedHat 6
We are trying to find a way to install a dual boot system with Windows and Linux. I have tried dd.exe to capture the Linux installation. I have tried two versions of dd.exe. Both say in WinPE: “This version of dd.exe is not compatible with the version of Windows you’re running. Check your computer’s system information and the contact the software publisher”.
Is dd.exe somehow deprecated? Is there another way to install Windows and Linux on one computer through SCCM? Any help would be much appreciated.
Hi,
I am facing the same error with Centos x64 current release –
2018-04-23T17:12:21,099Z Error [scx.core.common.pal.system.common.scxostypeinfo:534:195894:140497007593600] Unable to load configuration file /etc/opt/microsoft/scx/conf/scxconfig.conf
Any suggestions?
Hi Dimitris, have you confirmed if the sccm linux client agent is compatible with your centos version ?.
Yes I have checked it – I am using Centos 7 x64 (3.10.0-693.21.1.el7.x86_64) and the latest client version for current branch 1802.
Hello Prajwal Desai,
Thank you for the post.
I hope you can help me with the following, while trying to install sccm client on a linux machine as mentioned in your post the below error appears in scxcm.log:
2017-12-11T09:16:19,256Z Error [scx.core.common.pal.system.common.scxostypeinfo:534:4098:139714464937952] Unable to load configuration file /etc/opt/microsoft/scx/conf/scxconfig.conf $$
Please advise.
Thank you again
Abdul K
hi,
I need to monitor the memory of Linux serves
Can someone help me?
Thanks
Hi Prajwal, I have some basic questions related to software distribution to mac and Linux clients. Does it support Application Catalog via web point. Also what application formats in Linux/unix are supported (eg.. like msi in windows)
Hi,
Is it easier to manage Linux with SCCM if the Linux machines are joined to the AD Domain?
Is it recommended to join Linux systems to the Domain anyways, at least to inventory the hostnames, if AD authentication is going to be used for those Linux systems?
@Aditya – So far I have not tried installing R2 client agent on AIX machines. Have you checked if the client agent is compatible with AIX machine ?
Hi Prajwal, I am trying to install SCCM 2012 R2 client in AIX server, It is giving me below error.
File etc/buildarch not present in the archive.
cat: 0652-050 Cannot open /tmp/cmetc/etc/buildarch.
The OS/Version/Architecture of this archive file does not match this system, exiting…
I am using ./install -mp CMServerFQDN -sitecode ABC ccm-Aix61ppc.tar, I am not able to get different tar file for different bit version for AIX (64 / 36), I am referring the same link which you have provide above for client download.
Hi Steven,
Do you have information on how SCCM 2012 R2 does with Linux/ Unix Audit.log files collecting and parsing the security logs of Linux? Any info would help… Thank you.
Hi Praj. Could you please make instruction on how to install the SCCM client on a MAC OS?
Hi Steven, I shall publish a post on that soon.
Thank you 🙂