Hardware Inventory & Software Deployment to Linux Servers in ConfigManager 2012 SP1

By now, you must be aware of client deployment in Linux machine. You can click here. Its time to have package deployment in Linux machine. 

Before we go ahead with the SW deployment in a Linux machine, we should be aware of supported options https://technet.microsoft.com/en-us/library/jj573943.aspx

i deployed the client,  but for some reason, i am unable to see the client in the console, that's when we refer the logs on what went wrong. it may be a single scenario but can have multiple approaches.

after installing the client, i noticed the log located @ /var/opt/microsoft/scxcm.log

SCXCM.log
===========
2013-06-22T02:38:34,908Z Error [NetworkInterfaceInfo:1162:5575:47424302669776] for net device sit0 can not map sa_family to AdapterType, sa_family is : 776 LinuxUNIXClient 6/22/2013 8:08:34 AM 1884737912 (0x7056D178)
2013-06-22T02:38:54,544Z Info [scx.client.core.CCMExec:611:5824:47981362380752] Requesting for Policy assignment request and evaluation run LinuxUNIXClient 6/22/2013 8:08:54 AM 3379970920 (0xC9764368)
2013-06-22T02:39:30,929Z Error [scx.client.messaging.HttpBroker:219:5575:1114495296] FAILURE on socket transmission! LinuxUNIXClient 6/22/2013 8:09:30 AM 1114491832 (0x426DCBB8)
2013-06-22T02:39:30,929Z Error [scx.client.messaging.HttpBroker:148:5575:47424302669776] Failed to connect to server : pri.ab.com On port 80 LinuxUNIXClient 6/22/2013 8:09:30 AM 1884738296 (0x7056D2F8)

  

As the error suggests, i tried telnet to the site server on port 80 from Linux machine and i see failure. so aim is to fix that. Once done, i could see the clients appearing in console and go ahead and approve it. If you need more information or detailed logging, you may very well enable TRACE.

Simply edit /opt/microsoft/configmgr/etc/scxcm.conf from WARNING to TRACE at two locations in the conf file and restart the service "service /etc/init.d/ccmexecd restart".

As long as the service is not being used or unable to connect to site server, the service ccmexecd will remain stopped, if you try to start it, you may see below error scxcm.log. So the service crashes here.Maybe

 
  
 ><06-22-2013 08:14:34.000+330><thread=47580187459536 (0x7fffe8f61998)>
terminate called after throwing an instance of 'CCM::Client::Messaging::MessengerException'
  

If you try to initiate the policy, say HW inventory policy "/opt/microsoft/configmgr/bin/ccmexec -rs hinv"

 [root@localhost init.d]# Logging Configuration File for SCX CM::/opt/microsoft/configmgr/etc/scxcm.conf
Schedule with id : {00000000-0000-0000-0000-000000000001} was not found. Could not trigger.
  

This only means that the HW inventory policy is not identified.

 

After restarting the service "service /etc/init.d/ccmexecd restart", Monitor the log under "/var/opt/microsoft/scxcm.log"

  

2013-06-22T05:55:59,370Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_Service LinuxUNIXClient 6/22/2013 11:25:59 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:00,770Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_NetworkAdapter LinuxUNIXClient 6/22/2013 11:26:00 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:00,848Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_ComputerSystem LinuxUNIXClient 6/22/2013 11:26:00 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:00,872Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class SMS_Processor LinuxUNIXClient 6/22/2013 11:26:00 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:00,890Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class SMS_LogicalDisk LinuxUNIXClient 6/22/2013 11:26:00 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:00,928Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_DiskDrive LinuxUNIXClient 6/22/2013 11:26:00 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:00,954Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_BIOS LinuxUNIXClient 6/22/2013 11:26:00 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:00,979Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_NetworkAdapterConfiguration LinuxUNIXClient 6/22/2013 11:26:00 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:01,025Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32Reg_AddRemovePrograms LinuxUNIXClient 6/22/2013 11:26:01 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:13,523Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_DiskPartition LinuxUNIXClient 6/22/2013 11:26:13 AM 1088359560 (0x40DF0C88)
2013-06-22T05:56:13,538Z Trace [scx.client.agents.inventory.InvDataStore:786:6473:1088377152] Inventory report preparation has begun for class Win32_OperatingSystem LinuxUNIXClient 6/22/2013 11:26:13 AM 1088359560 (0x40DF0C88)

  

[scx.client.Agents.Inventory.CollectionTask:833:6473:1088377152] Building HWInv data for class root/cimv2/win32_pnpentity (OMI referenced as win32_pnpentity)

 

 

Notice these instances being discovered. These are specific to Linux machine placed by configmanager provider. 

These are the success messages in the log, and if you wait for a while, you should see the HW inventory information under resource explorer. This can take around 15 min to appear. Little bit of patience is required :)

 

Now that i see client well connected, i decide to go for package deployment in Linux 5.8 x64.

If you refer the technet as specified above, only legacy method of package deployment is supported currently. No application deployment is supported. 

Creation of package works exactly the same way as windows, but the options are restricted. I have included some screenshot below to make you comfortable in creating a package.

 

As you can see the command line is what it needs to be passed to Linux client. Remaining option support, please refer to Technet  https://technet.microsoft.com/en-us/library/jj573943.aspx

 

Once done, create a deployment. Again, not all the options are supported.

It always has to be "required". and can not be available

 

Rest of the option goes by default.

Once you have the deployment ready, either you can opt to wait till the policy reaches the client, or you can initiate the policy. 

“/opt/microsoft/configmgr/bin/ccmexec -rs policy”

Monitor the scxcm.log

2013-06-25T20:16:37,207Z Error [scx.client.agents.softwaredist.RejectPolicyMgr:353:6732:1103982912] query WMI . The query was select * from CCM_RejectedPolicy where AdvertisementID = "PRI20001" and ProgramID = "RPM Install program" and PackageID = "CAS0000B" and User = "System"
2013-06-25T20:16:37,367Z Warning [scx.client.agents.softwaredist.CSoftwareDistPolicyMgr:3297:6732:1104892224] Package: CAS0000B LinuxUNIXClient 6/26/2013 1:46:37 AM 1104877576 (0x41DB1808)
2013-06-25T20:16:37,367Z Warning [scx.client.agents.softwaredist.CSoftwareDistPolicyMgr:3298:6732:1104892224] program: RPM Install program LinuxUNIXClient 6/26/2013 1:46:37 AM 1104877576 (0x41DB1808)
2013-06-25T20:16:37,368Z Warning [scx.client.agents.softwaredist.CSoftwareDistPolicyMgr:3300:6732:1104892224] initial validation. Check the log for details. LinuxUNIXClient 6/26/2013 1:46:37 AM 1104877576 (0x41DB1808)

 

We have the policy available, and the client has received the package ID. package is validated and command line is attached.

In the above log, i just have warnings available, but in case you want to see the complete steps of receiving the policy and installation command line, enable trace with the command line specified above.

 

-Chandan