Download Cacher for Air Gap

I want to use the download cacher on a machine in an airgapped configuration to download the BES Support (and others).
Basically want I want to do is use the download cacher on a machine that is connected to the internet to get the actual content (new versions of bigfix, utilities, etc…) save them, and then bring them to the air-gapped network and import them into the BigFix server cache so they are used by the fixlets.

Has anyone done this and could provide some examples of how to use the BESDownloadcacher switches for this?

I am using the BESAirGap tool to pull all the fixlets successfully, now its a matter of pulling on the BES specific content.

Thanks,
Lou

Here is a link to the Wiki instructions for using the download cacher tool. The help with the utility explains the switches pretty well too.
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli%20Endpoint%20Manager/page/Installing%20in%20an%20Air-Gapped%20Network

Are you looking to download just Windows patches or do you also need Linux distros?

Hi Lou,

Assuming you are referring to the following Download Cacher utility:

https://www.ibm.com/developerworks/community/wikis/home?lang=en#/wiki/Tivoli%20Endpoint%20Manager/page/TEM%20Download%20Cacher

For reference, the command line options are available here:

https://www.ibm.com/developerworks/community/wikis/form/anonymous/api/wiki/90553c0b-42eb-4df0-9556-d3c2e0ac4c52/page/c71910e2-8052-4751-853b-5a45bfc97266/attachment/120e4a3d-973f-4241-9fc8-4964fe7b1dad/media/BESDownloadCacher-5.8.3_help.txt

If you are going to run this utility from a machine that is not a Relay (I’m assuming not the Root Server since it is air-gapped), then you’ll either need to supply the links to the files you wish to download, or the masthead file of the site you wish to download so that the utility can look up the urls. Using BES Support as an example, here is one potential way to run the utility:

BESDownloadCacher-5.8.3.exe -m bessupport.efxm -x R:\temp\cache\

You can find the masthead files (such as bessupport.efxm) of the various external sites in your environment from the actionsite folder of any Client (so long as at least one Client is subscribed to the site in question).

Aram,

Thanks I’ll give this a try… once I move the content that is put in R:\temp\cache\ how do I get the “inside” BigFix Server to load it into its internal cache?

Lou

R:\temp\cache can naturally be changed to whatever local path you wish. Once the content is downloaded locally, it is simply a matter of copying the contents of the local folder to download cache folder on the Root Server (typically …\BES Server\wwwrootbes\bfmirror\downloads\sha1 on Windows, and /var/opt/BESServer/wwwrootbes/bfmirror/downloads/sha1 on RHEL). The download cacher utility renames the files to their sha1 value (a step that would otherwise have to be done manually: http://www-01.ibm.com/support/docview.wss?uid=swg21506037).

2 Likes

So I was able to use this procedure, but it downloaded about 25GB worth of content including many old versions of utilities and support files.

Is there a best practice for pairing this down? Is there a way to pass a date or a fixlet number into the download cacher to only pull content past a certain date? Like the way the airgap utility works?

Or do I need to use the -o Switch and manually edit a file full of download strings to just get the content that I want?

Thanks,
Lou

As you suggest, with the current download cacher, the -o switch is probably your best bet (though this is an area we are exploring to provide more granular options).

One way you might generate the file containing the desired download links is to leverage Session Relevance within either the Console or Web Reports. The basis for this is described by @jgo in: Identify what web sites all the fixlets need access to?

The following session relevance will return all the download links from BES Support:

unique values of ((matches (case insensitive regex “((mailto:|(news|(ht|f)tp(s?))://){1}\S+)”) of matches (case insensitive regex “^(download|prefetch|download now|download now as|add prefetch item).*$”) of scripts of actions whose (exists script of it) of it) as string) of fixlets whose (fixlet flag of it or task flag of it or baseline flag of it) of bes sites whose (display name of it = “BES Support”)

This can be filtered in any number of ways based on the metadata associated with a Fixlet, but for instance, the following will return the download links from BES Support where the source release date is within the last year:

unique values of ((matches (case insensitive regex “((mailto:|(news|(ht|f)tp(s?))://){1}\S+)”) of matches (case insensitive regex “^(download|prefetch|download now|download now as|add prefetch item).*$”) of scripts of actions whose (exists script of it) of it) as string) of fixlets whose ((fixlet flag of it or task flag of it or baseline flag of it) AND (exists source release date of it) AND source release date of it > (current date - (1 * year))) of bes sites whose (display name of it = “BES Support”)