How is everyone handling IGEL OS firmware updates?

How is everyone handling firmware updates? Our current plan is to use a profile that checks for firmware updates on boot, and has the FTP info filled out pointing to the firmware we want deployed. We were going to initiate this by using a scheduled reboot job. I have to think there are better options, though. I swear I saw something on IGEL Experts about a config that checked for active Citrix connections before initiating a firmware update, but now I can’t find it.

Learn more, read the entire thread inside the IGEL Community o Slack

I guess you are sepaking about this article?

Yep, that’s the one – thanks! The second “Reboot” options looks like the route I’d want to go. How would you handle this, though? Is this something that you would need to attach to a View (old firmware) so that once it was upgraded, the profile no longer applied? I’m trying to make this as hands off as possible.

@member started a discussion: which brought a few ideas. Is it what you were looking for?

Sounds like what I was considering, using Views to assign profiles, etc. The only issue, IIRC from testing, is that once the device drops from the view, doesn’t the object/profile attached to it remain?

Unless of course you detach that profile in the final View.

it shouldn‘t anymore but would have to double check in my lab tbh😅

Anymore as in a newer version of UMS? We went back to 6.03.130 because of numerous issues in 6.04.x.

Cannot check atm. but will try later on.

I’ll likely ask this in the main channel, but I’m at the point where keeping it simple seems like the best approach. Updating the firmware on boot is working very well in my testing, but I have one major concern – I can’t seem to randomize the reboot time of the devices. I tried using a Job to reboot the devices, but it looks like all I can do is set a specific time.

I tried using that reboot script from IGELExperts’ github page, but putting it into Final Desktop Command is actually doing nothing at all (I did correct the day/time in testing). If I can find a way to randomize the reboots, I think that will get me to where I need to be.

Hi Nick, you could create an Idle command profile:

There, if the device goes in idle, execute user_reboot

Assign this profile to a view that lists all devices that aren‘t on the wanted firmware by using a View and assign Profile to results of a view:

Hope that makes sense to you.

I don’t think that’s necessarily what I’m looking for. It sounds similar to the IGEL Experts script, but right now, I really just want to figure out how to randomly reboot devices via script – which is tough since I know zero Bash.

@member: A bit of a sanity check for me. This is based on the Reboot script I’ve been mentioning. I took the approach of generating a random number to be used as a delay before the script actually kicks off. Do you see any issues with going this route? At the end of the day, I’m trying to avoid having every single device reboot at the same time. I figure if I can randomly delay them up to 60 minutes, it should help.

systemd-run –unit=”update-script” –on-calendar=”-*- 00:00:00″ /wfs/updatescript

cat <<“EOF” > /wfs/updatescript


RETRIES=9 #Here you can change how many update retries the script will do.

WAIT=10s #Here you can change how long the script will wait after every retry. Please add the suffix ‘s’ for seconds, ‘m’ for minutes, ‘h’ for hours or ‘d’ for days.

#Logging action


#output to systemlog with ID amd tag

LOGGER=”logger -it ${ACTION}”

#Randomize the start of the script



let “DELAY %= $RANGE”


#Starting update script

echo “Starting” | $LOGGER

#start retry loop

until [ $RETRIES -lt 0 ]; do

sleep $DELAY

#check if session is active

if ! pgrep -x “wfica” > /dev/null


echo “No active session detected, starting firmware update” | $LOGGER

#get latest settings from UMS




echo “Active session detected, waiting” $WAIT “Retries left =” $RETRIES | $LOGGER

let RETRIES-=1

sleep $WAIT




chmod +x /wfs/updatescript“`

Looks good to me! I tried the following which works either:

$ (( RANDOM%2 == 0 )) && C1 || C2

This will generate a random number, either 0 or 1. If it’s a 0, then C1 runs, otherwise C2 runs if it isn’t.

Continue reading and comment on the thread ‘How is everyone handling IGEL OS firmware updates? ‘.  Not a member? Join Here!

Learn more, search the IGEL Knowledge Base

Ask a question or comment on the above message thread?

Join or log in to the IGEL Community to ask us anything and meet other IGEL customers, partners, and EUC enthusiasts.

Submit a question, or Join Today!

Popular Message Threads

Categories & Tags: