Metadata-Version: 2.1
Name: nojava-ipmi-kvm
Version: 0.1.1
Summary: Access Java based ipmi kvm consoles without a local Java installation.
Home-page: https://github.com/sciapp/nojava-ipmi-kvm
Author: Ingo Heimbach
Author-email: i.heimbach@fz-juelich.de
License: MIT
Keywords: ipmi,kvm,vnc
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 2 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4
Requires-Dist: PyQt5 (>=5.9)
Requires-Dist: requests

NoJava-IPMI-KVM
===============

Introduction
------------

*NoJava-IPMI-KVM* is a tool for running Java-based IPMI-KVM consoles
without a local Java installation. It runs a Docker container in the
background, starts a suitable Java Webstart version (from OpenJDK) and
connects to the container with
`noVNC <https://github.com/novnc/noVNC>`__. By using Docker, Java
Webstart is sandboxed automatically and you don’t need to install old
Java versions on your Desktop machines.

This project is based on ideas from
`solarkennedy/ipmi-kvm-docker <https://github.com/solarkennedy/ipmi-kvm-docker>`__.

Installation
------------

The latest version can be obtained from PyPI and runs with Python 2.7 or
3.3+ (Python 3 is recommended):

.. code:: bash

   python3 -m pip install nojava-ipmi-kvm

`Install Docker <https://www.docker.com/>`__ on your local machine if
not done already.

Usage
-----

Configuration file
~~~~~~~~~~~~~~~~~~

First, create a file ``~/.nojava-ipmi-kvmrc`` and create a configuration
section for each kvm host you want to connect to, for example:

::

   [myhostkvm]
   full_hostname = myhostkvm.org
   login_user = ADMIN
   login_endpoint = rpc/WEBSES/create.asp
   download_endpoint = Java/jviewer.jnlp
   allow_insecure_ssl = False
   user_login_attribute_name = WEBVAR_USERNAME
   password_login_attribute_name = WEBVAR_PASSWORD
   java_version = 7u51
   session_cookie_key = SessionCookie

-  ``full_hostname``: Fully qualified name of your KVM host
-  ``login_user``: User to login to the web admin view (default:
   ``ADMIN``)
-  ``login_endpoint``: Relative POST url of the login form. Is needed to
   create a login session.
-  ``download_endpoint``: Relative download url of the Java KVM viewer.
-  ``allow_insecure_ssl``: Allow SSL certificates that cannot be
   validated when logging in and downloading the KVM viewer.
-  ``user_login_attribute_name``: Name of the user login field in the
   login form (use the web inspector of your favorite browser to find
   out the field names).
-  ``password_login_attribute_name``: Name of the password field in the
   login form.
-  ``java_version``: Java version that is needed to run Java KVM viewer.
   Currently, ``7u51`` and ``7u181`` are available (default: ``7u181``).
-  ``session_cookie_key``: Workaround for web applications that do not
   set session cookies directly (for example with Javascript). If a
   login attempt does not set a session cookie, the HTTP reply body is
   scanned for a potential session cookie value. If a value is found, it
   will be stored under the name ``session_cookie_key``. In most cases
   you can simply obmit this configuration key.

In addition, you can create a ``general`` section to configure more
general settings, e.g.:

::

   [general]
   x_resolution = 1600x1200

-  ``x_resolution``: Resolution of the X server and size of the VNC
   window (default: ``1024x768``)

Using the command line tool
~~~~~~~~~~~~~~~~~~~~~~~~~~~

After configuring, you can call ``nojava-ipmi-kvm`` from the command
line:

.. code:: bash

   nojava-ipmi-kvm myhostkvm

You can start ``nojava-ipmi-kvm`` multiple times to connect to different
machines in parallel. The background Docker container will be shutdown
automatically after to you closed the VNC window or sent ``<Ctrl-C>`` on
the command line.

Options:

::

   usage: nojava-ipmi-kvm [-h] [-f CONFIG_FILEPATH] [--print-default-config] [-V]
                          [hostname]

   nojava-ipmi-kvm is a utility to access Java based ipmi kvm consoles without a local java installation.

   positional arguments:
     hostname              short hostname of the server machine; must be
                           identical with a hostname in `.nojava-ipmi-kvmrc` (for
                           example `mykvmserver`)

   optional arguments:
     -h, --help            show this help message and exit
     -f CONFIG_FILEPATH, --config-file CONFIG_FILEPATH
                           login user (default: ~/.nojava-ipmi-kvmrc)
     --print-default-config
                           print the default config to stdout and exit
     -V, --version         print the version number and exit

Command line completion
-----------------------

This repository offers a completion script for zsh users (only hostnames
currently, no options). You can install the completion script with
`zplug <https://github.com/zplug/zplug>`__ or manually.

Using zplug
~~~~~~~~~~~

Add ``zplug "sciapp/nojava-ipmi-kvm"`` to your ``.zshrc``.

Manual
~~~~~~

Clone this repository and source
``nojava_ipmi_kvm_completion.plugin.zsh`` in your ``.zshrc``.


