Rush Logo Rush Windows Install Instructions
(C) Copyright 2008, 2023 Seriss Corporation. All rights reserved.
(C) Copyright 1995,2000 Greg Ercolano. All rights reserved.


  Windows Install  
                                                     

   Installing Rush  

  1. Be sure your network meets these prerequisite requirements.

    This is essential to ensure a stable network so Rush can operate reliably.
    It's important machine's hostnames and IP addresses don't change after casual reboots. IP addresses should be consistent through reboots, which a well configured static DNS (or /etc/hosts) configuration provides.

  2. Install 'Perl' or "Python" for Windows

    Rush's example submit scripts include both Perl and Python examples. So if you intend to use these scripts on Windows, be sure to install the language you want.

    The other operating systems (Linux, Mac OS X, IRIX) come with working versions of Perl and Python pre-installed, and don't need them installed separately.

    Rush has always come with Perl example submit scripts, but is increasing support of Python submit scripts.

    You can get both Perl and Python for Windows *free* from e.g. http://www.activestate.com/ or other sources.

  3. Unzip the rush distribution to C:\RUSH
  4. Edit the C:\RUSH\ETC\HOSTS file.

    Create an entry for all hosts you'll be using for Rush.
    Remove or comment out the example entries.
    The hosts file documentation describes the details of the format of this file..

  5. Install the license that was emailed to you as C:\RUSH\ETC\LICENSE.DAT
  6. Make sure the Windows Firewall is disabled.

    Microsoft now includes a firewall that is default 'on' in some versions of Windows which, if left enabled, will prevent Rush from being able to communicate with remote machines.

    Disable the radio button in the 'Internet Connection firewall', e.g.:

    Control Panel | Network | Lan | Properties | Advanced | Internet connection firewall

    Or, if you want the firewall enabled, make sure TCP and UDP port 696 is left open in the 'Settings' menu. If you want Rush to be able to send email on job completions, you'd better allow port 25 to be able to reach your mail server as well.

    Newer versions of the rush install.bat script may configure this already using DOS commands similar to:

    
         netsh advfirewall firewall delete rule name="Rushd"
         netsh advfirewall firewall add rule name="Rushd" dir=in action=allow program=C:\rush\bin\rushd.exe description="Rush render queue." enable=yes
             

  7. Run the following commands in DOS to install the daemon.

      cd \rush\etc\bin
      install

    Windows7: If you are using Windows Vista or up, you may find it necessary to first turn off the UAC, or the install script may fail with "access denied" errors even when running as Administrator.

    Note: You will *NOT* need to reboot after installation.

    If you see errors about 'unrecognized command or batch file', you probably have this problem.

  8. Configure the 'Rushd' service Username and Password.

    If you have Windows XP, you can just do:

    
         sc config rushd obj= DOMAIN\USER password= PASS
         net start rushd
    	 

    Notes on the above:

    • Replace DOMAIN\USER with the username you want the Rushd service to run as.
    • Replace PASS with the password for the account.
    • The domain name is required even if it's a Workgroup user.
      If it's a Workgroup user, use '.' in place of the domain name, e.g. ".\render"
      If it's a Domain user, use the actual domain name, e.g. "YOURDOMAIN\render"
    • Microsoft's 'SC' command is unusual; the '=' characters are each followed by a space.
    • Make sure the account has access to the file server with a non-blank, non-expiring password.

    If you don't have Windows XP, you'll need to do the following steps (a) through (d) manually:

    1. Bring up services:

        WIN/NT: Start -> Control Panel -> Services
        WIN/2K: Start -> Control Panel -> Adminsitrative Tools -> Services

    2. Double click the new 'Rushd' service.
    3. Set up the account the Rushd service will run as.

      As of version 102.42 and up, you can set up the Rush service to run as any user you want, including non-administrator users.

        DOMAIN Users
            If you have a Windows DOMAIN, it is recommended you create a      
            'rush' account in that domain:
        
                a) The user should have an actual (non-blank) password.
                b) The password is set to never expire.
                c) Configure the Rushd service to run as that user.
        

        WORKGROUP Users
            If you have a Windows WORKGROUP, it is recommended you create a   
            local 'rush' account on each machine which:
        
                a) Has a non-blank password.
                b) The password is set to never expire.
                c) Configure the Rushd service to run as that user (below).
        

      Click 'This Account', configure login (Under Win2K + XP you'll need to click the 'LogOn' tab)

      	      WORKGROUP                      WINDOWS DOMAIN USER
      	      ---------------------------    ---------------------------
      	      This Account: rush             This Account: DOMAIN\rush
      		  Password: <PASSWORD>           Password: <PASSWORD>
      		   Confirm: <PASSWORD>            Confirm: <PASSWORD>
      
      		     (Replace DOMAIN with your Windows domain name)
      		 
    4. Highlight 'Rushd' and hit 'Start'.

      This starts the daemon, and enables it to start on reboot.

  9. Verify things are working.

    Open a new DOS window and type:

      rush -ping

    If you get any errors, see troubleshooting.

  10. Install the submit scripts for the users.

    Use these instructions to install the submit scripts on your file server.

    Then login as a normal user, and verify you can make desktop shortcuts to the submit scripts, and can bring up the interfaces properly.

  11. Handle cross platform configuration issues.

    If you have a mixture of UNIX and WINDOWS machines, see the UNIX CAVEATS below.

  12. Security Issues

    If you're in an environment where security is an issue, then it is advised you enforce the desired read/write permissions on the c:\rush directory, specifically:

    • The following directories and all files in them must be writable by the user the Rushd service is running as:
        c:\rush\var c:\rush\etc

    • Only the following file needs to be writable by 'everyone':
        c:\rush\var\nextport

  13. Verify rush is running.

    You can optionally run this test submit script, just to verify jobs can be started, listed, and dumped:

      c:\rush\examples\test-submit

    To submit a real job, similar to what TDs use, you can run this test which includes complete instructions for someone who has never used rush before.

  14. That's it.

    Once you have things working on the first machine, then you can easily install Rush on the rest of the machines. See 'Network Install' below..

   Network Install  

    Once rush is setup and working on one machine, and the C:\RUSH\ETC\HOSTS file contains entries for all the machines on your net, it's then a simple matter of copying the C:\RUSH directory to all the other machines, then running the appropriate followup steps.

      NOTE: Be sure you've already installed ActiveState Perl before installing Rush on the network machines.

    You can automate the Rush install procedure in a number of ways, the following shows how to do it if you're running the 'remote shell' service on the remotes. This way, step #2 can be done with the Windows 'rsh' command.

    1. Copy the entire C:\RUSH directory from the license server to the remote machines using XCOPY.

      Example:

        xcopy /e /i C:\RUSH \\SOMEHOST\C$\RUSH

      ..where 'SOMEHOST' is the hostname of the remote machine to install on, and 'C$' is the 'share name' the remote machine's C: drive is shared as.

      You can do several machines at once with a command like:

        for %i in ( nt1 nt2 nt3 ) do xcopy /e /i C:\RUSH \\%i\C$\RUSH
    2. Run the install script on each machine.

        cd \rush\etc\bin
        install

      Windows7: If you are using Windows Vista or up, you may find it necessary to first turn off the UAC, or the install script may fail with "access denied" errors even when running as Administrator.

      Or you can automate this process using rsh, assuming you have Remote shell services configured on your Windows machines; rsh services are available from the net. One I've used is the Winsock RSHD available from www.denicomp.com.

      An example of automated executing of the install script would be:

        for %i in ( nt1 nt2 nt3 ) do rsh %i c:\rush\etc\bin\install.bat
    3. Make sure the copied directory permissions are correct.

      In versions of Rush 102.41 or older, run these 'Change ACL' commands on the newly copied directory, to ensure Rush can access its own directory:

        
        cacls c:\rush\var   /E /C /G everyone:F
        cacls c:\rush\var\* /E /C /G everyone:F
        cacls c:\rush\etc   /E /C /G everyone:F
        cacls c:\rush\etc\* /E /C /G everyone:F
        	 

      (In 102.42 and up, these commands are run automatically by the install.bat script.)

    4. Configure the username and password for the Rushd service.

      On WinXP you can use the 'SC' command:

      
           sc config rushd obj= DOMAIN\USER password= PASS
           net start rushd
      	 

      Notes on the above:

      • Replace DOMAIN\USER with the username you want the Rushd service to run as.
      • Replace PASS with the password for the account.
      • The domain name is required even if it's a Workgroup user.
        If it's a Workgroup user, use '.' in place of the domain name, e.g. ".\rush"
        If it's a Domain user, use the actual domain name, e.g. "YOURDOMAIN\rush"
      • Microsoft's 'SC' command is unusual; the '=' characters are each followed by a space.
      • Make sure the account has access to the file server with a non-blank, non-expiring password. As of this writing, the SC command does not support configuring password expiration, in which case do this through the GUI.

      If you don't have WinXP, you'll have to do the following steps 'a' and 'b' manually:

        a) Bring up 'Services':

          WIN/NT: Start -> Control Panel -> Services
          WIN/2K: Start -> Control Panel -> Adminsitrative Tools -> Services

        b) Double click on Rushd, and change the 'Log On' settings to:

        	 WORK GROUPS                    NTRUSH NETWORK USER
        	 ---------------------------    ---------------------------
        	 This Account: rush             This Account: DOMAIN\rush
        	     Password: <PASSWORD>           Password: <PASSWORD>
        	      Confirm: <PASSWORD>            Confirm: <PASSWORD>
        
        		(Replace DOMAIN with your Windows domain name)
        	 
    5. Start the service by clicking 'Start'.

      NOTE: You can also stop/start the rushd service from the DOS command line via:

        net stop rushd
        net start rushd
    6. Check the daemon logs for errors.

      Look in the c:/rush/var/rushd.log files, or use 'rush -dcatlog +any'

      Common errors (and their soultions) can be found in the Admin FAQ.

   Uninstalling Rush  

    1) Run the C:\RUSH\ETC\BIN\UNINSTALL.BAT script
    2) Remove the C:\RUSH directory

    Note: You will *NOT* need to reboot after an uninstall.

   Install Caveats  

ntrushuid/ntrushgid -- The UID/GID that windows-submitted jobs run as on Unix

    If Windows users will be submitting renders to run on Unix machines, it's critical that the ntrushuid and ntrushgid values are configured in the rush.conf file.

    Rush needs a uid and gid in order to run renders on Unix machines. Jobs submitted from Unix machines simply record the uid/gid of the submitting user, and uses that when rendering on Unix render nodes. But since Windows has no concept of uid/gid values, when a Windows machine submits a job, Rush has to be told what uid/gid to run these renders as on Unix machines, so it gets this info from the ntrushuid/ntrushgid settings in the rush.conf file.

    The default values for these are 100/100, which should be changed to the uid/gid of a valid user account on the Unix machines that you want Windows-submitted jobs to run as. If you don't do this, you may encounter this problem.

    Normally, you would create a valid user account called 'rush' or 'render', and set the ntrushuid/gid pair to that user's uid/gid. Be sure this account has compatible permissions with the permissions of other users.

Consistent Rush files across Unix and Windows

Consistent hostname lookups across Unix and Windows machines

    Both Unix and Windows machines should be able to resolve each other's hostnames, eg. you should be able to 'ping' Windows machines from Unix and vice versa.

Perl For Windows

    If you plan to use the example submit scripts that come with Rush (in C:\rush\examples), it is highly suggested you use ActiveState Perl, since it is the best implementation of perl for the Windows platform in general. Rush does not care which perl you use, but some perl implementations for Windows are inherently buggy, experience has shown.

    If you'll be writing your own custom submit scripts, then you do NOT need to install perl just to use Rush. The Rush core (rush,rushd,irush) has no dependence at all on perl, and is entirely language agnostic when it comes to the submit and render scripts. You can write Rush submit scripts in any langauge, including python, ruby, csh, perl, even DOS Batch. (Just be sure the language you choose is available on all the platforms you intend to use!)

   Network Install: Disk Cloning  
    If you are setting up a large farm, often you set up the software on one machine, then 'clone the disk' to all the other machines.

    With Rush, the idea is to ensure the c:\rush\var directory is empty on all the cloned disks, so that the cloned machines don't inherit stale files from the master (eg. old accounting logs, job checkpoint files, daemon logs with irrelevant error messages), as these files will negatively interfere with the cloned machines:

      Preparing A Master Disk To Be Cloned
        The following commands will prepare the cloning 'master disk'; shut down the rush daemon on this machine
        so that all files in the /usr/local/rush/var directory are closed, then clear out the 'var' directory
        completely by removing and re-creating it. Run these commands as Administrator:
        
            net stop rushd
            rmdir /s c:\rush\var
            mkdir c:\rush\var
            cacls c:\rush\var /E /C /G everyone:F
        	    

        The disk is now ready to be cloned.

        You can shut down the machine, but do not reboot it using this drive, or the daemon will start automatically,
        and the c:\rush\var directory will have to be cleared again with the above commands.

    That should be all you need to do.

    If you made a mistake, and forgot to clear the c:\rush\var directory, and cloned an entire farm accidentally, then run these cleanup commands with the farm running:

      Forgot To Do Preparation Steps? How To Clean Up
        If you didn't prepare the master disk for cloning, fix things by running these commands as Administrator:
        
        net stop rushd
        rmdir /s c:\rush\var
        mkdir c:\rush\var
        cacls c:\rush\var /E /C /G everyone:F
        c:\rush\etc\bin\install
        net start rushd
        	    

        This will clean up a farm that was accidentally cloned with left over files in the c:\rush\var directory.

   Installing www-rush  

    www-rush is the optional web GUI, which has pretty much been superceded
    by the newer GUI irush that comes with the rush installation.

    However, if you want to set up the web GUI which allows people to
    monitor and control render queue jobs remotely via their web browser,
    see the www-rush docs.
    
    'www-rush' is a single perl script found in /rush/cgi-bin/www-rush.pl,
    and should be installed on your internal network's web server.

    It has been tested to work with either Apache/unix, or IIS/NT.
    (IIS is Microsoft's web server that comes with NT Server)

    www-rush will work with IIS, provided:

        o You have properly installed IIS, and enabled 'cgi-bin' scripts.

        o You have installed ActiveState perl (www.activestate.com).
          On install, be sure to enable the check flags for IIS.

        o You have installed rush on the server, and have included 
          the server's hostname in the /rush/etc/hosts file.

        o You view www-rush with Firefox. (Explorer can have problems)

    Then it's just a matter of putting the www-rush.pl script in IIS's 
    /inetpub/scripts/ directory, tweaking variables at the top if need be.

    To install www-rush on an Apache web server for Windows, just put www-rush
    into the cgi-bin directory like any other cgi-bin script. You may
    need to modify the first line in www-rush.pl (the "#!..." line)
    to point to your install of Perl. Example:

        #!C:/Perl64/bin/perl.exe

   Legacy Docs  

    Some old legacy docs are here which show how to manually configure 
    the service. These docs are no longer recommended.

   Trouble Shooting  

    Check the Admin FAQ for common problems.

    If you have installed the software, and started the daemon, you should
    be able to open a new DOS window, and be able to run 'rush -ping' 
    to see the following (or similar) output:

        C:\rush>rush -ping
        myhost: RUSHD 102.20b PID=166     Boot=03/13/01,02:08:52  Online, 0 jobs, 0 procs

    Some common errors:

        o "The name specified is not recognized as an
          internal or external command, operable program or batch file."

          Make sure you ran the install.bat script first. It modifies your path
          to include C:\RUSH\BIN. After you run this script, CLOSE the current dos window,
	  and open a new one, so that "rush" will now be in your path.

        o "Connection refused"

          This means the daemon did not start. Look in C:\RUSH\VAR\RUSHD.LOG for
          error messages, and send them to:

              Greg Ercolano
              

    Possible error messages in the C:\RUSH\VAR\RUSHD.LOG

        o "HOST_GetLocalHostname(): NO LOCAL HOST --- ABORT ---"

          This means the local hostname for the machine is not in the
          C:\RUSH\ETC\HOSTS file. If the local host is named farm37, then
          make sure farm37 is an entry in that file.

        o "bind(): address already in use"

          This means there are either two daemons running, or you need
          to wait a few minutes if you just told the daemon to restart.

    Make sure you configured the Administrator user and password for
    the service in the Control Panel->Services->Rushd screen.

   Problems With Houdini  

    It seems for a while now, houdini's setup has some kind of bug
    that breaks the PATH for DOS shells. After installing houdini,
    one finds commands like 'ping' and 'nslookup' no longer work,
    and are 'unknown commands'.

    Houdini's setup program does something that breaks the PATH,
    such that important things like C:/WINNT/SYSTEM32 are no longer
    in the path.

    To fix the problem in WINNT:
    
        1) Go into Control Panel -> System -> Environment

        2) Add C:/WINNT/SYSTEM32 to the "System Variables"
           PATH. Be sure to include the proper semicolons to separte
           this new addition from the other paths. 

        3) Hit APPLY, then OK.

        4) Now open a NEW DOS WINDOW, and try invoking 'ping'.
           If done correctly, 'ping' should print out a help report.
           If done incorrectly, 'ping' will still give a command not
           found error.

    To fix the problem in Windows 2000:

        Go into Control Panel -> System -> Advanced -> Environment Variables
        and follow steps 2 through 4 above.