Its been a while, I have been in a lillte bit of a slump. But, some
really cool things have happened in the past weeks which gave me a
nice kick in the ass to move forward.
Thanks to Guillaume Nodet (aka gnodet) GShell now has... SSH support!
Yes you can now use your native/local sshd client to make a connect to
a remote gshell server... which means that if an admin starts a sshd
command on a Geronimo server, then one can ssh into Geronimo and
execute commands.
This is really the basic vision behind gshell... and well, it here
now... an industry accepted secure method to run textual commands on a
remote system! As a previous unix system administrator, I can tell
you... this feature is very powerful... certainly a leg up on any
other app server on the market.
BUT...
To really make it successful... we need more commands. IMO it would
be good if we can find a way to implement web-console and gshell-
console functionality with a common code-base. Most functionality
implemented via the web-based console can easily represented via
gshell, though granted some more thought needs to be applied to deal
with the interface limitations. For example, one can render a page to
collect several inputs at once where a gshell command needs to prompt
for each item in sequence.
I think we can invent some api to allow a gui or tui to be used... not
sure what that is yet, but my guy tells me its going to be possible.
(A) Web is powerful... (b) Text (ssh) is also powerful. Some
consumers prefer A others do more with B. The current webconsole,
which IMO is quite simple to use provides *A* to folks, but in my
experience more advanced users tend to automated/script in which *B*
is the preferred method.
With GShell I think we are in a very unique position to provide the
*best* ssh/cli administration interface to our application server.
Actually the functionality has been there for a while, though the new
gshell code does simplify things and add some nice new feautres.
To be clear, this is an enterprise feature, as casual users want gui
things, so like an installer, then app icons to run the app, run the
console, etc... But IMO the powerusers who run their enterprise
applications on Geronimo... they might have 100-1k geronimos nodes and
shell-based admin scripting is the only way to operate,... short of
writing custom GUI muck to manage all those systems and their data...
its custom. But by adopting the unix culture which so many admins are
already familiar really opens the door to the use of G in these
sophisticated environments.
* * *
Anyways back to the update. We have SSH/SSHD support! The other RSH/
RSHD stuff is done. cause the new bits are so much better. . GShell
has very rich VFS support, you can cd,ls,pwd,cp all based on Apache
Commons VFS. This means that you can use these commands to easily
transfer configuration files to remote systems (ie. use cp from a
supported filesystem)
Logging configuration can also be updated via the shell now too. You
can set the level of a logger, or add context to thre NDC or MDC... or
reconfigure everything from a new log4j configuration file.
Some other new commands include:
hostname
grep
find
There is still work which is planned for the shell parser to make
better use of command execution results, loop and other common things
which a script might do.
This release of Ghell has knowledge of an artifact repository, and
provides commands to install new plugins dynamically. Installation
will download new artifacts to the repository and load them from
there, The plugin system is still in the works, but right now you can
install new plugins and list those already installed. More work on
the plugin framework is going on, so expect more changes here.
* * *
Nothing is ever perfect... but we try to get close. In that process
along the lines we wan to release the codebase when its relatively
stable/usable. GShell is once again to that point. Short of a few
SNAPSHOT dependencies we are very close to a release.
On the repo issue, I had switched to Apache Ivy. It was smaller and
faster, but it didn't allow the local ache to be m2 compatible, so I
abstracted the artifact resolution stuff to allow Ivy, Maven or
Mercury to be used. Using Maven for now, until Mercury is released,
though from all accounts it looks like the Ivy impl is the fastest and
slimmest impl, users need to describe what they need.
* * *
Short of it all is... a new GShell is on the horizon. look for it and
vote.
I'm working on integration into the latest server tree... maybe more ;-)
--jason