version 1.2.8.4, 2004/04/26 17:16:00
|
version 1.3, 2004/03/09 21:38:27
|
|
|
<p style="margin-top: 0; margin-bottom: 0"><b>PEP #:</b> 103</p> | <p style="margin-top: 0; margin-bottom: 0"><b>PEP #:</b> 103</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Title: </b>OpenPegasus Version 2.3 | <p style="margin-top: 0; margin-bottom: 0"><b>Title: </b>OpenPegasus Version 2.3 |
Release Readme file</p> | Release Readme file</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Version: </b>1.2</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Version: </b>1.0</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Created:</b> 12 November 2003</p> | <p style="margin-top: 0; margin-bottom: 0"><b>Created:</b> 12 November 2003</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Authors: </b>Karl Schopmeyer, Konrad Rzeszutek</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Authors: </b>Karl Schopmeyer</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Status: </b>draft</p> | <p style="margin-top: 0; margin-bottom: 0"><b>Status: </b>draft</p> |
<p style="margin-top: 0; margin-bottom: 0"><b>Version History:</b></p> | <p style="margin-top: 0; margin-bottom: 0"><b>Version History:</b></p> |
<table border="1" cellspacing="1" bordercolordark="#666666" | <table border="1" cellspacing="1" bordercolordark="#666666" |
|
|
<td>Update from 2.2 Release notes. Converted to HTML</td> | <td>Update from 2.2 Release notes. Converted to HTML</td> |
</tr> | </tr> |
<tr> | <tr> |
<td align="center">1.1</td> |
<td align="center"> </td> |
<td align="center">March 10 2004</td> |
<td align="center"> </td> |
<td align="center">Konrad Rzeszutek</td> |
<td align="center"> </td> |
<td>Added sections describing SSL and PAM configuration</td> |
<td> </td> |
</tr> |
|
<tr> |
|
<td align="center">1.2</td> |
|
<td align="center">April 2004</td> |
|
<td align="center">Karl Schopmeyer</td> |
|
<td>Update for Pegasus 2.3.2</td> |
|
</tr> | </tr> |
</table> | </table> |
<hr> | <hr> |
|
|
| |
<p align="left"> | <p align="left"> |
| |
<b>STATUS:</b> Revised April 2004 for Pegasus release version 2.3.2 |
<b>STATUS:</b> Revised November 2003 for Pegasus release version 2.3.0 |
</p> | </p> |
| |
<p align="center"> | <p align="center"> |
<b><font size="4">Table of Contents</font></b><p align="left" style="margin-top: 0; margin-bottom: 0"> | <b><font size="4">Table of Contents</font></b><p align="left" style="margin-top: 0; margin-bottom: 0"> |
<a href="#Overview">Overview</a> |
<a href="#Overview"> Overview</a> |
| |
<p align="left" style="margin-top: 0; margin-bottom: 0"> | <p align="left" style="margin-top: 0; margin-bottom: 0"> |
<a href="#Availability of Pegasus">Availability of Pegasus</a><p align="left" style="margin-top: 0; margin-bottom: 0"> | <a href="#Availability of Pegasus">Availability of Pegasus</a><p align="left" style="margin-top: 0; margin-bottom: 0"> |
|
|
<a href="#Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a> | <a href="#Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a> |
| |
<p align="left" style="margin-top: 0; margin-bottom: 0"> | <p align="left" style="margin-top: 0; margin-bottom: 0"> |
<a href="#Client Development">Client Development</a><p align="left" style="margin-top: 0; margin-bottom: 0"> |
|
<a href="#Provider Development">Provider Development</a><p align="left" style="margin-top: 0; margin-bottom: 0"> |
|
<a href="#Commands">Commands</a> | <a href="#Commands">Commands</a> |
| |
<p align="left" style="margin-top: 0; margin-bottom: 0"> | <p align="left" style="margin-top: 0; margin-bottom: 0"> |
<a href="#Creating SSL certifications">Creating SSL certifications</a> |
<a href="#Creating SSL certifications">Creating SSL certifications</a>. |
| |
<p align="left" style="margin-top: 0; margin-bottom: 0"> | <p align="left" style="margin-top: 0; margin-bottom: 0"> |
<a href="#Configuring SSL">Configuring Pegasus to use SSL</a> |
<a href="#Configuring SSL">Configuring Pegasus to use SSL</a>. |
|
|
<p align="left" style="margin-top: 0; margin-bottom: 0"> |
|
<a href="#Configuring PAM">Configuring Pegasus to use PAM</a> |
|
| |
<p align="left" style="margin-top: 0; margin-bottom: 0"> | <p align="left" style="margin-top: 0; margin-bottom: 0"> |
<a href="#Testing with ICU enabled">Testing with ICU enabled </a> | <a href="#Testing with ICU enabled">Testing with ICU enabled </a> |
|
|
| |
<p><b>OpenPegasus (also referred to as Pegasus):</b> | <p><b>OpenPegasus (also referred to as Pegasus):</b> |
| |
Pegasus is an open-source CIM Server for based on the DMTF CIM/WBEM |
Pegasus is an open-source CIM Server for DMTF CIM objects. It is written |
specifications. It is written |
|
in C++ and includes the Object manager (CIMOM), a set of defined interfaces, an | in C++ and includes the Object manager (CIMOM), a set of defined interfaces, an |
implemenation of the CIMOperations over HTTP operations and their cimxml HTTP | implemenation of the CIMOperations over HTTP operations and their cimxml HTTP |
encodings, and | encodings, and |
|
|
<ul> | <ul> |
<li>What's new for this release - See the PEPs (Pegasus Enhancement Procedures) | <li>What's new for this release - See the PEPs (Pegasus Enhancement Procedures) |
release notes on the Pegasus web site and duplicated in the source top level | release notes on the Pegasus web site and duplicated in the source top level |
directory.<li>What's Broken and what was fixed - BUGS - See the ReleaseNotes for |
directory<li>What's Broken - BUGS - See the ReleaseNotes for this release in the CVS and |
this release in the root directory and the web site as a Pegasus PEP and review |
the web site as a Pegasus PEP.</ul> |
the bugs in the Pegasus bug list maintained in bugzilla on the Pegasus web site.</ul> |
|
| |
| |
<p>The release notes for each release are available on the WEB site as Pegasus PEP documents and |
<p>The release notes are available on the WEB site as Pegasus PEP documents and |
in the CVS top level directory for each release. See the release notes PEP |
in the CVS for each release.</p> |
for a definition of what is new or different for each Pegasus release</p> |
|
<table border="1" cellspacing="1" width="31%" id="AutoNumber3"> | <table border="1" cellspacing="1" width="31%" id="AutoNumber3"> |
<tr> | <tr> |
<td width="42%"><b>Release</b></td> | <td width="42%"><b>Release</b></td> |
|
|
<td width="42%">2.3</td> | <td width="42%">2.3</td> |
<td width="58%">PEP 98</td> | <td width="58%">PEP 98</td> |
</tr> | </tr> |
<tr> |
|
<td width="42%">2.3.2</td> |
|
<td width="58%">PEP 150</td> |
|
</tr> |
|
</table> | </table> |
| |
| |
|
|
| |
<p>The major components of Pegasus are: | <p>The major components of Pegasus are: |
<ul> | <ul> |
<li><b>Pegasus Server</b> - WBEM/CIM Server with interfaces for providers and clients. |
<li><b>Pegasus Server</b> - WBEM/CIM Server with interfaces for providers and clients |
The Pegasus server handles DMTF CIM Operations, DMTF CIM Indications in |
</li> |
conjunction with providers. It provides overall management of the server |
|
iteself, the repository and providers that have been registered with the |
|
server.</li> |
|
<li><b>Pegasus Repositories</b> - Today Pegasus provides a defined class repository | <li><b>Pegasus Repositories</b> - Today Pegasus provides a defined class repository |
interface and a simple file based class repository. It also includes | interface and a simple file based class repository. It also includes |
an instance repository. Note that these repository were created for | an instance repository. Note that these repository were created for |
functionality, not efficiency. It is expected that they will be replaced |
functionality, not efficieny. It is expected that they will be replaced |
with other implementations of the repository function as the need arises. |
with other implementations of the respository function as the need arises. |
</li> | </li> |
<li><b>Pegasus Client Library</b> - Tools for building Pegasus clients based on the Pegasus | <li><b>Pegasus Client Library</b> - Tools for building Pegasus clients based on the Pegasus |
C++ interfaces and using the WBEM HTTP/XML protocols or directly | C++ interfaces and using the WBEM HTTP/XML protocols or directly |
|
|
and the receipt of the response as WEB pages. This has proven useful as a | and the receipt of the response as WEB pages. This has proven useful as a |
test tool and can be used for a wide variety of demonstrations. | test tool and can be used for a wide variety of demonstrations. |
</li> | </li> |
<li>Pegasus Provider Managers - Pegasus incorporates the concept of pluggable |
<li><b>Pegasus Provider Library</b> - Tools for building Pegasus providers using the Pegasus |
provider managers allowing multiple provider managers with different provider |
|
interfaces. Today Pegasus includes the C++ provider interfaces and the |
|
CMPI C provider interface.</li> |
|
<li><b>Pegasus C++ Provider Interface Library</b> - Interfaces for building Pegasus providers using the Pegasus |
|
C++ interfaces. | C++ interfaces. |
</li> | </li> |
<li><b>Pegasus CMPI Provider Interface Library</b> - Interfaces for building |
|
Pegasus providers using the CMPI defined C interfaces. |
|
</li> |
|
<li><b>Pegasus Providers</b> - Providers to illustrate the use of Pegasus services | <li><b>Pegasus Providers</b> - Providers to illustrate the use of Pegasus services |
including providers for test and demonstration. In addition to sample and |
including providers for test and demonstration. |
test providers, there are a number of operational providers that manage |
</li> |
particular DMTF defined classes such as the CIM_ComputerSystem class.</li> |
<li><b>Pegasus Control Providers</b> - Common services for use by other Pegasus |
<li><b>Pegasus Control Providers</b> - Special providers that require direct |
components to extend Pegasus capabilites. |
access back to the server for information -- these are considered Pegasus |
</li> |
internal providers. There are several of this type of provider defined |
<li><b>Pegasus MOF Compiler </b>- There standalone compiler (cimmofl) for MOF files that can be used |
including configuration information, the DMTF interop classes ( Including |
to install MOF into the Pegasus schema repository and also to check syntax. |
namespace management). |
There is also a compiler that operates as a Pegasus client(cimmof) |
</li> |
There is also a tool to extract the MOF from the repository. |
<li><b>Pegasus MOF Compiler </b>- Pegasus includes a compiler (cimmof) that is |
|
used to install MOF into Pegasus. This compiler operates as a Pegasus client |
|
using the running CIM Server to install MOF definitions. This means that MOF |
|
input may be delivered directly to the repository or to providers for classes |
|
which are registered for providers. There is also a standalone compiler (cimmofl) |
|
that writes directly to the repository. <font color="#FF0000">WARNING:</font> |
|
The cimmofl compiler should be used with caution because it puts all objects |
|
defined in the MOF directly into the repository bypassing any defined provider |
|
processing. There are several <br> |
|
potential problems with using cimmofl including 1) bypasses any provider |
|
processing to put information directly into the <br> |
|
repository, 2) can cause repository corruption if it is executed simultaneous |
|
with the CIM Server using the repository 3) may <br> |
|
put information into repository that is not available until the CIM Server is |
|
stopped and restarted.</li> |
|
</ul> |
|
| |
<p> |
</li> |
We strongly encourage the use of cimmof instead of cimmofl, particularly in |
</ul> |
production.</p> |
|
| |
<h1> | <h1> |
<a name="Pegasus Supported Platforms">Pegasus Supported Platforms</a></h1> | <a name="Pegasus Supported Platforms">Pegasus Supported Platforms</a></h1> |
|
|
| |
<p> | <p> |
We have worked to minimize the dependence of Pegasus on other software | We have worked to minimize the dependence of Pegasus on other software |
packages and tools. Currently the Pegasus build process has the following dependencies: |
packages and tools. Currently Pegasus has the following dependencies: |
<p> | <p> |
<b>1. GNUMAKE</b> - To simplify the building of Pegasus across multiple platforms we | <b>1. GNUMAKE</b> - To simplify the building of Pegasus across multiple platforms we |
| |
|
|
</li> | </li> |
<li><font face="Courier New"><b>Server</b> Pegasus executable build | <li><font face="Courier New"><b>Server</b> Pegasus executable build |
</font></li> | </font></li> |
<li><font face="Courier New"><b>slp</b> - SLP agent libraries and |
<li><font face="Courier New"><b>slp</b> - </font></li> |
test tools.</font></li> |
|
<li><font face="Courier New"><b>Standard Includes</b> - </font></li> | <li><font face="Courier New"><b>Standard Includes</b> - </font></li> |
<li><font face="Courier New"><b>test</b> - Directory of end-end | <li><font face="Courier New"><b>test</b> - Directory of end-end |
tests that are regularly conducted on Pegasus</font></li> | tests that are regularly conducted on Pegasus</font></li> |
|
|
modules. Note that today, the trace file is located in the | modules. Note that today, the trace file is located in the |
PEGASUS_HOME directory, not in the log directory if Pegasus | PEGASUS_HOME directory, not in the log directory if Pegasus |
internal tracing is enabled.</font></li> | internal tracing is enabled.</font></li> |
<li><font face="Courier New"><b>repository</b> - This directory |
<li><font face="Courier New"><b>repository</b> - This Directory |
contains the created repository </font></li> | contains the created repository </font></li> |
</ul> | </ul> |
| |
|
|
| |
<p> | <p> |
Registration is performed by defining a MOF for the instances of the | Registration is performed by defining a MOF for the instances of the |
registration classes that represent the provider module, providers, classes, |
registration classes that represent the porvider module, providers, classes, |
etc. to be registered. The easiest way to create a new registration today | etc. to be registered. The easiest way to create a new registration today |
is to copy from one of the existing registration MOFs. See the | is to copy from one of the existing registration MOFs. See the |
providers/sample/load directory for examples of several registration instance | providers/sample/load directory for examples of several registration instance |
|
|
This is a separate test tool that allows Pegasus requests to be initiated from | This is a separate test tool that allows Pegasus requests to be initiated from |
any WEB browser and that uses a WEB browser, CGI scripts and HTML pages for | any WEB browser and that uses a WEB browser, CGI scripts and HTML pages for |
the formatting and connections. It requires a WEB server, etc. The | the formatting and connections. It requires a WEB server, etc. The |
instructions for setting up this environment are maintained in a separate readme in the |
instructions for setting up this environment are maintained in a separate readme in the CGI directory. <h1><a name="Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a></h1><p> |
Pegasus CGI directory. <h1><a name="Development with Pegasus and Pegasus Tools">Development with Pegasus and Pegasus Tools</a></h1><p> |
ATTN: This section needs to be completed. It should reference the more complete |
<b>ATTN:</b> This section is incomplete today. For more information on |
documentation.<h1><a name="Commands">Commands</a></h1><p> |
developing clients and providers for Pegasus see the Pegasus Workshop |
|
presentations available on the Pegasus web site.<h2> |
|
<a name="Client Development">Client Development</a></h2> |
|
<p> |
|
ATTN: Incomplete today.<h2> |
|
<a name="Provider Development">Provider Development</a></h2> |
|
<p> |
|
ATTN: Incomplete today.<h3> |
|
Debugging Providers</h3> |
|
<p> |
|
To debug providers you should be running the Pegasus CIMServer in a non-forked |
|
mode (not as a daemon or service). The configuration option 'daemon' |
|
defines such behavior. You can set this by either running cimserver as: <br> |
|
<br> |
|
cimserver |
|
daemon=false <br> |
|
<br> |
|
Or use the cimconfig to turn this option on: <br> |
|
<br> |
|
cimconfig -s daemon=false -p <br> |
|
When running in production, make sure to turn it back to true. <br> |
|
<h1><a name="Commands">Commands</a></h1><p> |
|
The manpages for each of the commands are in rpm/manLinux/man1.Z directory (on | The manpages for each of the commands are in rpm/manLinux/man1.Z directory (on |
CVS) <p> | CVS) <p> |
To see simple help for each of the commands, use the "-h" flag. <blockquote><pre>Examples: | To see simple help for each of the commands, use the "-h" flag. <blockquote><pre>Examples: |
|
|
before embarking on this endeavour.<br><br> | before embarking on this endeavour.<br><br> |
| |
To configure Pegasus to take advantage of SSL, configure | To configure Pegasus to take advantage of SSL, configure |
CIMServer to have the following configuration options set to: |
cimserver_planned.conf to have: |
<blockquote><pre> sslTrustFilePath=client.pem |
<blockquote><pre> |
|
sslTrustFilePath=client.pem |
sslCertificateFilePath=server.pem | sslCertificateFilePath=server.pem |
sslKeyFilePath=file.pem | sslKeyFilePath=file.pem |
httpsPort=5989 | httpsPort=5989 |
enableHttpsConnection=true | enableHttpsConnection=true |
</pre></blockquote> | </pre></blockquote> |
using the <b>cimconfig</b> utility: |
|
<blockquote><pre> cimconfig -p -s enableHttpsConnection=true |
|
</pre></blockquote><br> |
|
(The client.pem and server.pem are the certifications | (The client.pem and server.pem are the certifications |
files created per the steps in the earlier section). | files created per the steps in the earlier section). |
| |
For good riddance you might consider closing down | For good riddance you might consider closing down |
the cleartext 5988 port. Modify your CIMServer configuration |
the cleartext 5988 port. Modify your cimserver_planned.conf |
to include: | to include: |
<blockquote><pre> enableHttpConnection=false |
<blockquote><pre> |
</pre></blockquote> |
enableHttpConnection=false |
using <b>cimconfig</b>. |
</pre></blockquote><h1><a name="Testing with ICU enabled">Testing with ICU enabled</a></h1><p> |
<h1><a name="Configuring PAM">Configuring Pegasus to use PAM</a></h1><p> |
|
|
|
In order to use PAM Authentication you have to compile Pegasus |
|
with one extra enviroment flags: |
|
<blockquote><pre> PEGASUS_PAM_AUTHENTICATION=1 |
|
</blockquote></pre> |
|
You can also set the PEGASUS_ALWAYS_USE_PAM=1 flag to disable |
|
Pegasus password authentication using a flag text-file (recommended). |
|
<br> |
|
After compiling (refer to section <a href="#Building Pegasus">Building Pegasus </a> |
|
for details), follow these two important steps: |
|
<br> |
|
<ul> |
|
<ul>a). Copy the rpm/wbem file in-to /etc/pam.d directory. |
|
This notifies PAM what kind of libraries to use when authenticating |
|
Pegasus.</uL> |
|
<ul> |
|
b). Modify CIMServer configuration options: |
|
<blockquote><pre> usePAMAuthentication=true |
|
enableAuthentication=true |
|
</blockquote></pre> |
|
And if you want to allow 'root' to login (*not recommended*) |
|
|
|
<blockquote><pre> enableRemotePrivilegedUserAccess=true |
|
</blockquote></pre> |
|
|
|
using the <b>cimconfig</b> utility, such as: |
|
<blockquote><pre> cimconfig -p -s usePAMAuthentication=true |
|
</pre></blockquote> |
|
</ul> |
|
</ul> |
|
The user is authenticated using HTTP Basic method, thererfore it is |
|
strongly suggested you use SSL connection instead of normal HTTP connection. |
|
Refer to section |
|
<a href="#Configuring SSL">Configuring Pegasus to use SSL</a> for more details on creating and using SSL keys. |
|
</p> |
|
<h1><a name="Testing with ICU enabled">Testing with ICU enabled</a></h1><p> |
|
ICU (International Components for Unicode) refers to the set of libraries that | ICU (International Components for Unicode) refers to the set of libraries that |
Pegasus uses to run globalized. For example: these libraries are used to | Pegasus uses to run globalized. For example: these libraries are used to |
load messages in different languages, format currency and numbers according to | load messages in different languages, format currency and numbers according to |