| 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} |