From FOG Project
Revision as of 14:04, 28 August 2016 by Wayne-workman.28155 (talk | contribs) (SnapinPacks are zipped)
Jump to: navigation, search

Under construction.

SnapinPacks Brief Overview

SnapinPacks are a new feature specific to FOG 1.3.0 and the new FOG Client (version 0.11.3+). The key ability that SnapinPacks allow is to deploy many files to hosts, and execute one of those files with any needed arguments.

For example, you may deploy driver files to a host with a single SnapinPack. With those files, you can include a script which would run and place the drivers where they need to be. Another example would be bundling a dozen different MSI files, and include a script that runs each MSI with it's individual needed arguments if any. Another example would be larger silent installations such as Adobe Creative Cloud or Microsoft Office; both of these have silent installations with many files and would be well suited for SnapinPacks.

Snapins Are Silent

SnapinPacks must be silent, this requirement has not changed. What is a silent snapin? A silent snapin requires zero interaction to run. If at any point the snapin asks for input from a user, it will simply wait for input that will never come, and timeout eventually.

Snapins Run as SYSTEM or root

All Snapins including SnapinPacks run as the SYSTEM or root user's security context. If a snapin or SnapinPack runs successfully by manual execution but not via the FOG Client - this is typically related to the security context. For example, say you have a shared directory that is granted read access for all Domain Users. Well, an individual host's local SYSTEM or root account is not a member of Domain Users. Therefore, unless alternative credentials are supplied to access the share, any script executed that tries to read this share will not work. There are a few solutions to this. Granting the share read access for anonymous users is the most simple. Specifying credentials within scripts, or as arguments are viable options.

SnapinPacks are compressed

Unlike a normal Snapin where a single file is uploaded to the Fog server, SnapinPacks are a collection of files that are compressed with the .zip format. The organization of files inside the .zip file is up to you, but you must supply FOG with the path to the executable inside the .zip file.

The new FOG Client extracts the .zip file to a directory with the name of the SnapinPack, On Windows it is in this location: C:\Program Files (x86)\FOG\tmp\Snapin-Pack-Name

So for example, you have created in FOG a snapin called "common-things". For this snapin, you upload a .zip file called "All-common-things". The FOG Client will create a directory called: C:\Program Files (x86)\FOG\tmp\common-things and everything inside of the .zip file will be extracted into this new directory. The FOG Client will then attempt to execute the specified executable in this new directory.

Creating a SnapinPack

Create New SnapinPack in FOG

  • 1. Place all needed files in a folder. Right click the folder, choose to compress it. There are different menus for compressing depending on the OS you're using. Linux, Windows, and OSX SnapinPacks must use the .zip format.

  • 2. Access your FOG server's web interface via x.x.x.x/fog/management and log in.

  • 3. Click the Snapin Management icon on the FOG Ribbon, it's at the top, here:

Snapin Management.png

  • 4. On the left of the Snapin Management page, click "Create New Snapin."

Create New Snapin.png

  • 5. Give the SnapinPack a name, Choose the correct Snapin Storage Group, and then click the arrow for Snapin Type and select Snapin Pack.


  • 6. Choose the appropriate SnapinPack template. There are several templates available. For example, if the SnapinPack only runs an EXE, choose EXE. If it only runs an MSI, choose MSI. If it only runs a BASH script, choose Bash Script. If it only runs a batch file (.bat), choose Batch Script. SnapinPacks are not limited to the templates available, but the available templates are listed below.
    • MSI
    • MSI + MST
    • Batch Script
    • Bash Script
    • VB Script
    • PowerShell Script
    • EXE
    • Mono

  • 7. Edit the Snapin Pack Arguments as appropriate. If your .zip file has within it a folder, you would need to include the folder's name between "[FOG_SNAPIN_PATH]" and the path to the executable. For example, let's say the .zip file contains a folder called "test-pack", and within this folder we desire to execute a Batch Script called "install-common-things.bat" We would make our Snapin Pack Arguments as follows:
    • "[FOG_SNAPIN_PATH]/test-pack/install-common-things.bat"

  • 8. Choose the .zip file you prepared in step 1. by clicking the "Browse" button, and browsing to the .zip file and select it.

  • 9. (optional) Check the "Snapin Arguments Hidden?" checkbox to hide the arguments of the Snapin. This is helpful if you send passwords to the Snapin via arguments. It's un-helpful when trying to troubleshoot.

  • 10. (optional) Check or uncheck the "Replicate?" checkbox as you see appropriate. The default is checked, which means the SnapinPack will replicate to all storage nodes that are enabled members of the selected Snapin Storage Group from Step 5. Disabling this option means the SnapinPack may only be "downloaded" by hosts from the master of the selected Snapin Storage Group.

  • 11. (optional) Select if you would want hosts that this SnapinPack is deployed to - to reboot after completion, or shutdown after completion. If a shutdown or reboot is required, you must use this option to reboot and shutdown instead of scripting it. Scripting a shutdown or reboot means the FOG Client cannot report success or failure of the SnapinPack's completion, the Snapin task will remain in queue, and the host will re-attempt to install the SnapinPack the next time it boots, resulting in a reboot loop.

  • 12. Examine the "Snapin Command" at the bottom of the options. Does it look right? For troubleshooting, you may place the non-zipped SnapinPack on a host, and replace [FOG_SNAPIN_PATH] with the full path to the un-zipped SnapinPack files, and run the command with the OS's appropriate run dialog (run, terminal, powershell, etc).

  • 13. Click the "ADD" button at the bottom when you are satisfied with your SnapinPack.

Deploying a Snapin




Batch Script

BASH Script

VB Script

PowerShell Script