United BOINC

 
  • Increase font size
  • Default font size
  • Decrease font size
Home BOINC information Deploying BOINC on networks

Deploying BOINC on networks

E-mail Print PDF
AddThis Social Bookmark Button

This document describes how to deploy BOINC across a network of computers.

Configuration files

If you're deploying BOINC on lots of hosts you'll want configure it to be attached to a particular project or account manager. This is done using one or more configuration files:

acct_mgr_url.xml
Contains the name and URL of an account manager. Format description.
 acct_mgr_login.xml 
Contains credentials (name/password) for the account manager identified in acct_mgr_url.xml. Format description
project_init.xml
Specifies a project and optionally an account. The format is 
<project_init>      
<url>PROJECT_URL</url>
<name>PROJECT_NAME</name>
[ <account_key>KEY</account_key> ]
</project_init>

Note: you should use the weak account keys to protect access to the account.

Windows

This document will describe how to install BOINC on networks using the Microsoft MSI technology framework. If you are already familiar with using MSI you can skip ahead to Appendix A which contains the relevant parameters used to customize BOINC installs. Appendix B contains examples of launching the installer from the command line and customizing the installer properties.

There are two forms of customization that you can do during a mass deployment:

  • Including BOINC customization files
  • Changing installer properties

BOINC customization files can automatically cause the client to attach to one or more desired projects, attach to an account manager, or attach to one project by default and allow the user to create an account. For the purposes of this document we will demonstrate attaching to one or more projects using the account_*.xml files. To create the various account_*.xml files, first install the BOINC client locally and attach to each project you want all the rest of the computers to attach to by default. The account_*.xml files can be modified within notepad, so you can replace the authenticator with the weak form of the authenticator to keep the users from making changes to the account after installation.

BOINC supports the administrative install functionality which allows you to unpack the installer package and customize it based on your preferences.

boinc_6.2.14_windows_intelx86.exe /a 

You’ll want to choose a path that all computers you are going to deploy to have access too. An example would be:

\\server\appdist\BOINC6214 

From here on out we’ll refer to this path as BOINCROOT.

You will want to copy the account_*.xml file for the projects you would like the client software to attach to when started to ‘BOINCROOT\program files\BOINC’.

These are the steps to customize the BOINC client install:

  • Make a backup copy of the original BOINC.msi file.
  • Install Orca.msi. (Note: This file comes with the Microsoft Platform SDK.)
  • Run Orca from the Start menu.
  • Open the backup copy from File->Open... with the Orca tool.
  • Click on the File table.
  • For each account_*.xml you’ll want to make a copy of the boinc.exe row and replace the copied boinc.exe with the name of the account_*.xml file.
  • Click on the Properties table.
  • Modify the INSTALLDIR and DATADIR properties to point to the program directory and data directory.
  • Save the new .msi file.
  • Run the executable MsiTran.exe. (It comes with the Microsoft Platform SDK.)
MsiTran.exe -g "%BOINCROOT%\originalboinc.msi" 
"%BOINCROOT%\backupboinc.msi" "%BOINCROOT%\boinctransform.mst"

Now you can apply the transform on the command line as follow:

msiexec /i "%BOINCROOT%\boinc.msi" TRANSFORMS="%BOINCROOT%\boinctransform.mst"  

Or it can be applied through the modification tab in the Group Policy using Active Directory.

Appendix A

Version 6.x Properties:

Property Description
INSTALLDIR The directory to install BOINC too. Example: 'C:\Program Files\BOINC'
DATADIR The directory where the data files should be stored. Default: C:\Documents and Settings\All Users\Application Data\BOINC
ENABLEPROTECTEDAPPLICATIONEXECUTION Whether to enable application sandboxing for improved security. This option has to be enabled for mass deployments. Default: 1
ENABLESCREENSAVER Whether to enable the screensaver by default. This option has no effect when enabled for mass deployments. Default: 1
ENABLEUSEBYALLUSERS Whether all the users on the system can manage the BOINC client. Default: 1
BOINC_ADMINS_GROUPNAME The group name to use for managing the BOINC client. Can be a domain group. Default: .\boinc_admins
BOINC_PROJECTS_GROUPNAME The group name to use for using the BOINC client. Can be a domain group. Default: .\boinc_projects
BOINC_USERS_GROUPNAME The group name to use for the BOINC projects to use. Can be a domain group. Default: .\boinc_users
BOINC_MASTER_USERNAME The username to use when executing the client software. Can be a domain account. Default: .\boinc_master
BOINC_MASTER_PASSWORD The password for the BOINC Master account. Default: Randomly generated strong password
BOINC_PROJECT_USERNAME The username to use when executing the project software. Can be a domain account. Default: .\boinc_project
BOINC_PROJECT_PASSWORD The password for the BOINC Project account. Default: Randomly generated strong password

Version 5 Properties:

Install Type Property Description
Single-user INSTALLDIR The location to install BOINC to. Example: 'C:\BOINC'
 SETUPTYPE The type of installation to perform. Valid Values: 'Single'.
 ALLUSERS Whether the shortcuts appear for just one user or all users. Valid Values: '0' for Single.
 ENABLESCREENSAVER Whether to automatically enable the screensaver. Valid Values: '0' for disabled, '1' for enabled.
 ENABLELAUNCHATLOGON Whether to automatically start BOINC when the installing user or all users sign on to the computer. Valid Values: '0' for disabled, '1' for enabled.
 LAUNCHPROGRAM Whether to automatically launch BOINC Manager after setup completes. Valid Values: '0' for disabled, '1' for enabled.
Shared install INSTALLDIR The location to install BOINC too. Example: 'C:\BOINC'
 SETUPTYPE The type of installation to perform. Valid Values: 'Shared'.
 ALLUSERS Whether the shortcuts appear for just one user or all users. Valid Values: '1' for shared.
 ENABLESCREENSAVER Whether to automatically enable the screensaver. Valid Values: '0' for disabled, '1' for enabled.
 ENABLELAUNCHATLOGON Whether to automatically start BOINC when the installing user or all users sign on to the computer. Valid Values: '0' for disabled, '1' for enabled.
 LAUNCHPROGRAM Whether to automatically launch BOINC Manager after setup completes. Valid Values: '0' for disabled, '1' for enabled.
Service Install INSTALLDIR The location to install BOINC too. Example: 'C:\BOINC'
 SETUPTYPE The type of installation to perform. Valid Values: 'Service'.
 ALLUSERS Whether the shortcuts appear for just one user or all users. Valid Values: '1' for service.
 ENABLESCREENSAVER Whether to automatically enable the screensaver. Valid Values: '0' for disabled, '1' for enabled.
 ENABLELAUNCHATLOGON Whether to automatically start BOINC when the installing user or all users sign on to the computer. Valid Values: '0' for disabled, '1' for enabled.
 LAUNCHPROGRAM Whether to automatically launch BOINC Manager after setup completes. Valid Values: '0' for disabled, '1' for enabled.
 SERVICE_DOMAINUSERNAME Which user account should the service use. Valid Values: '"`%ComputerName%\%UserName%`"' `%ComputerName%` can be either the local computer name or a domain name. `%UserName%` should be the username of the user to use.
 SERVICE_PASSWORD The password for the account described in the SERVICE_DOMAINUSERNAME property. Valid Values: '"`%Password%`"' `%Password%` the password for the SERVICE_DOMAINUSERNAME user account.
 SERVICE_GRANTEXECUTIONRIGHT Grant the above user account the 'Logon as a Service' user right. Valid Values: '0' for disabled, '1' for enabled.

Appendix B

You can control certain aspects on the installation process by launching the BOINC installer with certain command line options. For instance to generate a log file during installation you can execute:

boinc_6.2.14_windows_intelx86.exe /v"/l*v c:\boincsetup.log" 

To do an unattended install you can execute:

boinc_6.2.14_windows_intelx86.exe /v"/qn 
INSTALLDIR=”C:\Program Files\BOINC"
DATADIR="C:\Documents and Settings\All Users\Application Data\BOINC""

An example for a v5 single-user install would be:

boinc_5.4.45_windows_intelx86.exe /v"/qn 
SETUPTYPE=Single ALLUSERS=0 ENABLESCREENSAVER=0
ENABLELAUNCHATLOGON=1 LAUNCHPROGRAM=1"

An example for a v5 shared install would be:

boinc_5.4.45_windows_intelx86.exe /v"/qn 
SETUPTYPE=Shared ALLUSERS=1 ENABLESCREENSAVER=0
ENABLELAUNCHATLOGON=1 LAUNCHPROGRAM=1"

An example for a v5 service install would be:

boinc_5.4.45_windows_intelx86.exe /v"/qn 
SETUPTYPE=Service ALLUSERS=0 ENABLESCREENSAVER=0
ENABLELAUNCHATLOGON=1
LAUNCHPROGRAM=1 SERVICE_DOMAINUSERNAME="%ComputerName%\%UserName%"
SERVICE_PASSWORD="%Password%" SERVICE_GRANTEXECUTIONRIGHT=1"

Further changes can be made by changing the various properties found in Appendix A.

Third party installer support can be found here: The Lazy Slug's Guide to easy deployment and maintenance of BOINC on your network.

Macintosh

Contact Charlie Fenton for help.

After speaking with Charlie, we have come up with a strategy to deploy Boinc across many computers and also a similar strategy to do so using Condor to control Boinc execution. Information on Condor can be found here.

These deployments were done via Apple Remote Desktop. If you are simply adding Boinc to an image to be deployed, this can all be done on a single master image machine. Command-line instructions are written assuming they will be sent over Apple Remote Desktop, but should work with your management tool of choice.

General Deployment

Install Boinc Manager and attach to World Community Grid project (or any project you support) and do any configuration that you want

Quit Boinc Manager after ensuring your account credentials are accepted and a job starts

Move /Applications/Boinc.app/Contents/Resources/boinc to /Library/Application Support/BOINC Data

Download Mac_SA_Secure.sh from Tools_for_Mac_OS_X

Move Mac_SA_Secure.sh to /Library/Application Support/BOINC Data and run the script

Move client_state.xml out of the BOINC Data folder (to desktop or similar) to prevent transferring the same tasks to the remote computers

Copy /Library/Application Support/BOINC Data folder to all target computers

If your copy did not preserve permissions, run Mac_SA_Secure.sh to ensure permissions are correct.

Decide how to launch Boinc using Tools_for_Mac_OS_X

When you are done deploying to the network, restore your client_state.xml back into the BOINC Data folder

Deployment for Condor Backfill

Install Boinc Manager and attach to World Community Grid project (or any project you support)

Quit Boinc Manager after ensuring your account credentials are accepted and a job starts

Move /Applications/Boinc.app/Contents/Resources/boinc to /Library/Application Support/BOINC Data

Download Mac_SA_Insecure.sh from Tools_for_Mac_OS_X

sudo mv /Library/Application Support/BOINC Data /opt/BOINC 

Move Mac_SA_Insecure.sh to /opt/BOINC

cd /opt/BOINC 
chmod 755 Mac_SA_Insecure.sh
sudo ./Mac_SA_Insecure.sh condor condor

Move client_state.xml out of the BOINC Data folder (to desktop or similar) to prevent transferring the same tasks to the remote computers

Copy /opt/BOINC folder to all target computers

Run Mac_SA_Insecure.sh on all target computers to ensure permissions

sudo chmod 755 /opt/BOINC/Mac_SA_Insecure.sh 
cd /opt/BOINC
sudo ./Mac_SA_Insecure.sh condor wheel

For this, I customized the Mac_SA_Insecure script to be non-interactive

Add these lines to condor_config.local (you may want to change these values to fit your specific environment and may want to tweak the HighLoad variable as well, depending on performance)

sudo echo "ENABLE_BACKFILL = TRUE" >> /opt/condor/etc/condor_config.local 
sudo echo "BACKFILL_SYSTEM = BOINC" >> /opt/condor/etc/condor_config.local
sudo echo "START_BACKFILL = \$(StateTimer) > (3 * \$(MINUTE))" >> /opt/condor/etc/condor_config.local
sudo echo "EVICT_BACKFILL = \$(MachineBusy)" >> /opt/condor/etc/condor_config.local
sudo echo "BOINC_Executable = /opt/BOINC/boinc" >> /opt/condor/etc/condor_config.local
sudo echo "BOINC_InitialDir = /opt/BOINC/" >> /opt/condor/etc/condor_config.local
sudo echo "BOINC_Universe = vanilla" >> /opt/condor/etc/condor_config.local
sudo echo "BOINC_Owner = condor" >> /opt/condor/etc/condor_config.local
sudo echo "BOINC_Arguments = -insecure" >> /opt/condor/etc/condor_config.local
sudo echo "BOINC_Output = /opt/BOINC/boinc.out" >> /opt/condor/etc/condor_config.local
sudo echo "BOINC_Error = /opt/BOINC/boinc.err" >> /opt/condor/etc/condor_config.local

Reconfigure Condor. Some machines required a reboot before backfilling.

sudo /opt/condor/sbin/condor_reconfig 

When you are done deploying to the network, restore your client_state.xml back into the BOINC Data folder

Unix

Modify the Makefile that generates self-extracting archives. Should be easy to do yourself.

 

Check out these cool BOINC videos!

climateprediction.net - Results Programme Documentaryclimateprediction.net - Results Programme Documentary

 

Einstein@home - General relativity and gravitational wavesEinstein@home - General relativity and gravitational waves

 

World Community Grid and IBM Tackle Rice CrisisWorld Community Grid & IBM Tackle Rice Crisis

 

Poll Poll 1

Is BOINC manager "User friendly"?
 

Poll Poll 2

How many BOINC projects are you running?
 

Poll Poll 3

Have you ever used an Account Manager?