| How to compile and run openwsman from GIT ? |
| =========================================== |
| |
| After checking out the project from git, create a build directory |
| with "mkdir build", cd into it, run "cmake .." and "make". |
| |
| See package/openwsman.spec.in for running cmake in 'release' mode |
| |
| Most likely you will need to install some of the packages, depending |
| on the distribution you are running. |
| |
| Pre-build (RPM) packages for many distributions are available at |
| https://build.opensuse.org/project/show?project=Openwsman |
| |
| |
| Packages and other software needed: |
| |
| - libxml2 |
| - sblim-sfcc (from the sblim project) |
| - swig and python for python binding support |
| - other development packages like cmake, gcc, 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 = 5985 |
| #ssl_port = 5986 |
| 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 = 5988 |
| agent = openwsman 2.2.4 |
| |
| [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.2.4</wsmid:ProductVersion> |
| </wsmid:IdentifyResponse> |
| </s:Body> |
| </s:Envelope> |