WS-Management-Command line Interface
Go to file
2017-10-18 13:30:15 +02:00
.gitignore Update to wsmancli-2.6.0 2015-06-16 10:33:58 +02:00
AUTHORS Fix Source URL, Use tarball from upstream, Add COPYING, README and AUTHORS 2010-01-25 13:51:31 +00:00
COPYING Fix Source URL, Use tarball from upstream, Add COPYING, README and AUTHORS 2010-01-25 13:51:31 +00:00
missing-pthread-symbols.patch Update to wsmancli-2.3.1 2014-03-12 11:57:53 +01:00
README Fix Source URL, Use tarball from upstream, Add COPYING, README and AUTHORS 2010-01-25 13:51:31 +00:00
sources Update to wsmancli-2.6.0 2015-06-16 10:33:58 +02:00
wsmancli.spec Fix the dist tag, remove Group 2017-10-18 13:30:15 +02:00

How to compile and run openwsman from Subversion? 
===============================

After checking out the project from subversion run ./autoconfiscate in the TOP directory and 
follow that by running ./configure <options>.
If you download a packaged version, then there is no need to run ./autoconfiscate and you will
be able to run ./configure directly.

Most likely you will need to install some of the packages, depending on the distribution
you are running.

Packages and other software needed:

- libxml2
- sfcc (from the sblim project)
- swig and python for python binding support
- other development packages like autoconf, automake etc.

After all packages are installed, compile everything and install. The server can run as
a daemon, which would require root access; But it can be run in the foreground with debugging
messages printed to stdout as well. This the help output when you run:

% /usr/local/sbin/openwsmand --help
Usage:
  openwsmand [OPTION...] WS-Management Server

Help Options:
  -?, --help                   Show help options

Application Options:
  -n, --no-plugins             Do not load any plugins
  -d, --debug                  Start daemon in foreground and turn on debugging
  -s, --syslog=0-6             Set the verbosity of syslog output.
  -c, --config-file=<file>     Alternate configuration file


Starting from version 0.1.1 a configuration file is needed. you can find an example in the 
./etc directory. The configuration file has the following syntax:

[server]
port = 8889
#ssl_port = 8888
ssl_cert_file = /etc/openwsman/servercert.pem
ssl_key_file = /etc/openwsman/serverkey.pem
#digest_password_file = /etc/openwsman/digest_auth.passwd
basic_password_file = /etc/openwsman/simple_auth.passwd
enum_idle_timeout = 5000

min_threads = 1
max_threads = 1

#use_digest is OBSOLETED, see below.

#
# Authentication backend for BASIC authentication. Default is to read a configuration file defined with 'basic_password_file'
#

#basic_authenticator = libwsman_pam_auth.so
#basic_authenticator_arg = openwsman


[client]
port = 8889
agent = openwsman 1.5.9

[cim]
default_cim_namespace = root/cimv2

# The following are in part fake namespaces for some publicly available CIM implementations.
vendor_namespaces = OpenWBEM=http://schema.openwbem.org/wbem/wscim/1/cim-schema/2,Linux=http://sblim.sf.net/wbem/wscim/1/cim-schema/2,OMC=http://schema.omc-project.org/wbem/wscim/1/cim-schema/2,Reef=http://reef.sblim.sf.net/wbem/wscim/1/cim-schema/2,CWS=http://cws.sblim.sf.net/wbem/wscim/1/cim-schema/2


To be able to put the configuration files under /etc/openwsman, run the configure script
with the --sysconfdir option using the value /etc. If this option is not used, the default will
be under PREFIX (/usr/local/etc ).

To run in SSL mode you need to enable the SSL port and create certificates and adapt the configuration
with the correct path to the files.

To start the server in the foreground, run:

% /usr/local/sbin/openwsmand  -d

You can also specify the configuration file to be used on the command line using the -c option.


On the client side, which has the following options

 % /usr/local/bin/wsman --help-all

Usage:
  wsman [Option...] <action> <Resource Uri>

Usage:
  wsman [Option...] <action> <Resource Uri>

Help Options
  -?, --help
  --help-all                                      Show help options
  --help-enumeration                              Enumeration Options
  --help-tests                                    Test Cases
  --help-cim                                      CIM Options
  --help-flags                                    Request Flags
  --help-event                                    Subscription Options

Enumeration
  -m, --max-elements=<max number of elements>     Max Elements Per Pull/Optimized Enumeration
  -o, --optimize                                  Optimize enumeration results
  -E, --estimate-count                            Return estimation of total items
  -M, --enum-mode=epr|objepr                      Enumeration Mode
  -U, --enum-context=<enum context>               Enumeration Context (For use with Pull and Release)

Tests
  -f, --from-file=<file name>                     Send request from file
  -R, --print-request                             print request on stdout
  -Q, --request                                   Only output reqest. Not send it.
  -S, --step                                      Do not perform multiple operations (do not pull data when enumerating)

CIM
  -N, --namespace=<namespace>                     CIM Namespace (default is root/cimv2)
  -B, --binding-enum-mode=none|include|exclude    CIM binding Enumeration Mode
  -T, --cim-extensions                            Show CIM Extensions
  -W, --references                                CIM References
  -w, --associators                               CIM Associators

Flags
  -x, --filter=<filter>                           Filter
  -D, --dialect=<dialect>                         Filter Dialect
  -t, --operation-timeout=<time in sec>           Operation timeout in seconds
  -e, --max-envelope-size=<size>                  maximal envelope size
  -F, --fragment=<fragment>                       Fragment (Supported Dialects: XPATH)

Event subscription
  -G, --delivery-mode=<mode>                      Four delivery modes available: push/pushwithack/events/pull
  -Z, --notification-uri=<uri>                    Where notifications are sent
  -r, --subscription-expiry-time=<seconds>        subscription expiry time in seconds
  -H, --heartbeat=<seconds>                       Send hearbeat in an interval
  -l, --bookmark                                  Send bookmark
  -i, --subscription-identifier=<uuid:XXX>        Used to specify which subscription
  -L, --notify-reference-properties=<xs:anyURI>   Notify Reference Properties

Application Options
  -d, --debug=1-6                                 Set the verbosity of debugging output.
  -c, --cacert=<filename>                         Certificate file to verify the peer
  -A, --cert=<filename>                           Certificate file. The certificate must be in PEM format.
  -K, --sslkey=<key>                              SSL Key.
  -u, --username=<username>                       User name
  -g, --path=<path>                               Path
  -J, --input=<filename>                          File with resource for Create and Put operations in XML, can be a SOAP envelope
  -p, --password=<password>                       Password
  -h, --hostname=<hostname>                       Host name
  -b, --endpoint=<url>                            End point
  -P, --port=<port>                               Server Port
  -X, --proxy=<proxy>                             Proxy name
  -Y, --proxyauth=<proxyauth>                     Proxy user:pwd
  -y, --auth=<basic|digest|gss>                   Authentication Method
  -a, --method=<custom method>                    Method (Works only with 'invoke')
  -k, --prop=<key=val>                            Properties with key value pairs (For 'put', 'invoke' and 'create')
  -C, --config-file=<file>                        Alternate configuration file
  -O, --out-file=<file>                           Write output to file
  -V, --noverifypeer                              Not to verify peer certificate
  -v, --noverifyhost                              Not to verify hostname
  -I, --transport-timeout=<time in sec>           Transport timeout in seconds

To create a password file, use the htpasswd and htdigest utilities from the apache distribution.

You can connect to the server with the following command, which is part of the DMTF WS-Management specification (Draft)

wsman identify    -h <hostname> --port 8889 -u wsman --password secret


The above command should give the following result:


<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd">
  <s:Header/>
  <s:Body>
    <wsmid:IdentifyResponse>
      <wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion>
      <wsmid:ProductVendor>openwsman</wsmid:ProductVendor>
      <wsmid:ProductVersion>2.0.0</wsmid:ProductVersion>
    </wsmid:IdentifyResponse>
  </s:Body>
</s:Envelope>