




--
You received this message because you are subscribed to the Google Groups "munki-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to munki-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
1) Should there be a pkginfo key that controls this behavior on a per-item basis,
-JoshWell, this just might be the killer feature that makes me invest the time to set up MWA (dammit :)I will say that I have (what I think is) a fair number of optional installs and extra web requests for most of them might be a bummer. Not sure, in practice...
On Tue, Jul 2, 2013 at 8:04 PM, Gregory Neagle <gregn...@mac.com> wrote:
Warning: long post ahead.I'm working on a new feature (initially for internal use, but hoping to build it so it would be more generally useful) and am looking for some opinions.We want to move a larger number of our software packages to "Self-Service" via Optional installs.Items that are free, open source, or for which we have site licenses are no problem; they can just be added to optional_installs.But we'd like to add software for which we have a limited number of license seats as well.I've extended MunkiWebAdmin so it does basic license seat tracking: it knows how many machines have a given piece of software thanks to the existing application inventory and some queries; we can tell it how many seats we've purchased. See the first attached picture for the idea.
<MWA_licenses.png>
Next, managedsoftwareupdate can ask the server for the number of available seats for a given item and record that info in InstallInfo.plist.Managed Software Update.app can use that information to "disable" the availability of items in optional_installs that do not have available seats. See the second attached picture.
<MSU.png>
Note that the checkbox for Adobe Photoshop CS5 is grayed-out and the Status has been updated to tell the user there are no available seats.This behavior of course will be completely optional/opt-in; the admin will (at a minimum) need to set a LicenseInfoURL key in the ManagedInstalls preferences.Initially this will _only_ affect optional_installs. If an item is in managed_installs, it was put there by an administrator. That administrator intends to install an item, so Munki will install it without checking for available seats. Only when processing optional installs will this mechanism be invoked.A few things I have not yet decided upon:1) Should there be a pkginfo key that controls this behavior on a per-item basis, or should managedsoftwareupdate ask the server for available seats for every item in optional_installs? The latter is simpler and less likely for an admin to screw up; but if the majority of software in optional_installs does not have license tracking data, that could be a lot of unnecessary web requests.2) Right now the Item name as seen in the first attached photo (the Licenses view in MWA) _must_ match the item name in pkginfo. Should this be more flexible somehow?Current limitations of this approach and ideas for the future:
<MWA_licenses3.png>
The third attached photo should provide an idea on what data is used to track license seat usage.MunkiWebAdmin finds inventory records based on application name, bundleid, bundlename, or full pathname, and can also filter based on version number.In the provided example, records with a bundleid of "com.microsoft.Word" and version starting with "14." count as an Office 2011 install.
<MWA_licenses2.png>
To accurately track a license seat, you must find an application/version combination that is unique to that product -- in the case of Adobe CSx products, the Uninstaller application is actually the unique thing (and can tell the difference between an install of Photoshop CS6 and one of the suites that includes Photoshop CS6).Currently this allows you to only track applications. There's no way currently to track other, non-application software like fonts or Photoshop plugins. I have some ideas on how to address that in a generic manner in the future.You can also use this mechanism to track other things, even if you don't really care about license seats:
<PastedGraphic-1.png>
A few things I have not yet decided upon:1) Should there be a pkginfo key that controls this behavior on a per-item basis, or should managedsoftwareupdate ask the server for available seats for every item in optional_installs? The latter is simpler and less likely for an admin to screw up; but if the majority of software in optional_installs does not have license tracking data, that could be a lot of unnecessary web requests.
2) Right now the Item name as seen in the first attached photo (the Licenses view in MWA) _must_ match the item name in pkginfo. Should this be more flexible somehow?
A few things I have not yet decided upon:1) Should there be a pkginfo key that controls this behavior on a per-item basis, or should managedsoftwareupdate ask the server for available seats for every item in optional_installs? The latter is simpler and less likely for an admin to screw up; but if the majority of software in optional_installs does not have license tracking data, that could be a lot of unnecessary web requests.I like the latter, It does mean we'd be requiring a munki "server" in order to take advantage of all features, but to be honest I can't believe it's taken this long for that to happen!
Something I would do to minimize calls to the web server is combine them into a single request.
Combining them into a nice clean GET url might not be trivial,
but you could always send them via POST (which seems unintuitive since you want to 'GET' information), or with custom HTTP headers, such as X-Munki-AvailableSeatsFor-[0-9]+: <pkginfoname>.curl --header "X-Munki-AvailableSeatsFor-0: AutoCAD2013" \--header "X-Munki-AvailableSeatsFor-1: AdobePhotoshopCS6" \The server should then be expected to respond in the order asked:5, 100...plist output could be a top-level array of dictionaries instead of a single dict. That wouldn't be a ton of work server-side, but I'm not sure if I'm underestimating how easy it would be to for Munki on the client machine.
2) Right now the Item name as seen in the first attached photo (the Licenses view in MWA) _must_ match the item name in pkginfo. Should this be more flexible somehow?Can't see any reason that it should be. The `name` field has always been the true identifier of the installer item, so it makes sense that we would want to tie licenses and seats to that same value.
--
You received this message because you are subscribed to the Google Groups "munki-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to munki-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
I would think that method #2, asking the server for license availability for each item, would be better, and easier to extend to non-MWA implementations, especially since we'd be adding a new URL into /Library/Preferences/ManagedInstalls.plist.
For example, a munki repo could remain static, with no changes needed to any current pkginfos. The rest of this could just be added in to MWA or another license management/reporting tool.
One more thing, it might be nice to have the option to hide items that are out of licenses from the optional installs list, or put them at the bottom.
I know a lot of these lists would be quickly filled up with items starting with "Adobe."
Warning: long post ahead.I'm working on a new feature (initially for internal use, but hoping to build it so it would be more generally useful) and am looking for some opinions.We want to move a larger number of our software packages to "Self-Service" via Optional installs.Items that are free, open source, or for which we have site licenses are no problem; they can just be added to optional_installs.But we'd like to add software for which we have a limited number of license seats as well.I've extended MunkiWebAdmin so it does basic license seat tracking: it knows how many machines have a given piece of software thanks to the existing application inventory and some queries; we can tell it how many seats we've purchased. See the first attached picture for the idea.
<MWA_licenses.png>
Next, managedsoftwareupdate can ask the server for the number of available seats for a given item and record that info in InstallInfo.plist.Managed Software Update.app can use that information to "disable" the availability of items in optional_installs that do not have available seats. See the second attached picture.
<MSU.png>
Note that the checkbox for Adobe Photoshop CS5 is grayed-out and the Status has been updated to tell the user there are no available seats.This behavior of course will be completely optional/opt-in; the admin will (at a minimum) need to set a LicenseInfoURL key in the ManagedInstalls preferences.Initially this will _only_ affect optional_installs. If an item is in managed_installs, it was put there by an administrator. That administrator intends to install an item, so Munki will install it without checking for available seats. Only when processing optional installs will this mechanism be invoked.A few things I have not yet decided upon:1) Should there be a pkginfo key that controls this behavior on a per-item basis, or should managedsoftwareupdate ask the server for available seats for every item in optional_installs? The latter is simpler and less likely for an admin to screw up; but if the majority of software in optional_installs does not have license tracking data, that could be a lot of unnecessary web requests.2) Right now the Item name as seen in the first attached photo (the Licenses view in MWA) _must_ match the item name in pkginfo. Should this be more flexible somehow?Current limitations of this approach and ideas for the future:
<MWA_licenses3.png>
The third attached photo should provide an idea on what data is used to track license seat usage.MunkiWebAdmin finds inventory records based on application name, bundleid, bundlename, or full pathname, and can also filter based on version number.In the provided example, records with a bundleid of "com.microsoft.Word" and version starting with "14." count as an Office 2011 install.
<MWA_licenses2.png>
To accurately track a license seat, you must find an application/version combination that is unique to that product -- in the case of Adobe CSx products, the Uninstaller application is actually the unique thing (and can tell the difference between an install of Photoshop CS6 and one of the suites that includes Photoshop CS6).Currently this allows you to only track applications. There's no way currently to track other, non-application software like fonts or Photoshop plugins. I have some ideas on how to address that in a generic manner in the future.You can also use this mechanism to track other things, even if you don't really care about license seats:
<PastedGraphic-1.png>
--
You received this message because you are subscribed to the Google Groups "munki-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to munki-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Great idea, I currently use an included manifest with conditional items based on serial number to manage the apps that have limited licenses. This is fine for single licenses, but would be unwieldly for licenses that run in the tens or hundreds.I'm in favor of (also) putting the license requirement in the pkginfo file, because of the following reason:Say MWA dies for some reason, maybe a software patch killed python, no software can be installed anymore because the amount of seats cannot be determined anymore, even for the unlimited-license apps.
I would like the unlimited-licensed apps to be installed wether mwa runs or not.
-Arjen
PS If you could provide a well described api, I'm sure we will be able to add this feature to munkireport-php as well.
I would vote for using a display name. I find that most of the "name" keys are fine, but there are numerous times when the staff try to add an item to a manifest and complain that they can't find it (for example I have Flash Player as name: FlashPlayer, but display_name: Adobe Flash Player).
We're kind of doing this with Simian, and we're already on the self-service model you describe, but we're not relying on this for the actual license counts. Largely because we're not tracking uninstalls. For example, someone installs Office, and that uses a license. Now, instead of using Munki to uninstall, they just drag it to the trash. The receipt is still there, of course, but that machine really isn't using a license any longer. If you have some way to deal with that, then depending on these license counts becomes much more reasonable.
Is there any provision for handling partial installs? I'll give an extreme example (meaning we don't do it exactly this way, but for example):The entire Adobe CS6 suite is rather large. Lets say some users only get Photoshop, some only get InDesign and some get all 3 (Photoshop, InDesign and Illustrator).
Is there a way to easily handle that,
or do we have to find a way to identify the entire package (via a common helper tool etc.) and/or ensure that a single app (say Photoshop) is always installed on all systems that get any part of CS6.Otherwise love the idea. We currently use key management software that is a joke, so I love the idea of something more easily managed.Daniel
On Wednesday, July 3, 2013 6:23:16 AM UTC-7, gregn...@mac.com wrote:On Jul 3, 2013, at 5:19 AM, Edward Marczak <mar...@radiotope.com> wrote:
> We're kind of doing this with Simian, and we're already on the self-service model you describe, but we're not relying on this for the actual license counts. Largely because we're not tracking uninstalls. For example, someone installs Office, and that uses a license. Now, instead of using Munki to uninstall, they just drag it to the trash. The receipt is still there, of course, but that machine really isn't using a license any longer. If you have some way to deal with that, then depending on these license counts becomes much more reasonable.
This is not a problem for my current implementation, as it uses the application inventory feature of Munki/MunkiWebAdmin to track application installs. This is an inventory of applications found on the machine. It's not dependent on pkg receipts.
In your scenario, if the user drags Office to the trash (and empties it), the application inventory for that machine would no longer list Office applications, and so a license seat would become available.
-Greg