What's the best way to deploy an application patch, specifically filemaker 7.0.3a updater?

Basically, i'd l like to have a way have this updater run on machines that have FM7 PRO versions less than 7.0.3.

Even a one time push of the updater would do.

Any ideas?

Matt
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

1
You want to use a managed install along with a filter-driven machine inventory label targeting the specific machines you want to update. The managed install's software inventory items should be specifically tied to an inventory item for FileMaker Pro 7.0.3a so that it knows when a machine is updated. You may need to update one machine manually and have it check in to get that specific FileMaker Pro 7.0.3a inventory item on your KBOX.

The managed install is a constant, but there are a couple of approaches for creating the filter, from the simplest and most general to the less simple and more specific.

1. Simple and General: You can create a label attached to a machine filter to target the machines that should get the managed install. First, create your label, called something like "Old FileMaker Installed". Then, create a maching inventory filter that looks for "Software Titles" = "FileMaker Pro 7", if the titles of all versions of FileMaker Pro 7 that you want to upgrade look like that. Here's an example looking for FileMaker Pro 8, which is all I have I my KBOX. You then target that label for the managed install you create for the updater.



2. Less Simple, More Specific: Use the same managed install and FileMaker Pro inventory item, but create the label's filter to go for specific versions. Unfortunately, the filter-building pulldowns don't let you look for particular versions, so you'll have to edit the filter SQL. Repeat the steps above to create the filter-driven label "Old FileMaker Installed." Then, go to Reports/Filters and select the "Old FileMaker Installed" filter. The SQL will look something like

select *, UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(LAST_SYNC) as LAST_SYNC_TIME,
UNIX_TIMESTAMP(MACHINE.LAST_SYNC) as LAST_SYNC_SECONDS
from ORG1.MACHINE
where (( (1 in (select 1 from ORG1.SOFTWARE, ORG1.MACHINE_SOFTWARE_JT where MACHINE.ID = MACHINE_SOFTWARE_JT.MACHINE_ID and MACHINE_SOFTWARE_JT.SOFTWARE_ID = SOFTWARE.ID and SOFTWARE.DISPLAY_NAME = 'FileMaker Pro 7')) ))


You want to add another qualifier to the where clause so it only looks for versions below a particular number, something like this


select *, UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(LAST_SYNC) as LAST_SYNC_TIME,
UNIX_TIMESTAMP(MACHINE.LAST_SYNC) as LAST_SYNC_SECONDS
from ORG1.MACHINE
where (( (1 in (select 1 from ORG1.SOFTWARE, ORG1.MACHINE_SOFTWARE_JT where MACHINE.ID = MACHINE_SOFTWARE_JT.MACHINE_ID and MACHINE_SOFTWARE_JT.SOFTWARE_ID = SOFTWARE.ID and SOFTWARE.DISPLAY_NAME = 'FileMaker Pro 7' and SOFTWARE.DISPLAY_VERSION <= '7.0.3')) ))


The and SOFTWARE.DISPLAY_NAME = 'FileMaker Pro 7' and SOFTWARE.DISPLAY_VERSION <= '7.0.3' is the part that's important. The quotes around the '7.0.3' are also important, since that's an alphanumeric value and not a numeric one.

3. Least Simple, Most Specific: You should be able to identify all the versions of FileMaker you want to upgrade by looking at software inventory. Do a search on all software for "FileMaker" and you'll see all the versions of all the FileMaker products that are out there.

Hover over the links for each one and you'll see, in your browser's status bar a link which identifies the ID of the software item in the KBOX database, something like http://kbox/adminui/software.php?ID=6157. That 6157 is the ID number of that particular version of FileMaker. Find the ID numbers of all the versions of FileMaker you want to target for upgrade and edit the "Old FileMaker Installed" filter to look something like this


select *, UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(LAST_SYNC) as LAST_SYNC_TIME,
UNIX_TIMESTAMP(MACHINE.LAST_SYNC) as LAST_SYNC_SECONDS
from ORG1.MACHINE
where (( (1 in (select 1 from ORG1.SOFTWARE, ORG1.MACHINE_SOFTWARE_JT where MACHINE.ID = MACHINE_SOFTWARE_JT.MACHINE_ID and MACHINE_SOFTWARE_JT.SOFTWARE_ID = SOFTWARE.ID and
SOFTWARE.ID IN (3520, 6157) )) ))



The and SOFTWARE.ID IN (3520, 6157) is the part that's important. That selects only the parts you're interested in.

You'll notice something interesting about the labels you created in 2 and 3 above, if you try them. As FileMaker gets upgraded, machines fall out of the labels. That's a self-liquidating label, one of my favorite stupid KBOX tricks.

Hope this helps.
Answered 10/20/2009 by: jkatkace
Purple Belt

Please log in to comment
1
John:

this is what i've ended up with as my SQL filter

select *, UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(LAST_SYNC) as LAST_SYNC_TIME,
UNIX_TIMESTAMP(MACHINE.LAST_SYNC) as LAST_SYNC_SECONDS
from ORG1.MACHINE
where (( (1 in (select 1 from ORG1.SOFTWARE, ORG1.MACHINE_SOFTWARE_JT where MACHINE.ID = MACHINE_SOFTWARE_JT.MACHINE_ID and MACHINE_SOFTWARE_JT.SOFTWARE_ID = SOFTWARE.ID and SOFTWARE.ID IN (1892, 2201) )) ))

1892 = fm7.0.1
2201 = fm7.0.2

when i view computer inventory by this label it returns no computers. There should be 59 machines that meet the criteria. FWIW, when i created the FM 7 filter using the the basic GUI (software title = filemaker pro 7) the filter picked out 185 machines with FM7 which is what it should find. However, after i associate the filter with the label i created and try to view by that label, it returns 0 machines.
Answered 10/20/2009 by: msandona
Senior Yellow Belt

Please log in to comment
1
A filter, by definition, will not be evaluated until it checks in. John's least specific method is the easiest to test because you can preview using an advanced search what the results will be. Advanced Searches are on the data that is in inventory, while filters are based on what was evaluated on the machine's last inventory.

If you wanted to test the method of manually writing the filter's SQL query you will need to run the query against the database -- as a SQL report or using a tool like the "MySQL Query Browser". Search the FAQ for that browser if you are interested.

The order of an inventory (for our purposes) is:
inventory collection->evaluate filters-> run MIs
The good news is that since you are using a managed install the machines will not run this install until the next time they check in. Also good news is that filters are evaluated before MI's. So, the next time the machine checks in you should see it become a member of that filter label and do the uninstall.

Note that the current inventory will still show that software installed. You will have to do another inventory (either wait or manually) to see that it was removed.

--
Gerald Gillespie
Support
888-522-3638
http://support.kace.com
http://kace.com/support
Answered 10/20/2009 by: GillySpy
Seventh Degree Black Belt

Please log in to comment
Answer this question or Comment on this question for clarity