WANdisco Subversion MultiSite 4.2

only search WANdisco
Navigation: wandisco.com | Index | Deployment | Upgrade | User Guide | Technical | API | Glossary | Mobile | Release Notes
Deployment Guide

1. Introduction
  1.2 Feedback
  1.3 Key
  1.4 Release Notes

2. Deployment guide
  2.1 Skills requirement
  2.2 Deployment overview
  2.3 System requirement
  2.3.1 Hardware Recommendations
  2.3.2 Setup requirements
  2.3.3 Creating copies of your repository
  2.3.4 Replicating multiple repositories
  2.3.4.1 SVN Location (SVNPath) Directive
  2.3.4.2 SVNParentPath Directive
  2.3.5 Using Authz for authorization
  2.3.6 MultiSite and Subversion password files
  2.3.7 Quorum recommendations
  2.3.8 Firewalls and Anti-virus software
  2.3.9 Configuring Apache
  2.3.9.1 Changing Subversion Listen port (Unix)
  2.3.9.2 Sharing Apache, and Using HTTPS
  2.3.9.3 Using HTTP with Apache
  2.3.9.4 Apache and SVNKit
  2.3.9.5 SVNKit and Connection Pooling
  2.3.9.6 Optimize Your Configuration
  2.3.9.7 Apache Logging

  2.4 Deployment Checklist
    System setup
    Networking settings
    Apache setup
    MultiSite setup
    Access Control

3. Installation
  3.1 Installation overview
  3.2 Before you start
  3.3 Starting the installation
4. Complete setup through a browser
5. Login to the Admin Console for the first time
6. Copying the installation files manually
7. Post Installation Configuration
  7.1 Using pre-commit hooks?


User Guide

1. Replicator Management
  1.1 Adding a node
  1.2 Removing a node
  1.3 Creating a new replication group
  1.4 Deleting a replication group
  1.5 Adding a repository
  1.6 Removing a repository
  1.7 Moving a repository to another replication group
  1.8 Setting MultiSite to start up on system boot
  1.9 Changing the Subversion replicated client port
  1.10 Shutting down MultiSite

2. Setting up the replicator for production
  2.1 Setting up MultiSite as a Windows service
  2.2 Toggling the quorum check
  2.3 About Watchdog mode
  2.4 Using SSL
  2.5 Setting the server key
    2.6.1 SSL Troubleshooting
  2.7 Using SSL for both LDAP and emails

3. Changing prefs.xml settings
  3.1.1 Changing prefs.xml settings
  3.1.2 Changing prefs.xml settings
  3.2 Performing a Synchronized Stop
  3.3 Resuming from a Synchronized Stop
  3.4 Verifying that the replicator is working
  3.5 Changing the Distinguished Node
    3.5.1 What distinguishes the Distinguished node?
    3.5.2 Manually changing the distinguished node
    3.5.3 Scheduled rotation of the distinguished node
  3.6 Using Subversion hooks for sending e-mails
  3.7 Changing the admin console username or password
    3.7.1 Changing the admin password
  3.8 Setting Up Hooks
  3.8.1 Pre-Replication Hook
  3.8.2 Repository-Specific Hooks
  3.9 Selective Replication

4. Updating Apache or Subversion in WANdisco Deployment

5. Upgrading Subversion MultiSite
  5.1 Upgrade from SVN MultiSite 4.0
  5.2 Upgrade from SVN MultiSite 4.1
  5.3 Upgrade from SVN MultiSite 4.2

6. Authz Notifier Utility
  6.1 Usage
  6.2 Disabling LDAP for Admin Authentication
  6.3 LDAP Admin Authentication URL syntax
  6.4 LDAP timeout

7. Access Control
  7.1 Access Control Model
  7.2 Creating User
  7.3 List Users
  7.4 Importing Users
  7.5 Creating Team
  7.6 Creating Rules
  7.7 Creating Subteam
  7.8 Testing User Access
  7.9 Exporting/Importing settings
  7.10 Common Access Control Scenarios

8. Batch Access Control Updates
  8.1 Introduction
  8.2 Pending View mode v.s. Current View
  8.3 How to enable Batch Access Control Updates
  8.4 How to manage Batch Access Control Updates
  8.5 View Pending
  8.6 Enable Current View


Troubleshooting

1. Finding the Last Committed Transaction
2. Repair Repository
2.1 Repository Repair Overview
2.2 Repository Repair Procedure
2.3 Manual overwrite of the corrupted repository
2.4 Manual rsync corrupted repository
2.5 Disabling Access to Subversions
  2.5.1 Disabling Subversion access (all nodes)
2.6 Emergency Reconfiguration of Quorum
2.7 Using rsync to repair a repository
2.8 Offline mode

3. Talkback script
4. Connection Request Timeout Messages
5. VPN, NAT, Firewall Timeouts
6. A node is in read-only mode
7. Updating Apache or Subversion
8. Missing License Key file
  8.1 Missing License Key file


Admin Console Guide

1. Admin console key
2. Login
3. Security
  3.1 Create Team
  3.2 List Teams
  3.3 Create Users
  3.4 Import Users
  3.5 Rule Lookup
  3.6 Search
  3.7 Create LDAP Authority
  3.8 LDAP Settings
  3.9 Pending Changes

4. System
  4.1 Log Viewer
   4.1.1 Limiting Log lines
  4.2 Disk Monitor
  4.3 License Info
  4.4 System Settings
  4.5 SSL Settings
  4.6 Garbage Collection
  4.7 Transaction Status
  4.8 Log Level
  4.9 Free Memory
  4.10 Dashboard
  4.11 Export Settings
  4.12 Import Settings

5. Proxy
  5.1 Proxy Status
  5.2 Repository Status
  5.3 Log Viewer
  5.4 SVN Settings
  5.5 Email Settings
  5.6 Change Distinguished Node
  5.7 Repair Repository
  5.8 Stop Proxy
  5.9 Shut Down Node
  5.10 Nodes
  5.11 Replication Group
  5.12 Replication Group History


Technical Guide

1. Introduction
2. MultiSite Overview
3. WANdisco MultiSite Concepts
4. How Replication Works
5. Replication Example
6. WANdisco is Listening
7. Synchronized Stop of All Sites
8. Handling Node and Network Failure
  8.1 Node Failure
  8.2 Per-repository scheduling
  8.3 Network Failure
9. LDAP Authentication
  9.1 Requirements
  9.2 LDAP data flow


API Guide

10. RESTful API
10.1 Synchronisation
  10.1.1 Sync Stop
  10.1.2 Sync Resume
  10.1.3 Sync Status
  10.1.4 Toggle LDAP login authentication
  10.1.5 Toggle LDAP admin auth
  10.1.6 Get User
  10.1.7 Update User
  10.1.8 Delete User
  10.1.9 Create User
  10.1.10 Update User Password
  10.1.11 Update User Password (Unencrypted)
  10.1.12 Update User Permission
  10.1.13 Enable User
  10.1.14 Disable User
  10.1.15 Generic File Replication

  10.1.16 Auto skip bypassable transactions
  10.1.17 Change the Distinguished Node

10.2 LDAP
  10.2.1 Get All LDAP Authorities
  10.2.2 Get LDAP Authority
  10.2.3 Update LDAP Authority
  10.2.4 Delete LDAP Authority
  10.2.5 Add LDAP Authority

10.3 Repository
  10.3.1 Get Repository
  10.3.2 Add Repository
  10.3.3 Update Repository
  10.3.4 Delete Repository
  10.3.5 Update repository hook

10.4 Team
  10.4.1 Get All Teams
  10.4.2 Update Team
  10.4.3 Delete Team
  10.4.4 Get Team
  10.4.5 Create Team
  10.4.6 Set LDAP Team
  10.4.7 Disable Team
  10.4.8 Add Resource to Team
  10.4.9 Remove Resource From Team
  10.4.10 Add User To Team
  10.4.11 Remove user From Team
  10.4.12 Promote User To Team Leader
  10.4.13 Demote Team Leader
  10.4.14 Grant Admin Permission
  10.4.15 Remove Admin Permission
  10.4.16 Get All Team Rules
  10.4.17 Get All Team rules for Team
  10.4.18 Get Team Rule
  10.4.19 Delete Team Rule
  10.4.20 Update Team Rule
  10.4.21 Create Team rules


Upgrading from SVN MultiSite 4.1 to version 4.2

Follow this procedure if you're currently using SVN MultiSite 4.1. If you are using a different version of SVN MultiSite you should review this instructions in the chapter 5. Upgrading Subversion MultiSite.

Procedure Overview

This upgrade procedure involves the following steps:

  • 1. Stop Replication
  • 2. Export Data
  • 3. Reset
  • 4. Rename MultiSite Directory
  • 5. Install Latest version
  • 6. Run the conversion script
  • 7. Import the backup file
  • 8. Re-deploy replication groups, setup LDAP

Required Time: the upgrade process may take as little as 20-minutes per server. However, on larger deployments the time required may be longer. It may be worth running through the procedure to see if any of your steps will require extra time.

During most of this process Subversion will be in a read-only state so either complete the upgrade out of development hours and ensure that your developers are aware of the brief Subversion outage.

tip Installing in order to perform an upgrade using SVN MultiSite's backup data?
Don't enable Authz during the installation - wait until the import is completed, then enable Authz from the Subversion Settings screen.
Enabling Authz during the installation can greatly impact the performance of the backup file import.

1. Stop Replication

  • If any nodes are unavailable, the Synchronized Stop will suspend until all nodes are available.
  • When the Synchronized Stop has completed, Subversion will be read-only.

1.1 Open the Admin Console, on the left-hand menu click Stop Proxy.

nothing goes to plan

1.2 Check that radio button for "Synchronized Stop of all proxies", then click Continue. MultiSite will now wait for any remaining transactions to complete, after which all nodes will stop listening, stopping replication.

2. Export Data

2.1 Open the Admin Console and click on the System tab.

2.2 Click on Export Settings. Note the filename and location, then click on Backup Settings. Settings and user data will be exported to the resulting backup directory, the file that you will need to re-import is called access-control.xml

Using LDAP?
Near the end of the upgrade process you will need to reapply the settings for any LDAP authorities that you are using. You may benefit from making a record of these settings now.

IMPORTANT: When you add the the LDAP auths into 4.2. the Order field for each LDAP auth needs to be exactly the same as the corresponding ldap auths in the MS installation you are upgrading from.

3. Reset

3.1 Perform a reset on all nodes. A reset purges all temporary data which will ensure that all nodes will be in the same state after the upgrade.

Open a terminal and navigate to the <INSTALL>/svn-replicator/bin/ directory. Run reset, like so:

[root@localhost bin]# perl reset

      ===================== WARNING ========================
      This is an irreversible operation. It will delete the
      transaction logs for this replicator. You *must* run
      the reset command on all the replicators to ensure
      there is no lingering state.

Are you sure you want to reset the replicator transaction log - Y|N ? [N] : Y
Shutdown in progress .......May 20, 2013 11:01:17 AM org.nirala.trace.Logger info
INFO: Invoked from WANdisco installation at: /home/wandisco/svn-replicator
May 20, 2013 11:01:17 AM org.nirala.trace.Logger info
INFO: forceSyncPrevayler set to : false
Sending kill signal to 20851...
Done
Shutdown complete

Reset done.

Repeat this for all nodes.

4. Rename MultiSite Directory

4.1 Rename the svn-replicator directory to something like backup-svn-replicator etc. e.g.

mv svn-replicator  backup-svn-replicator

This approach lets you quickly restore your working version should anything go wrong with the update - Just restore the name of your backed-up installation and restart.

alert Back up the following configuration / environment files
While creating a backup of the SVN MultiSite installation directory ensures that we can quickly revert to the previous setup, there are some additional files that you should back up in case you need to revert.
  • SVN password file
  • Authz file
  • Ensure that you have your WANdisco license.key file ready
  • Any other system or Subversion files that may be altered or corrupted by a failed upgrade procedure
  • Pay attention to necessary file and directory permissions, these should match across all nodes and set in a way that's appropriate to your system's security and operating requirements

5. Install Latest version

5.1 Decompress the new Subversion MultiSite installation file.

5.3 Copy your license key file from your backup to the new svn-replicator/config directory.

5.4 Go to /svn-replicator/bin/ and start the installation with the following command:

perl setup

Respond to the Yes / No prompt about accepting the default Java heap settings.

[root@localhost bin]# perl setup

=======================================================================
WANdisco java processes will start with the following memory settings:

         -Xms128m -Xmx2048m -ea -server -Djava.net.preferIPv4Stack=true

Change the environment variable WD_JVMARGS if you wish to start java differently
WARNING: if the host does not meet these specified memory requirements, you will
encounter problems starting the WANdisco processes.
Continue,  Y or N ? [Y] : y    

5.5 The setup will now start up the browser-based installer. Open your browser and go to address shown at the end of the setup - that's your server's IP and specify the admin console port (6444 by default).

Change the environment variable WD_JVMARGS if you wish to start java differently
WARNING: if the host does not meet these specified memory requirements, you will
encounter problems starting the WANdisco processes.
Continue,  Y or N ? [Y] : y
May 20, 2013 10:57:37 AM org.nirala.trace.Logger info
INFO: Invoked from WANdisco installation at: /home/wandisco/svn-replicator
[I] using specified port: 6444
[I] Starting Subversion web installer

Point a web browser to http://172.16.2.39:6444/ to configure the product.

Complete the upgrade through a browser.

5.6. From the Welcome screen, click Continue.

5.7. Once you've read the WANdisco End User License Agreement, click I Agree to continue with the installation.

5.8. Enter a password for the default Admin Console account, the username for this account is admin. Click Next to continue.

5.9. The next two screens explain how MultiSite will act as a proxy between Subversion clients and the Subversion server. Click Next to continue.

5.10 By default, MultiSite will listen on port 80, while Subversion will listen on port 8080. The benefit of this setup is that Subversion end-user don't need to make any changes.

5.11 You'll confirm the proxy settings. These will be populated with the default settings noted in the previous screens.

    Node Name: The name that MultiSite will use for this, the first node. The name cannot contain spaces, but can be changed later from the Admin Console.

    Node IP: The node's IP.

    Bind Host: By default, all network interfaces bind to the node. Select "Bind advertised host only" to limit to the node's IP address (stated in the field, above).

    Client Port: By default this is 80, allowing Subversion users to continue without making change to their client setup.

    Admin Console Port: 6444 by default. Should you need to use a different port for accessing the Admin Console, restart the setup (step 3.1.3) using the following command:

    perl setup <preferred port for Admin Console access>

    Reserved Ports: MultiSite will reserve a block of 10 ports, you can either leave the default ports or enter ports that you prefer.

    Use SSL: Tick the checkbox if you've already got keystore/truststore settings in place. See more about SSL Settings.

Once you've finished making any changes to the proxy settings, click Next to continue.


5.12 Setup will check the Apache config file for any settings that might cause problems for MultiSite.

If the httpd.conf file isn't found, enter its path into the Configuration File entry box, then click Reload Configuration.

Look out for warning boxes for where setup finds a problem. You'll need to manually edit the httpd.conf file, then click on Reload Configuration to have setup check your changes.

    User: Owner of the file.

    Group: The group in which the owner belongs.

    KeepAlive: Setup will look to see that the Keep-Alive directive is set to On.

    KeepAliveRequests: Setup will look for 0, which indicates that no maximum limit will be set for connection requests.

    KeepAliveTimeout: Set high to ensure connections don't timeout.

    Listening IP: For a node with multiple IPs, this will indicate the IP used for listening.

    Listening Port: The default listening port is 8080.
    Override Listen directive with a virtual host? Tick to tell MultiSite that you are using a virtual host.


5.13 Setup now allows you to modify your Subversion settings. Watch for alerts that confirm the port and path that MultiSite will associate with Subversion.

    SVN Settings

    Use Pre-Replication Hooks: Select whether you are using Pre-Replication Hooks.


    Subversion Host: Confirm the hostname of the server running Subversion. You'll benefit from making this the same location as MultiSite, e.g. 'localhost'.

    Subversion Server Port: 8080 by default.

    SVN Executable:This is the fully qualified path to the Subversion executable. Setup will try to fill this in automatically, otherwise type it into the entry box.

    Use authz-based access control Click on the box if you are using Authz access control. See the following note about why you may wish to hold off selecting this option until later.

tipInstalling in order to perform an upgrade using the backup.xml file?
Don't enable Authz during the installation - wait until the import is completed, then enable Authz from the admin console.

(LDAP users only) Re-enter LDAP settings

The import file that will recover your users and settings will not add your old LDAP authority settings. You must re-enter your LDAP authorities before completing the import.

Follow the instructions in the 3.7 Create LDAP Authority

6. Run the conversion script

In 4.2 Build: 3256 we introduced the ability to run with simultaneous LDAP and internal authentication. Adding this feature required a small change to the Access Control database with the addition of a 'user type' field that recorded whether a user was added internally or supplied from an LDAP service.

6.1 In order to import data from an earlier version of MultiSite you will need to first copy the backup (backup.xml or access-control.xml) file that you created in step 2 into the utils directory (<INSTALL-DIR>/svn-replicator/utils/) which contains three conversions scripts. You will need to apply the script that corresponds with the version of SVN MultiSite from which you are upgrading. i.e.

<INSTALL-DIR>/svn-replicator/utils/convertac41-42.pl
Converts all builds of SVN MultiSite 4.1 into the latest data format

Set your imported users as "local"

perl convertac41-42.pl backup.xml local
OR

Set your imported users as "LDAP"

perl convertac41-42.pl backup.xml ldap 

Running the conversion script will create a new file in the utils folder.

MS425-backup.xml
This is the backup.xml file with the new data format converted from SVN MultiSite 4.1
Use this file for the following steps. Please note that running the script from any other folder will not work.


7. Import your saved settings

So you backed up your data, installed the latest version MultiSite, if it was neccessary, update your backup for import into the latest version of MultiSite. Now it's time to import your backed up data.

Use this procedure to restore user information, although any system settings will need to be manually applied. Important: if you're using LDAP then you should re-enter your LDAP authoritie before importing your users.

7.1 From the Admin Console, click on the System tab. Click on Import Settings. Click on the magnifying glass browse icon and navigate to the utils folder.
upgrade with backup


7.2. Select the new MS425-convert-access-control.xml file, then click on the Import Settings button.
upgrade with backup

7.3 You'll see the import bar progress until you get an "import complete" message. upgrade with backup

7.4 When the import is complete check that the users, teams and rules have been imported successfully from the previous MS installation. Test the individual node by trying an svn checkout with the the imported configuration. Also, manually add the svn repositories you are using under Proxy/SVN Settings.

Important All files for use with WANdisco MultiSite should use UTF-8 encoding (and/or single-byte encoding if there are no none-ASCII characters). Any other encoding e.g. Unicode will not be parsed correctly.

7.5. You've now completed the upgrade. However, any backup that you have installed will only provide user / group definitions. The following settings need to be manually applied:

  • Consistency Check Schedule
    If you have set up a Consistency Check to run on a schedule, you will need to re-enter this manually. Read the section on the Consistency Check Settings.

  • Distinguished Node Rotation Schedule
    If you had previously set up a scheduled rotation of your distinguished node, this will need to be set up again as the scheduling settings are not stored with the backup. See 3.5.3 Scheduled rotation of the distinguished node

  • Pre-replication Hooks
    Subversion MultiSite 4.1: pre-rep hooks are defined in prefs.xml config file. After completing an upgrade you'll need to ensure that these pre-replication hooks are copied to the new upgraded version.

8. Redeploy

8.1 Once the latest of SVN MultiSite has been installed and your data updated and imported you should redeploy the other nodes using SVN MultiSite's packager where the installation of the other nodes can be handled from the admin console.









Copyright © 2010-2013 WANdisco
All Rights Reserved

This product is protected by copyright and distributed under licenses restricting copying, distribution and decompilation.