Comments in-line:

On 09/29/10 04:34 PM, William Schumann wrote:
Proposed:
Static, vs. Dynamic, vs. first boot:
Static: offer XInclude and templating of known criteria at installadm time. Resolve all templating and inclusions and store the finalized profile within the AI server space. The static option is specified once in the profile (e.g.,<!-- AI[inclusion=installadm] -->, or some encoding solution friendly to DTD service_bundle).


I'd be inclined to defer the templating yet.
To be clear, by templating here, I'm just referring to substituting in criteria values taken from the AI client: IP, hostname, network, memory size, service, MAC.
e.g. ${AI_MAC}  ${AI_HOSTNAME}
(see Python Template class, method 'substitute' http://docs.python.org/library/string.html#template-strings )

Dynamic
- at install time: If user specifies a command, run it and take its sysout as the starting profile. From the profile, perform templating of known criteria, and perform XInclude inclusions. (re: XInclude, this is the default.) - at installadm time: DTD-validate profiles and store profile filenames in AI database, SC table, according to service, MAC, or other criteria.


Why both templating and the command?  The case for doing both seems weak.
Templating in the sense I mean here, is just substituting in values. It's much simpler than having the a user-defined script and can eliminate the need for it in some circumstances.

Inhibit inclusions and any dynamic processing (to support XInclude inclusions for files available only at first boot). This option is specified once in the profile (as with Static): e.g.,<xi:include href=”<first boot profile path>”<!-- AI[inclusion=inhibit] --> >


With regards to the plain text table- and template-driven proposal, I would move this to a section for alternatives discussed, not proposed. In any event, this sort of processing can be provided through scripts that could be provided as plug-ins, which would make them more flexible and customizable.


installadm changes: only to recognize profile-related subcommands and call the appropriate handler script.

wanboot client, wanboot server: 5.2.7.5
After looking into the wanboot process, I think that wanboot/wanboot-cgi should not be used at all,
I mean, wanboot/wanboot-cgi should not be used at all to deliver SC profiles.
n favor of a new webserver that refers to the same certificates (presently put on the client by the wanboot) to authenticate the client. On SPARC, The wanbootfs provides the certificates to the AI client securely with the wanboot HMAC and key insertion into write-only OBP.

Please elaborate on your reasoning here, as replacing this existing infrastructure requires significant justification.
To deliver SC profiles, it doesn't have to be replaced. I'm proposing a rather minimal client/server solution for profiles. Security certificates are shared with wanboot-cgi. SPARC would still boot the same. In fact, no changes to wanboot or wanboot-cgi would be necessary (other than the /etc/netboot hierarchy modifications I heard have been proposed elsewhere).

The work involved to make wanboot/wanboot-cgi handle profiles for either just SPARC or both platforms would be considerable, for reasons listed in the design document. (more reasons available on request). Here's the proposed process (first without security):

New AI client script:
leverages ai_get_manifest.py to fetch AI client criteria
sends criteria via POST
New SC profile CGI script (possibly done as part of whatever mechanism is used to send AI manifests):
takes criteria and sets environment variables in CGI
invokes the SC locator script (or perhaps a Python method):
SC locator is driven entirely off of AI client criteria
SC locator does database lookup for profiles
SC locator packages up all profiles into a single MIME-encoded string
SC locator writes the string to stdout (we're in CGI, so it's packaged up and sent to the AI client script) New AI client script decodes the output, writing the profiles to /etc/svc/profiles with generated filenames.

With security added in:
SPARC:
wanboot already provided security certificates to the client - the New AI client script uses them to formulate the HTTPS request.
Apache does server authentication and calls the New SC profile CGI script
The New SC profile CGI script finds corresponding client certificate and key info in /etc/netboot hierarchy just like wanboot-cgi
Python SSL/TLS code does the client authentication in the New CGI script
x86:
similar, but see below

The only major part from the proposal that I haven't prototyped yet is the client authentication.

Also, the source of the URL needs to be decided upon - will have to work with AI webserver designers on that.
RE: x86:
PXE has limitations from having a true secure initial boot file download, so the certificates provided by SPARC securely thanks to OBP must be specified some other way on x86. Solutions for the client obtaining the security certificates include:
- certificate server
- providing certificates on install media
- reading certificates from removable media
- copying certificates from locally secure source

AI client changes: 5.7.2.2 Boot process - describes what has to happen on the AI client side. Will add description of AI client script to fetch the profiles (getting criteria, http request/response, handling multiple profiles). Some implementation details are still to be decided (request URL determination, wanboot interaction).


This definitely needs fleshing out. I was unclear as to why a second request, with seemingly similar (if not identical) input, is required to obtain the configuration manifest.
One of the project requirements is to decouple AI manifests from SC profiles. I take this as meaning the fetching process as well.

William
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to