version 1.5, 2001/02/26 10:36:34
|
version 1.20, 2004/05/13 14:33:05
|
|
|
Pegasus - A Manageability Services Broker for the DMTF CIM/WBEM Standards |
|
|
OpenPegasus - A Manageability Services Broker for the DMTF CIM/WBEM Standards |
| |
Author: Mike Brasher, Karl Schopmeyer | Author: Mike Brasher, Karl Schopmeyer |
| |
------------------------------------------------------------------------------ |
Tagline: OpenPegasus is an object manager for DMTF CIM objects written in C++ |
-- |
and supported by The Open Group |
| |
$Log$ |
STATUS: Revised March 10 to match Pegasus release 2.3 |
Revision 1.5 2001/02/26 10:36:34 karl |
|
Clean Up Text |
|
| |
Revision 1.4 2001/01/26 20:20:36 karl |
NOTE: Obsolete. See readme.html |
Clean up Readme with MB comments |
Contents: |
|
========= |
|
|
|
1. Overview |
|
2. Availability of Pegasus |
|
3. Pegasus major components |
|
4. Pegasus Dependencies |
|
5. The Pegasus Directory Structure |
|
6. Installation |
|
7. Building Pegasus |
|
8. Populate the Repository |
|
9. The MU Utility |
|
10. Notes about Building Pegasus on Linux |
|
11. Notes about Building Pegasus on Mac OS X/Darwin |
|
12. Notes on building Pegasus with SSL |
|
13. Building Pegasus on Windows 2000 or Windows XP With Microsoft Visual C++ |
|
14. Installing the Pegasus HTML Test Client |
|
15. Development with Pegasus and Pegasus Tools |
|
16. Commands |
|
17. Creating SSL certifications. |
|
18. Configuring Pegasus to use SSL |
|
19. Configuring Pegasus to use PAM |
|
20. Testing with ICU enabled |
|
21. Documentation |
|
22. Participate |
| |
Revision 1.3 2001/01/22 15:09:29 mike |
|
Reworking indentation and breaking width of lines below 80 columns (not |
|
finished). Also |
|
inserted comments and suggestions following "MEB:" annotations. |
|
| |
| |
Revision 1.1 2001/01/15 04:26:04 karl |
|
added Readme |
|
| |
------------------------------------------------------------------------------ |
1. Overview: |
-- |
============ |
| |
Tagline: Pegasus is an object manager for DMTF CIM objects written in C++ |
OpenPegasus (also refered to as Pegasus): |
and supported by The Open Group |
|
| |
Pegasus is an open-source object manager for DMTF CIM objects. It is written | Pegasus is an open-source object manager for DMTF CIM objects. It is written |
in C++ and includes the Object manager, a set of defined interfaces, and SDKs | in C++ and includes the Object manager, a set of defined interfaces, and SDKs |
|
|
(LICENSE) of this release. This licensing is intended to support as wide a | (LICENSE) of this release. This licensing is intended to support as wide a |
distribution as possible with minimal demands on the users. | distribution as possible with minimal demands on the users. |
| |
This distribution represnts a snapshot of the current work. Currently Pegasus |
This distribution represents a snapshot of the current work. Currently Pegasus |
is in phase 1 of a multiphase development project. This snapshot is primarily | is in phase 1 of a multiphase development project. This snapshot is primarily |
for developers and for evaluation of the project. | for developers and for evaluation of the project. |
| |
|
|
In addition, the roadmap for Pegasus and further information on the project is | In addition, the roadmap for Pegasus and further information on the project is |
available on The Opengroup Pegasus WEB Site. | available on The Opengroup Pegasus WEB Site. |
| |
http://www.opengroup.org/MSB |
http://www.openpegasus.org |
|
|
|
|
|
2. Availability of Pegasus: |
|
============================ |
|
|
|
Pegasus is distributed as open source. The distribution is available via |
|
CVS and snapshot images in tar and zip file formats. |
|
|
|
The source code from CVS can be found at the following Open Group CVS server; |
| |
Availability of Pegasus |
cvs.opengroup.org:/cvs/MSB |
======================= |
|
| |
Pegasus is distributed as open source. Today the distribution is limited |
using the password authenticating server option (pserve). |
because we want to reach a predefined level of development before making the |
|
project publically available. The move from limited to open distribution will |
|
be a decision of the Pegasus development team and The Open Group and should |
|
occur before March 2001. |
|
| |
To get on the distribution list for Pegasus today, send an email to |
Anonymous access for read is with the name and password "anon" as follows: |
| |
m.kirk@opengroup.org |
%export CVSROOT=:pserver:anon@cvs.opengroup.org:/cvs/MSB |
|
%cvs login |
| |
or |
When requested, enter the password "anon" |
| |
k.schopmeyer@opengroup.org |
The source tree is in the directory pegasus. To check out the complete Pegasus |
|
source tree just type: |
| |
Pegasus Major Components |
cvs co pegasus |
======================== |
|
|
A Pegasus directory will be created under the current directory and populated |
|
with the complete source tree and documentation. To get the latest updates |
|
after a checkout just type this from Pegasus root: |
|
|
|
cvs update -d |
|
|
|
|
|
Active contributors to Pegasus have write access to the CVS repository. |
|
If you are interested in contributing back to the Pegasus project, |
|
(i.e. write (checkin) access to CVS) please request access from either |
|
Martin Kirk (m.kirk@opengroup.org) or Karl Schopmeyer (k.schopmeyer@opengroup.org). |
|
|
|
|
|
3. Pegasus Major Components: |
|
============================= |
| |
The major components of Pegasus are: | The major components of Pegasus are: |
| |
|
|
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 efficieny. It is expected that they will be replaced | functionality, not efficieny. It is expected that they will be replaced |
with other implementations of the respository function as the need arrses. |
with other implementations of the respository function as the need arises. |
| |
Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus | Pegasus Client SDK - 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 |
|
|
Pegasus HTML Test Client - To aid in testing we created a test client for | Pegasus HTML Test Client - To aid in testing we created a test client for |
Pegasus that uses a WEB server (ex. Apache) with a set of CGI modules and | Pegasus that uses a WEB server (ex. Apache) with a set of CGI modules and |
HTML to allow the entry of Pegasus operations from a WEB browser as forms | HTML to allow the entry of Pegasus operations from a WEB browser as forms |
and the recept 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. |
| |
Pegasus Provider SDK - Tools for build Pegasus clients based on the Pegasus |
Pegasus Provider SDK - Tools for building Pegasus providers using the Pegasus |
C++ interfaces. | C++ interfaces. |
| |
Pegasus Providers - A sampling of key providers to make the environment |
Pegasus Providers - Providers to illustrate the use of Pegasus services including |
complete as well as test providers and demonstration providers for the |
providers for test and demonstration. |
Pegasus. |
|
| |
Pegasus Service Extensions - Future (version 1.0) |
Pegasus Service Extensions - Common services for use by other Pegasus |
|
components to extend Pegasus capabilites. |
| |
Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used | Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used |
to install MOF into the Pegasus schema repository and also to check syntax |
to install MOF into the Pegasus schema repository and also to check syntax. |
|
There is also a tool to extract the MOF from the repository. |
| |
Pegasus Dependencies |
|
==================== |
4. Pegasus Dependencies: |
|
========================= |
| |
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 Pegasus has the following dependencies |
packages and tools. Currently Pegasus has the following dependencies: |
| |
1. ACE_Wrappers communication package - The ACE Wrappers package is used for |
1. GNUMAKE - To simplify the building of Pegasus across multiple platforms we |
communication and some low level functions within the MSB, the Pegasus client |
have standardized on a set of build tools including: GNUMAKE. We are using |
SDK, and the Pegasus Provider SDK. ACE is available from the following site. |
GNUMAKE 3.79.1 successfully both in Windows and Linux environments. |
| |
http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/ |
GNUMAKE is available from |
| |
Currently we are using version 5.1 of ACE_Wrappers both in Linux and Windows. |
http://www.gnu.org |
| |
http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz |
|
| |
COMMENTS: Pegasus only uses limited facilities from ACE. We actively |
2. MU.EXE - To minimize the difference between Linux and Windows for GNUMAKE, |
discourage the Pegasus team from using other functions of ACE. We expect to |
we have created a utility called MU.exe. This utility is required for |
eliminate our dependence on ACE as the only TCP tool in the near future. |
Pegasus make with ONLY Windows environment. It is provided as an alternative to |
However, today we |
requiring a number of UNIX utilities (SH, RM, etc.) on the windows platform |
demand the installation of the complete ACE library. One of the action items |
and effectively provides the functions of these utilities that GNUMAKE |
for the future is to provide a more limited ACE library and possibly even to |
needs. MU is not required on UNIX or LINUX platforms. |
provide an environment independent of ACE. |
|
| |
2. To simplify the building of Pegasus across multiple platforms we have |
NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory. |
standardized on a set of build tools including: GNUMAKE. We are using GNUAKE |
You must build it separately. MU source code is part of the distribution |
4.79.1 successfully both in Windows and Linux environments. |
in the directory src/utils/MU with its own make file. You must compile MU |
|
before you initiate the Pegausu make. |
| |
GNUMAKE is available from |
NOTE: A copy of the binary is made available as a zip file on the Pegasus |
|
WEB site. |
| |
http://www.gnu.org |
Again, MU is used ONLY if you are using Windows. |
| |
ATTN: I think we need to make our version available on the TOG site. |
|
| |
COMMENT: Unless other users of Pegasus demand it, we will NOT create any build |
3. FLEX and BISON - These tools were used to develop the MOF compiler and WQL |
environment for Pegasus that does not require GNUMAKE (e.g., Visual C++). We |
parser. Anybody intending to recompile the compiler or parser from scratch |
are open to other developers who want to contribute other build structures for |
will be required to have these tools. They are only required if changes need |
particular environments. |
to be made to the files for parsing and compiling. |
| |
| |
3. MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE, |
4. DLCOMPAT - dlcompat is a dlopen(3) et.al. compatibility library for |
we have created a utility called MU.exe. This utility is required for Pegasus |
Mac OS X/Darwin. |
make with Windows environment. It is provided as an alternative to requiring a |
|
number of UNIX utilities (SH, RM, etc.) on the windows platform and |
|
effectively provides the functions of these utilities that GNUMAKE needs. |
|
MU is not required on UNIX or LINUX platforms. |
|
| |
NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory. |
NOTE: The dlcompat is not distributed with pegasus source. |
You must build it separately. MU source code is part of the distribution |
|
in the directory src/utils/MU with its own make file. You must compile MU |
|
before you initiate the Pegausu make. |
|
| |
NOTE: We will make a copy of the binary available on the MSB WEB site to |
dlcomapt is available from |
eliminate the requirement to build this utility. |
|
|
http://www.opendarwin.org/projects/dlcompat/ |
|
|
|
Again, dlcomapt needs to be installed ONLY if you are using Mac OS X/Darwin. |
| |
4. FLEX and BISON - These tools were used to develop the compiler, anybody |
|
intending to recompile the compiler from scratch will be required to have |
|
these tools. |
|
| |
5. DOC++ - The Pegasus documentation is taken from a combination of text files | 5. DOC++ - The Pegasus documentation is taken from a combination of text files |
and the Pegasus header files themselves. This documentation is formatted with |
and the Pegasus header files themselves. This documentation is formatted |
DOC++ and GAWK. These tools are required if the documentation is to be |
with DOC++ and GAWK. These tools are required if the documentation is to |
recreated but we expect that only the core team will be recreating |
be recreated but we expect that only the core team will be recreating |
documentaiton. | documentaiton. |
| |
| |
The Pegasus Directory Structure |
5. The Pegasus Directory Structure |
=============================== |
=================================== |
| |
Pegasus is distributed as a complete directory structure that should be | Pegasus is distributed as a complete directory structure that should be |
installed either from one of the snapshots or from CVS. | installed either from one of the snapshots or from CVS. |
|
|
| |
Pegasus Pegasus Root directory | Pegasus Pegasus Root directory |
| |
|
|
build Default destination for runtime if PEGASUS_HOME |
|
is not specified. Does not exist if PEGASUS_HOME |
|
is specified |
|
|
|
|
|
cgi Source for the Pegasus WEB Based Test client | cgi Source for the Pegasus WEB Based Test client |
cgi-bin CGI Directories for WEB demonstration. | cgi-bin CGI Directories for WEB demonstration. |
This directory is normally empty but can | This directory is normally empty but can |
|
|
from cgi. | from cgi. |
htdocs HTML Pages for Pegasus WEB emonstration | htdocs HTML Pages for Pegasus WEB emonstration |
doc Miscellaneous Pegasus Documents. | doc Miscellaneous Pegasus Documents. |
DevManual Source and build files for developes manual |
DevManual Source and build files for developers' manual |
mak General make files (used by other makes) | mak General make files (used by other makes) |
src All Pegasus Source Files | src All Pegasus Source Files |
ACEExample Test directrory with examples of the use of ACE |
ACEExample Test directrory with examples of the use of ACE (obsolete). |
Clients Source for various test clients and client SDK | Clients Source for various test clients and client SDK |
CGICLIENT Pegasus test client that uses a WEB browser | CGICLIENT Pegasus test client that uses a WEB browser |
|
JAVA Java Client support modules |
Pegasus | Pegasus |
Client Pegasus Client API Tests | Client Pegasus Client API Tests |
depends | depends |
tests | tests |
Common Pegasus Common Functions (C++ source and headers | Common Pegasus Common Functions (C++ source and headers |
tests Test programs for the common functions | tests Test programs for the common functions |
|
Compiler Pegasus MOF compiler |
|
Config TBD |
|
Consumer TBD |
|
ControlProvidersImplementation of Pegasus internal providers |
|
ExportClient TBD |
|
ExportServer TBD |
|
Handler TBD |
|
HandlerService TBD |
|
IndicationService TBD |
|
Listener TBD |
Protocol Pegasus Client HTTP/XML Protocol Modules | Protocol Pegasus Client HTTP/XML Protocol Modules |
depends | depends |
Provider Pegasus Provider interface functions | Provider Pegasus Provider interface functions |
Repository Pegasus Repository Interfaces and Simple |
ProviderManager Provider Manager service that manages providers |
Repository |
ProviderManager2Pluggable Provider Manager service |
|
Repository Pegasus Repository Interfaces and Simple Repository |
tests Tests for Repository Functions | tests Tests for Repository Functions |
|
Security TBD |
Server Pegasus Server Modules | Server Pegasus Server Modules |
|
WQL TBD |
Providers Pegasus test and required providers | Providers Pegasus test and required providers |
|
generic TBD this and following |
Utils |
IndicationConsumer |
|
Linux |
|
ManaedSystem |
|
slp |
|
statistic |
|
sample |
|
testproviders |
|
|
|
Server Pegasus executable build |
|
slp |
|
StandardIncludes |
|
tools MU and other utilities written for Pegasus support |
|
Unsupported Code that is made available but is not supported or included |
|
in the normal make. |
|
WMIMapper Pegasus implementation that implements mapping to Microsoft |
|
WMI objects. |
| |
Runtime Directories | Runtime Directories |
$PEGASUS_HOME$ Home directory for runtime. All compiler, linker | $PEGASUS_HOME$ Home directory for runtime. All compiler, linker |
|
|
Manual HTML output of the Pegasus Manual | Manual HTML output of the Pegasus Manual |
lib Destination for Pegasus LIB modules | lib Destination for Pegasus LIB modules |
obj Destination for object modules | obj Destination for object modules |
Repository This Directory containes the created repository |
repository This Directory contains the created repository |
| |
| |
In the near future we will add directories for: |
6. Installation |
|
================ |
| |
Service Extensions |
Pegasus today is provided only as a source distribution. |
Servers - Today the server executable is built from /server/test. |
|
| |
Installation |
To install Pegasus, you must check it out using CVS (Common Version System) |
============ |
or download the snapshot. You download, compile, and use it. |
| |
Pegasus today is provided only as a source distribution. You download compile |
For the snapshot, the installation of Pegasus involves expanding the snapshot |
and use it. Pegasus currently compiles and runs under both Linux and Windows |
distribution files, building the runtime, the test files and test clients, and |
NT environments. |
building the repository. |
|
|
The installation of Pegasus involves expanding the snapshot distribution |
|
files, building the runtime, the test files and test clients, and building the |
|
repository. |
|
|
|
NOTE: Since the compiler integration is not complete today, the class |
|
repository is populated from the XML defintions for the complete CIM schema. |
|
This process is included in the build process so that at the end of a complete |
|
build, the class repository is completely populated from the CIM 2.4 release |
|
schema. |
|
|
|
|
|
Building from a Distribution --- General |
|
======================================== |
|
|
|
Pegasus is buildable and runnable on either Linux or WIndows Platforms today. |
|
It uses a common build system for the two platforms based on build files in |
|
each directory, a recursive build strucutre to execute the multiple makes and |
|
GUNMAKE. |
|
|
|
Generally we support the followingtargets in our make system: |
|
|
|
|
|
C:\> make clean - Clean out all objects, libs, and executables |
|
C:\> make depend - Create the dependencies |
|
C:\> make |
|
C:\> make tests - Execute all tests except client server tests |
|
C:\> make rebuild - Clean and rebuild including the respository |
|
C:\> make world |
|
| |
The Pegasus Client server tests are executed separately from the above because |
|
they require the initiation of separate process for the Pegasus server and |
|
Pegasus client. These tests can be executed as follows: |
|
| |
ATTN: Add the procedure for Client/Server Test start here. |
7. Building Pegasus |
|
===================== |
| |
|
1. Check that you have requisite programs (listed in Pegasus Dependencies). |
| |
For information on particular installation characteristics, tools, etc. for |
These include GNU Make, MU.EXE (if using Windows), Flex, and Bison (Flex |
each platform see |
and Bison only required if changes will be made to the MOF compiler or WQL |
the appropriate sections below: |
parser),dlcompat (if using Mac OS X/Darwin). |
| |
Generally the build commands are as follows: |
Be sure these are on your path. |
| |
1. There is a Makefile in the Pegasus root. Simply executing make in the |
|
Pegasus root directory will make everything. Make rebuild will clean and |
|
rebuild everything. |
|
| |
2. In order to provide a working class repository for Pegasus until the |
2. Define the following three environment variables: |
MOF compiler is integrated, There is a utility to load the CIM Schema from |
|
XML into the repository. This executes the LoadRepository executable which |
|
is defined in |
|
| |
pegasus/src/Pegasus/Repository/tests/LoadRepository |
PEGASUS_ROOT - this should be the "pegasus" directory you've pulled from CVS |
| |
with the binary in pegasus/bin. This program will load the CIM XML |
PEGASUS_HOME - to point to a directory to contain output binary files |
repository definitions into the class repository. |
(e.g., set it to $HOME/pegasus_home). Then the output will go into |
|
$HOME/pegasus_home/bin and $HOME/pegasus_home/lib |
| |
3. To test a fresh release, go to the pegasus root and type |
PEGASUS_PLATFORM - this must be set to a supported platform identifier. |
| |
"make world". |
This identifier has the following form: |
| |
|
<Operating-System>_<Architecture>_<Compiler> |
| |
This will clean, build dependencies, build binaries, and then run all |
For example (Linux on IA32 platform using the GNU Compiler): |
tests except the Client/Server tests. |
LINUX_IX86_GNU |
|
|
|
For a complete list, refer to the platform_ make files found in directory |
|
pegasus/mak |
|
|
|
|
|
Note: if you plan on doing parallel builds, you might consider setting |
|
PEGASUS_HOME to something like this: |
|
|
|
$HOME/pegasus_home_LINUX_IX86_GNU |
|
|
|
That way, the output of each build will be placed in its own directory. |
|
|
|
3. Now place $PEGASUS_HOME/bin on your path |
|
|
|
and |
|
|
|
Place $PEGASUS_HOME/lib on your LD_LIBRARY_PATH (for Unix only). |
|
For RedHat/SuSE/UL, edit /etc/ld.so.conf and add $PEGASUS_HOME/lib |
|
|
|
4. Change to the root of the Pegasus distrubution and type "make" |
|
(where make refers to GNU make). |
|
|
|
5. Then create the repository, which is needed to serve data. |
|
"make repository" |
|
|
|
6. To test the build type "make tests". |
|
|
|
The following make targets are supported: |
|
|
|
<default> - Build everything. |
|
clean - Clean out all objects, libs, and executables. |
|
depend - Create the dependencies. |
|
repository - Create the repository in $PEGASUS_HOME/repository |
|
tests - Execute all tests (except client server tests). |
|
rebuild - clean, depend, <default> |
|
world - depend, <default> |
|
|
|
The Pegasus Client server tests are executed separately from the above because |
|
they require the initiation of separate process for the Pegasus server and |
|
Pegasus client. To execute these tests please refer to the scripts in |
|
pegasus/mak/BuildMakefile - refer to the prestarttests and poststarttests. |
| |
4. To execute the basic test suite that is shipped with pegasus type |
For information on particular installation characteristics, tools, etc. for |
|
each platform see the appropriate sections below: |
|
|
|
Generally the build commands are as follows: |
|
|
|
1. There is a Makefile in the Pegasus root directory. Simply executing |
|
make in the Pegasus root directory will make everything. "make rebuild" |
|
will clean and rebuild everything. The "make rebuild" will also populate |
|
the repository with the current CIM Schemas. |
| |
"make tests" |
2. To test a fresh release, go to the pegasus root and type |
| |
5. To run the integral unit code tests provided, simply type |
"make world". |
|
|
|
|
|
This will build dependencies, build binaries, and then run all |
|
tests except the Client/Server tests. |
| |
"make tests" |
3. To execute the basic test suite that is shipped with pegasus type |
|
|
|
"make tests". This also reintalls the repository. |
| |
Running "make -s tests" suppresses extraneous output such as the | Running "make -s tests" suppresses extraneous output such as the |
enter/leave directory messages. | enter/leave directory messages. |
| |
6. "Make Clean" removes all object and library files from the structure. |
4. "make clean" removes all object and library files from the structure. |
|
|
| |
Build Variables |
5. A new build system has been added to Pegasus where a new CVS checkout is done, |
=============== |
built, and tests are run. Do it by: "make -f mak/BuildMakefile cleanbuild" |
| |
The build system depends on the following environment variables build set. |
|
These variables must be set as part of the installation of the Pegasus source |
|
tree before you can compile or run Pegasus. |
|
| |
PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must |
8. Populate the Repository |
be set before you initiate make |
=========================== |
| |
PEGASUS_OS_TYPE - optional. The is currently set to windows. If you build |
Before using Pegasus you must populate the repository with the providers. The makefile |
on any platform except windows you must change this before initiating |
does it all for you, but in case you are wondering what it does or how to do it |
make. |
manually: |
| |
PEGASUS_ROOT - Root directory of the Pegasus tree. |
1. Register the MOF (Managed Object Format) file describing the skeleton of the object. |
PEGASUS_HOME - Home directory for all of the Pegasus runtime elements. |
2. Register a second MOF which only points out which lib*.so file to be loaded when a |
If this does not exist, $PEGASUS_ROOT$/build is assumed. |
specific object is activated. |
| |
COMMENTS: In the future, we will probably automate this more. However, |
This is done automatically for the providers included in Pegasus by doing: |
setting these variables today is manual. |
make repository. |
| |
|
The 'make repository' in pegasus/Schemas does three things |
|
Runs MOF compiler (cimmofl) on: |
|
-Schema v2.7 |
|
Generates the CIM Schema v2.7 in the repository (skeleton of CIM objects) |
|
-PG_InterOp |
|
Internal to Pegasus schema for operating (shutdown, add users, etc) |
|
CIM_Indication’s (SNMP, Events, Alert, Threshold, etc) |
|
-PG_ManagedSystem |
|
Registers included CIM Providers (libOSProvider.so, libDNSProvider.so, … ) |
|
in Pegasus (which are located in src/Providers) |
| |
The MU Utility |
For more information about using the MOF compiler, refer to user's manual on the |
============== |
openpegasus.org. |
|
|
|
|
|
9. The MU Utility |
|
=================== |
| |
In order to provide a consistent build structure across multiple platforms, we | In order to provide a consistent build structure across multiple platforms, we |
developed a small utility to provide a consistent set of small utilities | developed a small utility to provide a consistent set of small utilities |
|
|
MU is required to build under the Windows environment.MU is available as part | MU is required to build under the Windows environment.MU is available as part |
of the distribution of Pegasus. | of the distribution of Pegasus. |
| |
Building Pegausu on Linux |
|
========================= |
|
|
|
1. Obtain, unpack and build the ACE_Wrappers package for Linux. |
|
| |
2. Define an environment variable called ACE_ROOT that points to the |
10. Notes about Building Pegasus on Linux |
root of the ACE_WRAPPERS distribution. For example |
=========================================== |
| |
IMPORT PEGASUS_ACE_ROOT=\local\ACE_Wrappers |
No problem. Just make sure you have the environment variables set. |
| |
ATTN: Mike. what is a viable directory for Linux (what do you use) |
|
| |
3. Define an environment variable PEGASUS_ROOT that points to the |
11. Notes about Building Pegasus on Mac OS X/Darwin |
root of the Pegasus Distribution |
===================================================== |
| |
|
No problem. Just make sure you have the environment variables set. |
| |
4. Define the environment variable PEGASUS_HOME where you want the |
|
runtime elements (executables, objects, libraries, etc.) to go. |
|
5. Unpack the ace distribution. |
|
| |
|
12. Notes about Building Pegasus with SSL |
|
========================================== |
| |
6. Append %PEGASUS_ROOT%/bin to your path |
To build with SSL you need the OpenSSL libraries and header files. Make sure |
|
you have them in a standard directory so Pegasus can find them. If that's not |
7. From the %PEGASUS_ROOT% directory build using the make commands |
the case, set the environment varialble OPENSSL_HOME= to point where your OpenSSL |
defined in the section on General Build. |
installation is. |
|
|
make world |
Also have the PEGASUS_HAS_SSL=yes variable set. Then just run 'make' in Pegasus |
make tests |
directory and you will have Pegasus with SSL enabled. See section "Creating SSL |
|
certificates" for more information of how to use SSL. |
Building Pegasus on NT or Windows 2000 With Microsoft Visual C++ |
|
================================================================ |
|
|
13. Building Pegasus on Windows 2000 (SP3 or later recommended) or Windows XP |
Today we build Pegasus on Windows NT using a set of make files contained |
With Microsoft Visual C++ |
in the source distribution, the Microsoft compilers (tested so far with |
====================================================================== |
versions 5 and 6) and the GNUMAKE make utility. The following is the basic |
|
set up steps for the |
Today we build Pegasus on Windows using a set of make files contained |
|
in the source distribution, the Microsoft compilers (DevStudio 5.x is not |
|
supported, Visual Studio 6.0, SP5 supported) and the GNUMAKE make utility.The |
|
following is the basic setup steps for the environment. |
|
|
|
|
|
Setup the environment variables and path for the Micrososft Visual C compiler. |
|
Typically this can be done by running the VCVARS32.BAT file supplied with |
|
Microsoft Visual C++. (contained in the same directory as cl.exe). |
|
|
|
For Windows, try the following for an example environment: |
|
|
|
REM call the standard Microsoft .bat for VC 6 setup. |
|
call 'C:/Program Files/Microsoft Visual Studio/VC98/Bin/Vcvars32.bat' |
|
REM Set debug to something if you want compile in debug mode |
|
set PEGASUS_DEBUG=true |
|
REM set PEGASUS_ROOT to top of source tree |
|
set PEGASUS_ROOT=C:/cimom/pegasus |
|
REM set PEGASUS_HOME to where you want repository and executables |
|
set PEGASUS_HOME=%PEGASUS_ROOT% |
|
REM setup the path to the runtime files. |
|
set path=%path%;%PEGASUS_HOME%/bin |
| |
1. Setup the environment variables and path for the Micrososft Visual C |
14. Installing the Pegasus HTML Test Client: |
compiler. Typically this can be done by running the VCVARS32.BAT file |
============================================= |
supplied with Microsoft Visual C++. (contained in the same directory |
|
as cl.exe). |
|
| |
2. Define an environment variable called ACE_ROOT that points to the |
This is a separate test tool that allows Pegasus requests to be initiated from |
root of the ACE_Wrappers distribution. For example: |
any WEB browser and that uses a WEB browser, CGI scritps and HTML pages for |
|
the formating and connections. It requires a WEB server, etc. The |
|
instructions for setting up this environment are maintained in a separate |
|
readme in the CGI directory. |
| |
C:\> set PEGASUS_ACE_ROOT=c:/ACE_wrappers |
|
| |
Now append %ACE_ROOT%/bin to the path like this: |
15. Development with Pegasus and Pegasus Tools: |
|
================================================ |
| |
C:\> set path=%path%;%PEGASUS_ACE_ROOT%/bin |
ATTN: This section needs to be completed. It should reference the more |
|
complete documentation |
|
ATTN: Write about providers? |
| |
3. Define an environment variable called PEGASUS_ROOT that points to |
|
the root of the Pegasus distribution. For example: |
|
| |
C:\> set PEGASUS_ROOT=c:/pegasus |
16. Commands: |
|
============= |
| |
|
The manpages for each of the commands are in rpm/manLinux/man1.Z directory (on CVS) |
| |
4. Setup the PEGASUS_HOME environment variable |
To see simple help for each of the commands, use the "-h" flag. |
set PEGASUS_HOME=c:/PegasusRun |
Examples: |
|
bin/cimserver –s (Shuts it down) |
|
bin/cimserver traceLevel=4 traceComponents=ALL (starts server with config flags) |
|
bin/cimprovider –l –s (lists providers and their status) |
|
bin/cimprovider –e –m OperatingSystemModule (enables the OperatingSystem provider) |
|
bin/cimuser –a –u guest –w ThePassword |
|
bin/cimuser –l (lists the users) |
|
bin/tomof CIM_Config (extract CIM_Config from repository and present it in MOF type) |
| |
Now append %PEGASUS_HOME%/bin to your path like this: |
|
| |
set path=%path%;%PEGASUS_HOME%/bin |
17. Creating SSL certifications |
|
================================ |
| |
5. Unpack and build the ACE_Wrappers distribution for windows. |
Please follow section 11, titled "Notes about Building Pegasus with SSL" |
|
before embarking on this endeavour. |
| |
As an example, we created a file called %ACE_ROOT%/ace/config.h |
Type these commands in your shell to create the SSL certifications. The PEGASUS_ROOT |
containing the following: |
and PEGASUS_HOME have to be set to your respective installation and source directory. |
| |
#include "ace/config-win32.h" |
CN="Common Name" |
|
EMAIL="test@email.address" |
|
HOSTNAME=`uname -n` |
|
sed -e "s/$CN/$HOSTNAME/" \ |
|
-e "s/$EMAIL/root@$HOSTNAME/" $PEGASUS_ROOT/src/Server/ssl.cnf \ |
|
> $PEGASUS_HOME/ssl.cnf |
|
chmod 644 $PEGASUS_HOME/ssl.cnf |
|
chown bin $PEGASUS_HOME/ssl.cnf |
|
chgrp bin $PEGASUS_HOME/ssl.cnf |
| |
and then opened this DSW file in MSVC++ IDE: |
/usr/bin/openssl req -x509 -days 365 -newkey rsa:512 \ |
|
-nodes -config $PEGASUS_HOME/ssl.cnf \ |
|
-keyout $PEGASUS_HOME/key.pem -out $PEGASUS_HOME/cert.pem |
| |
%ACE_ROOT%/ace/ace.dsw |
cat $PEGASUS_HOME/key.pem $PEGASUS_HOME/cert.pem > $PEGASUS_HOME/server.pem |
|
cp $PEGASUS_HOME/cert.pem $PEGASUS_HOME/client.pem |
|
rm $PEGASUS_HOME/key.pem $PEGASUS_HOME/cert.pem |
| |
From the build menu we picked "ace.dll". For me it built without |
18. Configuring Pegasus to use SSL |
complaint. |
================================ |
| |
The ACE package can be built in several configurations: |
Please follow section 11 and 16 before reading this section. |
| |
ace.dll - The basic package without debugging |
To configure Pegasus to take advantage of SSL, configure |
aced.dll - debugging added to the basic package |
CIMserver to have the following configuration options set to: |
acemfc.dll - ACE with Microsoft MFC support |
|
acemfcd.dll - The ACE MFC version with debugging. |
|
| |
ace.dll is used for the server build acemfc is used for the client |
sslTrustFilePath=client.pem |
builds. |
sslCertificateFilePath=server.pem |
|
sslKeyFilePath=file.pem |
|
httpsPort=5989 |
|
enableHttpsConnection=true |
| |
NOTE: In the near future we will be building debugging options into |
using the 'cimconfig' utility: |
Pegasus and at that time the aced and acemfcd libraries will also be |
|
required. |
|
| |
Each library can be built separately from Microsoft Visual C++. |
cimconfig -p -s enableHttpsConnection=true |
| |
6. Unpack the Pegasus distribution. On Windows systems, PKzip25 or |
(The client.pem and server.pem are the certifications |
WINZIP can be used. Be certain to use the option that expands the |
files created per the steps in the earlier section). |
directory tree of the files. This expansion will create a directory |
|
called ./pegasus |
|
| |
If you are using pkzip25.exe do this: |
For good riddance you might consider closing down |
C:\> pkzip25 -extract -recurse -directories pegasus.zip |
the cleartext 5988 port. Modify your CIMserver to |
|
(using 'cimconfig') to have the option: |
| |
This will create a directory tree called ./pegasus under the |
enableHttpConnection=false |
current directory. |
|
| |
|
19.PAM Authentication |
|
=================== |
| |
7. Change directory to %PEGASUS_ROOT% and type "make world". See the |
In order to use PAM Authentication you have to compile Pegasus |
general build section for the full set of make commands. |
with one extra enviroment flags: |
| |
This builds Pegasus and all of its examples. |
PEGASUS_PAM_AUTHENTICATION=1 |
| |
7. To verify that it built okay, run the tests |
You can also set the PEGASUS_ALWAYS_USE_PAM=1 flag to disable |
|
Pegasus password authentication using a flag text-file (recommended). |
| |
make tests |
After compiling (refer to section 17 for details), follow these two |
|
important steps: |
| |
Installing the Pegasus HTML Test Client |
a). Copy the rpm/wbem file in-to /etc/pam.d directory. |
======================================= |
This notifies PAM what kind of libraries to use when authenticating |
|
Pegasus. |
|
b). Modify CIMserver configuration options: |
| |
This is a separate test tool that allows Pegasus requests to be initiated from |
usePAMAuthentication=true |
any WEB browser and that uses a WEB browser, CGI scritps and HTML pages for |
enableAuthentication=true |
the formating and connections. It requires a WEB server, etc. The |
|
instructions for setting up this environment are maintained in a separate |
|
readme in the CGI directory. |
|
| |
Development with Pegasus and Pegasus Tools |
And if you want to allow 'root' (*not recommended*) |
========================================== |
enableRemotePrivilegedUserAccess=true |
| |
ATTN: This section needs to be completed. It should reference the more |
using the 'cimconfig' operation, such as: |
complete documentation |
|
|
cimconfig -p -s usePAMAuthentication=true |
|
|
|
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 16 for more details on creating and using SSL keys. |
|
|
|
20. Testing with ICU enabled: |
|
============================== |
|
|
|
ICU (International Compoments for Unicode) refers to the set of libraries that |
|
Pegasus uses to run globalized. For example: these libraries are used to |
|
load messages in different languages, format currency and numbers according to |
|
a specific locale etc. In order to enable globalization in Pegasus, Pegasus |
|
must be built with ICU enabled, ie. the right environment variables must be |
|
set prior to running "make". Refer to the GlobalizationHOWTO.htm in the docs |
|
directory for details. That said, when users run "make poststarttests" |
|
to verify the integrity of a Pegasus download, a series of tests are run that |
|
require the cimserver to be running. These tests currently depend on specific |
|
messages returned from the server. When ICU is enabled, all messages come |
|
from the resource bundles and these usually do not match the hardcoded |
|
default messages within Pegasus. These hardcoded default messages |
|
are what the various test programs expect in order to complete |
|
successfully. If the ICU enabled server is started without |
|
disabling message loading from the bundles, "make poststartests" will fail. |
|
In order to run "make poststarttests" successfully with ICU enabled, an |
|
environment variable called PEGASUS_USE_DEFAULT_MESSAGES must exist prior to |
|
starting the server. Once this is defined, when the cimserver starts, all |
|
messages generated will be the default hardcoded messages. This will enable |
|
"make poststarttests" to complete successfully. Once "make poststarttests" is |
|
complete, you should stop the cimserver and then undefine PEGASUS_USE_DEFAULT_MESSAGES. |
|
If this variable is left defined, Pegasus will not be able to load messages |
|
using ICU resource bundles. |
| |
|
21. Documentation: |
=================== | =================== |
Documentation |
|
| |
The documentation is currently in preperation. The preliminary documentation | The documentation is currently in preperation. The preliminary documentation |
is not provided with this snapshot but is avialable from the OpenGroup Pegasus | is not provided with this snapshot but is avialable from the OpenGroup Pegasus |
|
|
documentation in the future and today is the source of most discussion and | documentation in the future and today is the source of most discussion and |
design documentation. | design documentation. |
| |
Participate! |
|
============ |
|
We are looking for people who want to join the Pegasus work group and |
|
contribute to effort of getting this Pegasus off the ground. Please send |
|
email for details to k.schopmeyer@opengroup.org or m.kirk@opengroup.org or |
|
m.brasher@opengroup.org |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
22. Participate! |
|
================= |
| |
|
We are looking for people who want to join the Pegasus work group and |
|
contribute to effort of getting this Pegasus off the ground. Please join |
|
the mailing list by visiting www.openpegasus.org, and click on Mailing Lists. |