Is FreeNAS viable for lan center sort of setting?

Status
Not open for further replies.

bkr009

Cadet
Joined
Aug 10, 2017
Messages
3
Weekly, I run a video game club at my school.
The school media lab allows us to use their pcs (25) and download games onto them.
With the limited funds we have, we purchased some steam games.
Each steam game is tied to an individual account. This way, one person playing one game, doesn't prevent another from playing a different one.

A few hours before our club meetings, we need to make sure all our games are up to date. We don't want anyone having to sit through valuable gaming time for updates. Logging into an account (we have like 18), waiting for a game to update, repeating that for 17 more accounts, and then doing it all over for 25 pcs total is INSANE! That's just too much work.

So our plan was to use steam family share to share all the games to 1 account and have that account login and update all the games. It would make life much easier! The problem is that steam family share only allows sharing to 10 specified pcs total (we had assumed any account authorized could use any number of pcs).

One suggestion I saw online was to use sandboxie to run multiple steam accounts at once (to download updates), but I'd like to see if freeNAS would work for us.

We have an extra pc that a member is willing to donate to the club. It has a 1tb HHD (no ssd) and 16gb DDR4 Ram and GTX 1060, so I'm thinking it should work.

What we're hoping is that we can update 1 pc and then use the network to access its storage to copy over all the files to the others.
Are we correct to assume this would work?
What would you guys suggest?
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
I'm not sure that FreeNAS adds much value in this scenario. In practice, the best thing you can do is fully update one computer and then sync the steamapps folder with the others (using, say, rsync or synctoy).
 

bkr009

Cadet
Joined
Aug 10, 2017
Messages
3
I'm not sure that FreeNAS adds much value in this scenario. In practice, the best thing you can do is fully update one computer and then sync the steamapps folder with the others (using, say, rsync or synctoy).

How would I go about doing this? What would I need to sync files over to another computer?
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
As I said, look into rsync and synctoy, among others.
 
Joined
Apr 9, 2015
Messages
1,258

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,554
You could always set up one computer to download the updates and configure the update directory as a read-only windows share on the computer that downloaded them. Then write a simple powershell script to robocopy the shared directory to the local system's update directory. Then add the script as a scheduled task on all the computers. No need to install and update any additional software.

A sample script stub for robocopy:
Code:
# Local update directory
$targetdir = "C:\steam_updates"

# Remote update directory
$sourcepath = "\\WindowsServer\Steam_updates"

# Log file
$LogFile= "C:\steam_updates_log\$(get-date -f yyyy-MM-dd).log"

robocopy "$sourcepath" "$targetdir" /MIR /COPY:DT /Z /W:5 /R:15 /FFT /XF ntuser.* *.dat *.db *.tmp /LOG:$LogFile

You can probably also use powershell to automate the process of actually installing updates, but I can't really comment further because I don't use steam / play games.

You could probably also write a powershell script on downloading computer to remote into all the client computers (powershell remoting) and kick off the robocopy command when new updates are available. Then you don't have to schedule any tasks on client computers.

TL;DR, there are a lot of ways to skin this cat.
 
Joined
Apr 9, 2015
Messages
1,258
The problem is that it doesn't automate the update across the network, it only makes it faster.

I agree it does not automate it but you wouldn't want something just running all the time to do this especially when a game may be running. The steam service can automatically download the updates and it also has the advantage of working for someone who brings their own box to the party and does not want to have some software installed on their machine.

It's a little more complex in some ways and simpler in others since it allows the steam client to handle things the way it wants to which will tend to speed things up since the client will want to verify files when changes are made outside of it's control.
 

bkr009

Cadet
Joined
Aug 10, 2017
Messages
3
You could always set up one computer to download the updates and configure the update directory as a read-only windows share on the computer that downloaded them. Then write a simple powershell script to robocopy the shared directory to the local system's update directory. Then add the script as a scheduled task on all the computers. No need to install and update any additional software.

A sample script stub for robocopy:
Code:
# Local update directory
$targetdir = "C:\steam_updates"

# Remote update directory
$sourcepath = "\\WindowsServer\Steam_updates"

# Log file
$LogFile= "C:\steam_updates_log\$(get-date -f yyyy-MM-dd).log"

robocopy "$sourcepath" "$targetdir" /MIR /COPY:DT /Z /W:5 /R:15 /FFT /XF ntuser.* *.dat *.db *.tmp /LOG:$LogFile

You can probably also use powershell to automate the process of actually installing updates, but I can't really comment further because I don't use steam / play games.

You could probably also write a powershell script on downloading computer to remote into all the client computers (powershell remoting) and kick off the robocopy command when new updates are available. Then you don't have to schedule any tasks on client computers.

TL;DR, there are a lot of ways to skin this cat.

I ended up using 1 pc as a download computer and then using sync Toy to sync up directories. It's definitely not perfect, but works well. I just have to make sure when transfers fail, that I manually transfer those files.
 
Status
Not open for further replies.
Top