Feedback: Snap-in system
-
If I could ask one thing is that, sometimes snapins just take ages to deploy. I’m not sure of the reason, but especially if you try to deploy snapins to a machinie that hasn’t been recently imaged. Does FOG try to wait for certain client circumstances before installing them or?
It would love a “force deploy” snapins so they would get pushed out the machine quickly.
I’ve noticed with win 7 some snapins deploy, but then don’t finish for some reason… But I can just add a task to cancel the SFX task before the cmd script finished…
-
Could you eliminate the prompt that says “An instance of FOG Tray is already running.”? In my organization, it’s common for people to move around between PCs. If multiple people log in to the same PC using Switch User, the subsequent users will all get the error. It confuses people, and I can’t think of any purpose for the message. It seems adequate for duplicate instances to silently fail or write it to the log rather than display an error.
Also, +1 vote for finding a way to handle snapins that are multiple files. A relatively simple way might be this:
Instead of supporting only executable snapins, make it also possible to upload two files: a ZIP of the package and an accompanying script (batch file, VBS, .CMD, etc.) that will execute. The script will be responsible for unzipping the package, running any installers, and doing any other installation tasks.Also also, I’d vote for making FOG more aggressively check that a snapin installed correctly. If a machine gets shut down or rebooted in the middle of deploying a snapin, it can get stuck as “In Progress” in the FOG console, never fully deploy, and the machine may have a corrupt snapin that only installed halfway. Similarly, if a user is running an application while FOG tries to deploy an update to it, it can fail. Making FOG more intelligently retry to deal with these scenarios would be great.
-
I would love the Snap-In functionality (and overall FOG) to integrate with AD/LDAP/SAMBA
Then apply snapins on a group level.
What I mean is;
In LDAP let’s say you have a structure as follows;
Organisation
[INDENT=1]-Departments[/INDENT]
[INDENT=2]-Finance[/INDENT]
[INDENT=3]-PC1[/INDENT]
[INDENT=3]-PC2[/INDENT]
[INDENT=2]–Engineering[/INDENT]
[INDENT=3]-PC3[/INDENT]
[INDENT=3]-PC4[/INDENT]
[INDENT=3] [/INDENT]
I would love to be able to apply Snap-In’s to the Finance department and all PC’s below automatically get those assigned. Kicker is I want this structure to be read from AD/LDAP so that there is no need to a seperate lot of groups in FOG as well.Then you can move a PC from OU and it gets the Snap-Ins assigned from that OU
If not on an OU level, even Groups would do for PC’s
e.g
Group1-SnapIn-1
Group2-Snap-In2Any computers in Group1 get the Snapin 1 deployed etc
Is there a better way of achieving something like this?
-
[quote=“Lee Rowlett, post: 1591, member: 28”]i would like to see maybe a progress bar or be able to send detail to the gui like what stage of the script it is installing if it is a multiple software install script… I.e Installing Adobe… Then Installing Java etc. etc…[/quote]
How does the Snap-In system work at the moment? is this about right?
[LIST=1]
[]The FOG Agent periodically polls the server checking for Tasks at offset times to not overload server
[]The FOG Agent sees a list of pending Snap-Ins begins downloading the first one eg SNAP-IN-1
[]Run the Snap-In until it exits
[]FOG Agent pops up Message Box “Installation Complete SNAP-IN-1”
[/LIST]Why not give us an API into the FOG Agent’s message system (if some way doesn’t already exist???)
so when we are installing something, we can be writing messages to the FOG Agent if required and it pops up the message in the top right hand corner.
Eg We could have a process like this
[LIST=1]
[]The FOG Agent periodically polls the server checking for Tasks at offset times to not overload server
[]The FOG Agent sees a list of pending Snap-Ins begins downloading the first one in the list eg SNAP-IN-1
[]The FOG Agent runs the Snap-In
[]Inside the Snap-In script there is a command/script whatever which send the Fog Agent the message “Installation Starting” this is popped up on screen by the FOG Agent
[]Snap-In continues on … opps there is an error installing … using API, error can be displayed on screen in the agent box
[]If there was no error, return code 0, FOG Agent pops up Message Box “Installation Complete SNAP-IN-1”
[/LIST]At the moment sometimes I use snap ins to display something eg, a vbsccript messagebox pops up why not give us a way to send those messages to the FOG Agent popup
-
[quote=“Blackout, post: 194, member: 1”]Thanks for the feedback guys.
Multiple files is a hard one as it will require a lot of work (more than i can do before 0.33)
Dependency & weighting are very possible though.[/quote]
Dependency & weighting would be a big help. -
A simple work around for now is to name your snapins in the order they should be weighed.
Example:
- Chipset
- Microsoft Office
- Antivirus
- etc.
They will be picked up properly by the SQL database and be installed in the order as named. Not ideal, and it’s a global “all or nothing” when it comes to their installation order, but it does work.
YMMV.
-
Yeah, the snapin agent is hard coded to wait 350-500 seconds in [B]fog_0.32/FOG Service/src/FOG_SnapinClient/MOD_SnapinClient.cs:[/B]
[CODE]126 try
127 {
128 Random r = new Random();
129 int intSleep = r.Next(350, 500);
130
131 log(MOD_NAME, “Sleeping for " + intSleep + " seconds.”);
132 System.Threading.Thread.Sleep(intSleep * 1000);
133 }[/CODE]
There’s a good posting on this at [URL=‘http://www.edugeek.net/forums/o-s-deployment/92417-how-modify-snapin-client-sleep-timer.html’]edugeek.net[/URL] -
[quote=“afmrick, post: 4735, member: 417”]Yeah, the snapin agent is hard coded to wait 350-500 seconds in [B]fog_0.32/FOG Service/src/FOG_SnapinClient/MOD_SnapinClient.cs:[/B]
[CODE]126 try
127 {
128 Random r = new Random();
129 int intSleep = r.Next(350, 500);
130
131 log(MOD_NAME, “Sleeping for " + intSleep + " seconds.”);
132 System.Threading.Thread.Sleep(intSleep * 1000);
133 }[/CODE]
There’s a good posting on this at [URL=‘http://www.edugeek.net/forums/o-s-deployment/92417-how-modify-snapin-client-sleep-timer.html’]edugeek.net[/URL][/quote]Correct. i’ve also gone one step further and downloaded the new snapinclient.dll that checks in every 30 seconds instead of 5. Saves time on imaging / etc. Check the wiki and main support pages on these forums for a copy of it.
-
Great feedback here guys!
FYI, the waits have been reduced in FOG SVN source code. But it has not been recompiled just yet.
-
Hi Guys,
What I do for snap-ins is create a sub-folder on a read-only file share - and put the binaries and cmd script in that folder, then I upload the cmd script to the fog server for snap-in deployment - that way I don’t have much for extra files on my fog server and leverage the file server we already have…
This way we can deploy to XP or Windows 7 and I don’t need to be concerned about maintaining more than many one snap-in for multiple OS’s… I’ve attached an script example to this post…
Also I edit the PHP/SQL code a little bit so that when we’re adding snap-in’s to a host - it won’t show existing host snap-ins in the list of all snap-ins… in other words if a host has 30 snap-ins assigned to it - when we select a new snap-in to add to the host - those 30 are not present in the candidate list.
Maybe this has already changed in the new version(s) of Fog… I haven’t looked yet…
Finally, we’ve have some applications that deploy via group policy (office 2010) as an example, so when Fog images a host, it adds the host to our domain and adds the computer object to the OU containing the policy that deploys some of our apps… this is a further benefit of Fog because every time a computer is re-imaged those apps are automagically deployed.
Thanks for this awesome project!!!
[url=“/_imported_xf_attachments/0/228_example.cmd.txt?:”]example.cmd.txt[/url]
-
I have suggested the following in a different thread to allow a single snapin to be sent to multiple computers:
Add the following lines to the groups section of tasks.advanced.include.php:
[PHP]<tr>
<td class=“c”><a href=“?node=tasks&type=group&direction=onesnap&noconfirm=<?php print $groupid; ?>”><img src=“./images/snap.png” /><p><?php print _(‘Deploy Single Snapin’); ?></p></a></td>
<td><p><?php print _(‘This option allows you to send one of the snapins to the group without imaging the computers. (Requires FOG Service to be installed on client)’); ?></p></td>
</tr>[/PHP] -
[quote=“timcough, post: 11851, member: 40”]I have suggested the following in a different thread to allow a single snapin to be sent to multiple computers:
Add the following lines to the groups section of tasks.advanced.include.php:
[PHP]<tr>
<td class=“c”><a href=“?node=tasks&type=group&direction=onesnap&noconfirm=<?php print $groupid; ?>”><img src=“./images/snap.png” /><p><?php print _(‘Deploy Single Snapin’); ?></p></a></td>
<td><p><?php print _(‘This option allows you to send one of the snapins to the group without imaging the computers. (Requires FOG Service to be installed on client)’); ?></p></td>
</tr>[/PHP][/quote]Thank you SO MUCH for this code. It has made snap-in deployment much easier. Has anyone figured out a way to make snap-in groups? It would be terrific to be able to put a number of snapins into a group for deployment to certain machines. ie. all 32 bit machines get a certain group of snapins, while 64 bit get a different group, etc.