keeleysam / munki-exported

Automatically exported from code.google.com/p/munki
Other
0 stars 0 forks source link

update_for packages installing on all machines #252

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
I have added an update to FileMaker Pro 12 to our Munki repo, FileMaker Pro 
12v4.

I edited the pkginfo generated from munkiimport to add the update_for key and 
it's associated string array to specify that this update is for FileMaker Pro 
12.
FileMaker Pro 12 is in the default manifest, in the optional_installs section.
When Managed Software Update is run on a machine that doesn't have FileMaker 
Pro 12 installed, Munki tries to install the 12v4 update

What is the expected output? What do you see instead?
The expected behaviour is that this update will only install on machines that 
specifically have FileMaker Pro 12 already installed.
What seems to be happening is that every machine is trying to install this 
update. As most machines do not have FileMaker Pro 12 installed, then the 
request to install the update keeps reoccurring with every time Munki runs.

What version of the Munki tools/InstallOSpkg tools are you using? On what 
version of OS X?
OS X 10.8.3 and Munki tools 0.9.0.1797
(tried with earlier versions of Munki tools as well with the same result)

I have attached an (edited for clarity) manifest that the client workstations 
are using, as well as the pkginfo files for both FileMaker Pro 12 and FileMaker 
Pro 12v4 Update

Original issue reported on code.google.com by kai.howells@gmail.com on 24 Jun 2013 at 3:57

Attachments:

GoogleCodeExporter commented 9 years ago
I tried to replicate your issue and was unable to. I suspect that the "editing 
for clarity" of the software_manifest actually removed the cause of the 
behavior you are seeing.

For my test, I removed Firefox and Google Chrome from my machine. I added 
Firefox to optional installs in a manifest for my machine, and marked Google 
Chrome as an update_for Firefox.

When I ran Managed Software Update, it found no available updates. I clicked 
"Optional Software..." and selected Firefox for install. After clicking "Update 
software list..." MSU downloaded both Firefox and Google Chrome and showed them 
as available updates. I clicked "Optional Software..." once again and unchecked 
Firefox.  After clicking "Update software list..." again, MSU.app informed me 
there were no available updates.

All of this is the expected set of behaviors.

I suspect a run of `/usr/local/munki/managedsoftwareupdate -vvv` might shed 
some light on what you are seeing.

Original comment by gregnea...@mac.com on 24 Jun 2013 at 4:42

GoogleCodeExporter commented 9 years ago
kai: any more info to add? If not, I will probably close this issue since I 
can't replicate it. You can always reopen it or bring it up on the munki-dev 
list.

Original comment by gregnea...@mac.com on 1 Jul 2013 at 4:21

GoogleCodeExporter commented 9 years ago
Sorry, I didn't see the reply - I'll have another go at replicating the issue 
and supply more information today.

Original comment by kai.howells@gmail.com on 8 Jul 2013 at 12:51

GoogleCodeExporter commented 9 years ago
I think what's happening here with the case of FileMaker Pro is that the 12.0.4 
updater isn't installing properly under Munki, yet it does install properly if 
I run the installer manually.

The other package I saw this issue with was with an Office update, so I'll 
check this as well.

Interestingly enough however, when I add the FileMaker update to the manifest, 
I receive a warning message:

$ manifestutil add-pkg FileMakerPro12v4-update --manifest urban_software 
WARNING: Package FileMakerPro12v4-update is not available in catalogs 
['default'] of manifest urban_software.ar
Added FileMakerPro12v4-update to section managed_installs of manifest 
urban_software.

Yet, it seems to be added to the manifest OK after this warning.

Original comment by kai.howells@gmail.com on 8 Jul 2013 at 1:25

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I've done some more testing with Microsoft Office 2011.
I have a package made from the volume license install media for Office 2011 
12.2.3
This has been imported into Munki and added as an optional_install
It seems to work - I've got it installed on a handful of machines and it's all 
good.

I've cleaned out my repo of prior Office 2011 updates and downloaded the 14.3.5 
update.
(I deleted the pkgs and pkgsinfo files and then ran makecatalogs)
I imported the 14.3.5 update to my Munki repo with munkiimport.

urbanserver:internal.urbangroup.munki admin$ munkiimport 
import/Office2011-1435UpdateEN.dmg 
      Item name [Office 2011]: Office2011 Update
   Display name [Office 2011 14.3.5 Update]: 
    Description: 
        Version [14.3.5]: 
       Catalogs [default]: 

      Item name: Office2011 Update
   Display name: Office 2011 14.3.5 Update
    Description: 
        Version: 14.3.5
       Catalogs: default

Import this item? [y/n] y
Upload item to subdirectory path []: apps/microsoft
Copying Office2011-1435UpdateEN.dmg to /Volumes/Urban 
RAID/internal.urbangroup.munki/pkgs/apps/microsoft/Office2011-1435UpdateEN-14.3.
5.dmg...
Saving pkginfo to /Volumes/Urban 
RAID/internal.urbangroup.munki/pkgsinfo/apps/microsoft/Office2011 
Update-14.3.5.plist...
Rebuild catalogs? [y/n] y
Rebuilding catalogs at /Volumes/Urban RAID/internal.urbangroup.munki...
urbanserver:internal.urbangroup.munki admin$ 

Next, I edit the plist file to add that this is an update_for Office 2011 and 
add in blocking_applications

    ...
    <key>name</key>
    <string>Office2011 Update</string>
    <key>update_for</key>
    <string>Office 2011</string>
    <key>blocking_applications</key>
    <array>
        <string>Microsoft Excel</string>
        <string>Microsoft Outlook</string>
        <string>Microsoft PowerPoint</string>
        <string>Microsoft Word</string>
    </array>
    <key>receipts</key>
    <array>
    ...

After editing the pkgsinfo for the Office 2011 Update, I ran makecatalogs again.
Question - do the order of the keys in the pkgsinfo plist make any difference? 
Does 

At this point, before I add the package to the manifest (using manifestutil), 
if I run Managed Software Update and in the Optional Installs I tick the 
checkbox for Microsoft Office for Mac 2011, it fetches the DMG for me for 
Office 2011 _and_ it fetches my 14.3.5 update, even though it's not in any 
manifest.

Then, I quit Managed Software Update and clear it's cache on the workstation.
Next, the package is added to the manifest using manifestutil

urbanserver:internal.urbangroup.munki admin$ manifestutil add-pkg "Office2011 
Update" --manifest urban_software
WARNING: Package Office2011 Update is not available in catalogs ['default'] of 
manifest urban_software.
Added Office2011 Update to section managed_installs of manifest urban_software.

Now, when I run Managed Software Update on a machine that doesn't have Office 
2011 installed, this update comes up as being available.

I've attached the output from managedsoftwareupdate -vvv on the workstation as 
well as an updated copy of my munki repo (minus the pkgs directory) 

There must be something wrong with my manifests or catalog, however I can't see 
what that would be... The manifest has only been edited with manifestutil and 
the catalog has only been made with makecatalogs - neither the manifest nor the 
catalogs have been edited by hand.

Either that, or I'm not editing the pkgsingo plist files correctly?

Original comment by kai.howells@gmail.com on 8 Jul 2013 at 2:11

Attachments:

GoogleCodeExporter commented 9 years ago
"Question - do the order of the keys in the pkgsinfo plist make any difference?"

No. A plist functions like a dictionary, hash, associative array or key/value 
store.

"At this point, before I add the package to the manifest (using manifestutil), 
if I run Managed Software Update and in the Optional Installs I tick the 
checkbox for Microsoft Office for Mac 2011, it fetches the DMG for me for 
Office 2011 _and_ it fetches my 14.3.5 update, even though it's not in any 
manifest."

This is the expected behavior and the entire reason there _is_ a update_for 
key. When Munki installs an item, it looks for other items declaring they are 
an "update_for" the current item.

"Then, I quit Managed Software Update and clear it's cache on the workstation.
Next, the package is added to the manifest using manifestutil"

Don't do that. Items that declare they are an "update_for" other items 
generally should never be added to a manifest. Only the "main" item (the one 
the update is _for_) should be added to a manifest.

Original comment by gregnea...@mac.com on 8 Jul 2013 at 3:52

GoogleCodeExporter commented 9 years ago
Actually, this would explain your original issue completely. By adding updates 
to a manifest, you are telling Munki to install these updates to every machine 
that uses that manifest.

Remove the updates from all manifests. Munki will automatically find and apply 
updates based on the "update_for" key.

Original comment by gregnea...@mac.com on 8 Jul 2013 at 3:54

GoogleCodeExporter commented 9 years ago
Greg, thank you for your help with this, it was driving me crazy. I didn't 
realise that update_for items work automatically without needing to be added to 
a manifest. That makes a lot of sense now that I think about it as it's less 
work to push out an update.

Can the documentation on Supported Pkginfo Keys please be updated to clarify 
that update_for items explicitly shouldn't be added to a manifest as I'm sure I 
can't be the only person who's made this error (or can I?)
http://code.google.com/p/munki/wiki/SupportedPkginfoKeys 

Original comment by kai.howells@gmail.com on 8 Jul 2013 at 10:29

GoogleCodeExporter commented 9 years ago
Is this not sufficient?

http://code.google.com/p/munki/wiki/PkginfoFiles#update_for

Original comment by gregnea...@mac.com on 8 Jul 2013 at 10:32

GoogleCodeExporter commented 9 years ago
It would be beneficial to explicitly say something along the lines of "Items 
that declare they are an "update_for" other items generally should never be 
added to a manifest. Only the "main" item (the one the update is _for_) should 
be added to a manifest."

Whilst it says you don't need to edit manifests, it would be less ambiguous if 
it stated that things will not work as expected if they are added to a manifest.

Either way, I've learned my lesson now.

I'd like to take the opportunity to say a big thanks for the whole Munki 
project - I'm sitting here typing this in while a new workstation that's fresh 
out of the box is currently installing package 11 of 22 for a new workstation 
setup. Having this process automated has been a huge time saver and it is 
wonderful to ensure that everything is installed consistently and in the right 
order on new or rebuilt machines.

Original comment by kai.howells@gmail.com on 9 Jul 2013 at 6:56

GoogleCodeExporter commented 9 years ago
Updated documentation and closing this issue.

Original comment by gregnea...@mac.com on 9 Jul 2013 at 2:55