blob: c4bc52f9aee0041afffc9c6db51a2289211d42c2 [file] [log] [blame]
h1. Using remote instances
h2. Configuring remote instances
It does not always make sense to manage an instance of Karaf using its local console. You can manage Karaf remotely using a remote console.
When you start Karaf, it enables a remote console that can be accessed over SSH from any other Karaf console or plain SSH client. The remote console provides all the features of the local console and gives a remote user complete control over the container and services running inside of it.
The SSH hostname and port number is configured in the {{\[karaf_install_dir\]/etc/org.apache.karaf.shell.cfg}} configuration file with the following default values:
{code}
sshPort=8101
sshHost=0.0.0.0
sshRealm=karaf
hostKey=${karaf.base}/etc/host.key
{code}
You can change this configuration using the [config commands|configuration] or by editing the above file, but you'll need to restart the ssh console in order for it to use the new parameters.
{code}
# define helper functions
bundle-by-sn = { bm = new java.util.HashMap ; each (bundles) { $bm put ($it symbolicName) $it } ; $bm get $1 }
bundle-id-by-sn = { b = (bundle-by-sn $1) ; if { $b } { $b bundleId } { -1 } }
# edit config
config:edit org.apache.karaf.shell
config:propset sshPort 8102
config:update
# force a restart
osgi:restart --force (bundle-id-by-sn org.apache.karaf.shell.ssh)
{code}
h2. Connecting and disconnecting remotely
h3. Using the {{ssh:ssh}} command
You can connect to a remote Karaf's console using the [{{ssh:ssh}}|/commands/ssh-ssh] command.
{code}
karaf@root> ssh:ssh -l karaf -P karaf -p 8101 hostname
{code}
{warning}
The default password is {{karaf}} but we recommend changing it. See the [security] section for more informations.
{warning}
To confirm that you have connected to the correct Karaf instance, type [{{shell:info}}|/commands/shell-info] at the {{karaf>}} prompt. Information about the currently connected instance is returned, as shown.
{code}
Karaf
Karaf home /local/apache-karaf-2.0.0
Karaf base /local/apache-karaf-2.0.0
OSGi Framework org.eclipse.osgi - 3.5.1.R35x_v20090827
JVM
Java Virtual Machine Java HotSpot(TM) Server VM version 14.1-b02
...
{code}
h3. Using the Karaf client
The Karaf client allows you to securely connect to a remote Karaf instance without having to launch a Karaf instance locally.
For example, to quickly connect to a Karaf instance running in server mode on the same machine, run the following command from the {{[karaf-install-dir]}} directory:
{code}
bin/client
{code}
More commonly, you would provide a hostname, port, username and password to connect to a remote instance. And, if you were using the client within a larger script, you could append console commands as follows:
{code}
bin/client -a 8101 -h hostname -u karaf -p karaf features:install wrapper
{code}
To display the available options for the client, type:
{code}
> bin/client --help
Apache Karaf client
-a [port] specify the port to connect to
-h [host] specify the host to connect to
-u [user] specify the user name
-p [password] specify the password
--help shows this help message
-v raise verbosity
-r [attempts] retry connection establishment (up to attempts times)
-d [delay] intra-retry delay (defaults to 2 seconds)
[commands] commands to run
If no commands are specified, the client will be put in an interactive mode
{code}
h3. Using a plain SSH client
You can also connect using a plain SSH client from your *nix system or Windows SSH client like Putty.
{code}
~$ ssh -p 8101 karaf@localhost
karaf@localhost's password:
{code}
h3. Disconnecting from a remote console
To disconnect from a remote console, press {{Ctrl+D}}, {{shell:logout}} or simply {{logout}} at the Karaf prompt.
h2. Stopping a remote instance
h3. Using the remote console
If you have connected to a remote console using the [{{ssh:ssh}}|/commands/ssh-ssh] command or the Karaf client, you can stop the remote instance using the [{{osgi:shutdown}}|/commands/osgi-shutdown] command.
{info}
Pressing {{Ctrl+D}} in a remote console simply closes the remote connection and returns you to the local shell.
{info}
h3. Using the Karaf client
To stop a remote instance using the Karaf client, run the following from the {{[karaf-install-dir]/lib}} directory:
{code}
bin/client -u karaf -p karaf -a 8101 hostname osgi:shutdown
{code}