A key piece in developing your solution is creating components. In the N1 Grid Service Provisioning System environment, components are deployable objects. Some examples of the objects you might have in components include the following:
A collection of files and directories
Archive files, such as JAR files or EAR files
Complete applications, including all needed resources
Specific application resources, such as configuration files or documentation
For information about creating components by using the N1 Grid Service Provisioning System browser interface, see How to Create a Component in N1 Grid Service Provisioning System 5.0 Plan and Component Developer’s Guide.
Simple components contain a single physical resource, such as a file, directory, archive file, or application. Simple components do not reference other components.
Composite components only reference other simple or composite components. Composite components do not directly contain any physical resources.
The following XML example shows a simple component that extends the system component type system#CR Simple Base to contain a JAR file. For more information about the specific elements and attributes used to define a component, see Chapter 3, Component Schema, in N1 Grid Service Provisioning System 5.0 XML Schema Reference Guide.
<?xml version="1.0" encoding="UTF-8"?> <component xmlns='http://www.sun.com/schema/SPS' name='plugin-core.jar' version='5.0' description='Jar file implementation of core plugin services' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' author='system' softwareVendor='Sun Microsystems' path='/system' xsi:schemaLocation='http://www.sun.com/schema/SPS component.xsd'> <extends> <type name='system#CR Simple Base'> </type> </extends> <resourceRef> <resource name='/system/plugin-core.jar' version='1.1'> </resource> </resourceRef> </component>
When you create a component or plan, you can define variables to use when that component is deployed or the plan is executed. Many component types include common variables, such as installPath, which defines where to install the component. The value of the installPath variable is determined for a given host when the component is installed on that host.
Some common variables that you might see include the following:
installPath – Path to where the component, plug-in, or other resource file is installed
installUser – Login name of the user who installed the component, plug-in, or other resource file
pluginClasspath – Path to where the classes that apply to a specific plug-in are installed
A variable can refer to another variable, such as the variable of a container component. For example, the value of the installPath variable for a simple component could be the value of the installPath variable for its parent container component.
When defined, each variable must have a name and a default value attribute. The default value can be obtained from several places:
A literal string
The host, using the target keyword
Another component, using the component keyword
The user's session, using the session keyword
For detailed information about using these attributes, see Types of Variables Available for Substitution in N1 Grid Service Provisioning System 5.0 Plan and Component Developer’s Guide.
You can define a variable through the browser interface or directly in the XML file. Within the XML file, variables are defined using the <var> element and contained within a <varList> element.
The following XML fragment shows several variable definitions.
<varList> <var name='installPath' default=':[target:sys.raDataDir]:[/]systemcomps'> </var> <var name='pluginClasspath' default=':[installPath]:[/]plugin-core.jar'> </var> <var name='fileBrowser' default='com.sun.n1.sps.pluginimpl.system.browse.FilesystemBrowserFactory'> </var> <var name='directoryBrowser' default='com.sun.n1.sps.pluginimpl.system.browse.FilesystemBrowserFactory'> </var> <var name='symlinkBrowser' default='com.sun.n1.sps.pluginimpl.system.browse.FilesystemBrowserFactory'> </var> </varList>
A configuration template is a special type of file component. The configuration template enables you to do token substitution in a file that you are deploying. An example of this usage would be deploying the DNS /etc/resolv.conf file. The goal for deployment might be to have the file use a variable substitution and use a host type attribute to define the closest DNS server. The configuration template might look like the following example:
search :[search_path] nameserver :[primary_dns] nameserver :[secondary_dns]
In this case, the configuration template would automatically create component variables called search_path, primary_dns, secondary_dns. Then you could use variable substitutions in plans or component controls to provide appropriate values.
To designate a file component as a configuration template, select “configuration template” in the Options section of the Component Details page.