ProGet Documentation

ProGet Load-balanced Installation

  • Last Modified: 2019-10-11

These step-by-step instructions were originally developed by Scott Cusson (Senior Release Engineer, Symbotic), primarily as a guide for internal use. We've modified and shared it as a reference guide that may help you set up your load-balanced or high-availability installation. See load balancing and automatic failover for more information.

Overview

This example guide is designed to configure a cluster and its various web servers in a Network Load Balancing (NLB) environment, in order to enable the Load Balancing feature in ProGet. This uses Microsoft Windows NLB feature as a load balancer, and all machines in this cluster are VMs, though that is not a strict requirement.

Prerequisites

NLB Prerequisites

For NLB installs, the following are additional prerequisites should be considered:

  • 2 NICs total (one dedicated for the NLB cluster) each with static IPs to host the ProGet website (example machine names in italics)
    • One machine per web node
      • ProGet_Webnode1 (this will also serve as the indexing server)
      • ProGet_Webnode2
      • ProGet_Webnode3
    • Machine to set up the NLB cluster
      • ProGet_NLB
  • Cluster IP with subnet mask (see Configuring the Cluster below) mapped to the internet name and company domain (e.g. http://nuget.srv.companyname.corp/)
  • Address Resolution Protocol (ARP) entry using the cluster IP to the switch that routes into the NLB VLAN

Web Node Prerequisites

  • Existing prerequisites under Web Node Manual Install Instructions
  • Additional features configured in the Server Manager:
    • Features > Network Load Balancing
    • Features > .NET 4.5+ - (for IIS machine key gen, also install all options)

Configuring the Cluster

  • RDP as the System user into ProGet_NLB
  • Open the NLB manager (Control Panel\All Control Panel Items\Administrative Tools\Network Load Balancing Manager)
    • Create a new cluster
    • Use the following as a guide to setup NLB: Microsoft's Network Load Balancing Cluster.
      • Session Affinity (sticky sessions) is not required

Cluster Properties Example

  1. IP - provided by IT. 10.0.0.100
  2. Subnet mask - provided by IT. 255.255.250.0
  3. Internet name - provided by IT. NUGET.SRV
  4. Operation mode - Multicast
  5. Port range - 80 to 80
  6. Protocols - TCP
  7. Filtering mode - Multiple host\Single | None (None option preferred)
    • None (preferred); indicates that any host in the cluster which matches to the port rule can handle the client request
    • Multiple host\Single; indicates that one host in the NLB cluster can process traffic from the same client. The requests are basically transmitted to the same host every time NLB reads the IP address.

Configuring the ProGet Web Nodes

Follow the Web Node Manual Instructions for each web node. The following additional configuration should be considered:

  • Use the bindings as per the Cluster Properties:
    • Cluster IP - provided by IT (e.g. 10.0.0.100)
    • Port - 80
    • Host name - provided by IT (e.g. nuget.srv.companyname.corp)
  • In IIS Manager:
    • Select the ProGet website
    • Double click Machine Key
      • Use validation method SHA1 and Auto Encryption method
      • Deselect any check boxes and click Generate Keys and Apply on the right panel; this will update the web.config with a machine key

Configure ProGet to Enable Load Balancing

On the ProGet Administration page, visit the "Configure Load Balancing" page, and click Enable.

Configure ProGet Service Node

Visit the Service Node Manual Install Instructions to install a service node.

For HA installations, it is recommended to install service nodes on separate machines from the web nodes, but there is no technical restriction on installing a web and service node on the same machine.

Configure the Inedo Service Messenger

The service messenenger is a component of ProGet that enables simple communications between web and service nodes. By default it uses a named pipe, but in a load-balanced configuration it needs to be configured to use TCP instead. The messenger is optional, but certain parts of ProGet's web interface may be slightly degraded without it. See the documentation on the Service Messenger for more information.

Upgrading a Load Balanced ProGet Installation

To upgrade an existing HA/LB installation, follow the Upgrading a Manual Install Instructions for each web and service node.

Is this documentation incorrect or incomplete? Help us by contributing!

This documentation is licensed under CC-BY-SA-4.0 and stored in GitHub.

Generated from commit 54a0ee92 on master