This document describes how to deploy BOINC across a network of computers.
Configuration filesIf 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.






Who's Online
Login form
Statistics
Latest Article Comments




Poll 1
Einstein@Home new search for binary radio puls...
Dear Alfred, Sorry but I'm rather conviced this project has nothing to do with
dark matter. I doubt that our int...
Website feedback and comments
Love the site, and would love to discuss projects with anyone interested. Feel
free to contact me directly... ph...
Dr. David Anderson describes SETI@home & BOINC
Nice short video about SETI Boinc. SETI has many wonders to share with the world
aside the news from the sky, wi...
MilkyWay@Home Progress in plotting the stars
Thanks for report. Nice to know a bit about the project. I thought it wasn't
too difficult to understand. If ...
Einstein@Home new search for binary radio puls...
General Relativity is more than a Century old. What formula are you using for
Dark Matter ? ... alfredschrader...