GlassFish Server Open Source Edition 3.1 - SSH Provisioning

Introduction

SSH Provisioning attempts to accomplish two things:

  1. Support the provisioning of a remote system (node) so that the user can use that system to host server instances for a cluster.
  2. Support the remote execution of cluster and instance lifecycle asadmin commands on provisioned nodes.

In simple terms SSH Provisioning attempts to provide some of the
capability that was provided by the node agent in GF v2. The
provisioning of a system is somewhat analagous to creating a node
agent on a system. Once a system is provisioned it can participate
in a cluster.

In the long term we would like the operation of provisioning a
system to include the capability of installing GlassFish on the
system. But for 3.1 we will likely require users to install GlassFish on
remote systems directly and the provisioning step will simply do
some initialization on the system and register the system with the DAS.

SSHD is typically standard in current Unix distributions and is widely
used for remote administration of systems. There are also popular
implementations for Windows such as Cygwin SSHD. Java implementations
of the SSH client exist. Hudson uses solution based on Trilead-ssh2.
The intention is to leverage the work Hudson has done where possible.

Feature Overview

Feature ID Priority Description Eng Response Owner(s) Estimate (Man Days) Source of Requirement Status / Comments
SSHPRO-001 P2 Support execution of asadmin commands on remote system for supported commands via SSH Yes rajiv 15 Feature Parity  
SSHPRO-002 P2 create-node: Remotely configure a system for use in a cluster delete-node: Remotely remove a system for use in a cluster Yes carla 15 Feature Parity  
SSHPRO-003 P2 create-instance: Remotely create a server instance on a node delete-instance: Remotely delete a server instance from a node Yes carla 10 Feature Parity Remote commands that used to rely on node-agent
SSHPRO-004 P2 start-instance: Remotely start a server instance on a node stop-instance: Remotely stop a server instance on a node Yes carla 5 Feature Parity Remote commands that used to rely on node-agent
SSHPRO-005 P2 start-cluster: Remotely start all server instances of a cluster stop-cluster: Remotely stop all server instances of a cluster Yes joe 10 Feature Parity Remote commands that used to rely on node-agent
SSHPRO-006 P2 Friendly failure if SSH not available Yes rajiv 5    
SSHPRO-007 P2 Detailed diagnostics about communication errors Yes rajiv 5   ping command that shows communication errors between DAS to remote node, etc.
SSHPRO-008 P2 Support SSH public key authentication Yes rajiv 2 Feature Parity  
SSHPRO-009 P2 create-node installs software on system Yes yamini 20    
SSHPRO-010 P3 Support SSH password authentication No joe 5    
SSHPRO-012 P4 View log files of failed server instances No TBD TBD Feature Parity Remoting of important local commands
SSHPRO-013 P5 Watchdog restart of failed server instances No TBD TBD Feature Parity Remoting of important local commands
SSHPRO-014 P5 Support alternative to SSH on Windows No TBD TBD    
SSHPRO-015 P2 Console support for P2 CLI operations Yes carla, joe 10    
SSHPRO-016 P3 Handle "node-agent" elements during v2 upgrade Yes joe 10    
SSHPRO-017 P2 list-nodes: List information about nodes Yes carla 5    
SSHPRO-018 P3 Support encrypted key file with SSH public key authentication Yes rajiv 5    

Design Document

3.1SSHProvisioningDesign

Milestone Schedule

Item # Date/Milestone Feature-ID Description QA/Docs Handover? Status / Comments
1 MS2 SSHPRO-001,6-8 ssh client library and API No Done
2 MS2 SSHPRO-002 remote create/delete node: initial integration No Done
3 MS2 SSHPRO-003 remote create/delete instance: initial integration No Done
4 MS2 SSHPRO-004 remote start/stop instance: initial integration No Done
5 MS2 SSHPRO-005 remote start/stop cluster: initial integration No Done
6 MS3 SSHPRO-001, 6-8 dev tests for: ssh client library and API Yes TBD
7 MS3 SSHPRO-002 dev tests for: remote create/delete node Yes Done
8 MS3 SSHPRO-003 dev tests for: remote create/delete instance Yes Partial. Dev tests incomplete. Will continue work for MS4/5.
9 MS3 SSHPRO-004 dev tests for: remote start/stop instance Yes Partial. Dev tests incomplete. Will continue work for MS4/5.
10 MS3 SSHPRO-005 dev tests for: remote start/stop cluster Yes Partial. Dev tests incomplete. Will continue work for MS4/5.
11 MS4 SSHPRO-015 Console integration Yes Done
13 MS4 SSHPRO-016 Handle upgrade of node/node-agents Yes Done
15 MS4 SSHPRO-010 Support SSH password authentication Yes Done
15b MS4 SSHPRO-018 Support encrypted key file with SSH public key authentication Yes Done
14 MS5 SSHPRO-009 create-node installs software on system Yes At risk

Task List

Task Target Milestone Start Date End Date Owner(s) Feature ID Status / Comments
Verify Trilead-ssh2 legal MS1   5/21 joe SSHPRO-001 Done
Specify domain.xml config changes/additions. MS1   5/21 joe SSHPRO-001 Done
Specify CLI interfaces. Ensure basic clustering is implementing needed local versions of commands. MS1   5/21 carla SSHPRO-002-5 Done
Specify remote admin command module API MS1   5/21 rajiv SSHPRO-001 Done
Integrate Trilead-ssh2 library into GlassFish build MS2   5/28 rajiv SSHPRO-001 Done
Verify support for SSH public key auth MS2   5/28 rajiv SSHPRO-008 Done
Implement remote admin command module (API) on top of trilead-ssh2 MS2   6/11 rajiv SSHPRO-001 Done
Implement remote create/delete-node MS2   6/11 carla SSHPRO-002 Done
Implement remote create/delete-instance MS2   6/18 carla SSHPRO-003 Done
Implement remote start/stop-instance MS2   6/18 carla SSHPRO-004 Done
Implement remote start/stop-cluster MS2   6/18 joe SSHPRO-005 Done
Write dev tests for remoting SSH API MS3   6/25 rajiv SSHPRO-001 TBD
Write dev tests for remote create/delete-node MS3   7/2 carla SSHPRO-002 Done
Write dev tests for remote create/delete-instance MS3   7/2 carla SSHPRO-003 Partial. Dev tests incomplete. Will continue work for MS4/5.
Write dev tests for remote start/stop-instance MS3   7/2 carla SSHPRO-004 Partial. Dev tests incomplete. Will continue work for MS4/5.
Write dev tests for remote start/stop-cluster MS3   7/2 joel SSHPRO-005 Partial. Dev tests incomplete. Will continue work for MS4/5.
Work with console team to add console support MS4   8/13 carla/joe SSHPRO-015 Done
Implement support for SSH password auth MS4   8/13 joe SSHPRO-010 Done
Implement support for SSH encrypted key file auth MS4   8/13 joe SSHPRO-18 Done
Handle upgrade migration from v2 (node-agents/nodes) MS4   8/13 carla SSHPRO-016 Done
Support software installation as part of create-node MS5     yamini, srini SSHPRO-009 At risk

Usage Scenarios

3.1 SSH Scenarios describes some CLI usage scenarios.

Notes running GlassFish Provisioning on Windows

GlassFish Provisioning page describes some notes about running GlassFish provisioning feature using SSH on Windows.

Dev Tests

  • Coming soon

QA Handoff

3.1SSH DHQA

3.1SSH DHQA setup-ssh install-node

References

Email Alias


Unknown macro: {gliffy}