Ethan
On 06/30/10 06:53 PM, Ethan Quach wrote:
On 06/30/10 06:36, William Schumann wrote:
On 06/24/10 04:55 PM, Dave Miner wrote:
On 06/24/10 10:47 AM, William Schumann wrote:
...
So, the wanbootfs could be used by the webserver to store the AI
and SC manifests for upload. Once the wanbootfs is mounted on the
client, the AI and SC manifests can be copied to their final
destinations.
My only quibble is with the assumption that SC manifests are
specified in the AI manifests. We could just as easily use criteria
to associate SC manifests to client sets and properly include them,
were that judged to meet the requirements better.
I don't see any requirements relating to criteria, other than service
name and CID (01+MAC). The AI manifest has complex criteria
concerns, but the SC manifest does not.
Now, given only the service name and CID as criteria, here are a
couple of alternatives to specifying SC manifests in the AI manifest.
(Assumption: the following assumes wanboot-cgi as the webserver,
since it the idea has been floated and since wanboot-cgi is presently
used for SPARC AI, but another AI webserver design could supply the
same functionality)
Alternative 1) put the SC manifest file paths in wanboot.conf
wanboot-cgi could be modified generally such that wanboot.conf could
supply a list of filenames and wanbootfs destination paths. AI
writes the filename, destination path pairs to a wanboot.conf using a
keyword, "wanbootfs_include":
wanbootfs_include <SC manifest source files> <destination
directory relative to wanbootfs root>
wanbootfs_include /usr/lib/sc_manifest.xml /etc/sc_manifest/
The AI server presently uses wanboot.conf for SPARC custom clients.
wanboot.conf is copied to /etc/netboot/<net-IP>/<CID>/, updated with
the image information during 'installadm create-client'.
I think that the biggest hazard with this is binding the wanboot.conf
with the responsibility of managing SC manifest files. For example,
for a site with many custom clients, but only one SC manifest for
all, the path of that manifest would be replicated in each
wanboot.conf, which goes contrary to principles of scalability, and
the replication could also make tedious management problems when
changes are needed. More on this below.
But the wanboot.conf file is automatically generated by the installadm
tool
per client and per service, so I don't see any hazard of scalability
here since
its not exposed to the user. Its not something the user has to maintain.
OK. Also, I did not sufficiently clarify that if the /etc/netboot
hierarchy is searched for the files to include, they do not need to be
copied, and so it is not a scalability issue.
Alternative 2) put the SC manifest files in the /etc/wanboot
hierarchy under a known directory name: e.g., "sc_manifest/"
In wanboot, client authentication and encryption can be either
customized for individual clients, or a default can be created for
the network or wanboot-cgi server, depending on where the
wanboot.conf and security files are placed in the hierarchy:
/etc/wanboot/<network IP>/<CID> where CID is "01"+MAC address. In
2), suggest that if a directory "sc_manifest/" is found in the
hierarchy, all .xml files in that directory are taken to be SC
manifest files for that CID or server. For wanboot-cgi to do this in
a generalized way, suggest adding a slightly different directive from
wanbootfs_include (in 1), except that a script is specified that,
given QUERY_STRING, outputs a list of pairs of files and
wanbootfs-relative destination pathnames:
wanbootfs_include <script> <destination path>
The script in this case is provided by the AI server and its function
is to locate the SC manifest files in the hierarchy and to output the
filenames and destination paths:
wanbootfs_include /usr/sbin/sc_manifest_fetch.py /sc_manifest/
Note: this doesn't have to be done with a script at all - it could be
done by wanboot-cgi. The script name could be replaced with the name
of a directory for wanboot-cgi to search for in the hierarchy (e.g.,
"sc_manifest/")
Barring my statement above, I don't what other advantages running a
script
has over simply using what you described in 1.
One advantage is that the wanboot.conf does not need to contain the SC
manifest file names (thus avoiding the awkwardness and potential bugs of
wanboot-cgi having to deal with any wanboot.conf files that only exist
to contain SC manifest filenames) - the SC manifest files are found
automatically by scanning the hierarchy. Another difference - perhaps
an advantage - is that the SC manifests can be contained and protected
in the /etc/netboot hierarchy. The user doesn't have to worry about
file protections on externally maintained SC manifest files.
wanbootutil is responsible for placing the security files in the
hierarchy, and the same logic and perhaps code can be used to place SC
manifest files.
A workaround for alternative 1) is for wanboot-cgi to walk the
hierarchy looking for manifest files in any wanboot.conf - not just
the wanboot.conf for the custom client.
The biggest downside to using wanboot.conf (1) is that it may
necessitate copies of wanboot.conf that are ignored, or just used for
the wanbootfs_include facility. wanboot-cgi may need to be altered
to distinguish between these to avoid bugs from missing wanboot.conf
information.
There are two main possibilities for including files for 1) and 2)
hierarchically:
- include all files in the hierarchy at all levels where include
files are specified
- include from the hierarchy only files in the most specific criteria
(i.e., furthest down in the hierarchy) where include files are specified
Since the latter can always XInclude other manifests, I would opt for
the latter.
Given options for locations of SC manifests:
0) AI manifest
1) wanboot.conf
2) sc_manifest/ directory in hierarchy
I think that using the AI manifest is the most straightforward and
the least in need of a UI
Storing references to the SC manifest inside the AI manifest would seem
to present the exact disadvantage you're describing for Alternative 1.
Indeed. I think this was addressed in another thread - this could be
counteracted through use of replacement tags representing service, CID,
and perhaps other criteria, to do install-time substitutions. If
scalability is a criteria, use of replacement tags with a naming scheme
could be powerful. Consider naming scheme /etc/sc_manifest/<CID>.xml -
the <CID>.xml contains only client-specific SC properties. XInclude
could try to include that file, and fallback to a default if it were
missing, for example.
The replacement tag could be in the AI manifest, but better if it were
in a top-level SC manifest that was included directly by the AI
manifest. Perhaps this seems like too much trouble, but I really think
that leveraging replacement tags makes XInclude dynamic and useful.
In addition, if we stored references to the SC manifest inside the AI
manifest,
how does that make use of the wanbootfs? My understanding of storing the
reference of the SC manifest inside the AI manifest means that the AI
client
has to subsequently fetch the SC manifest, after it parses the AI
manifest, etc.
For sparc usage, it would be preferable if the SC manifest came along
inside
the wanbootfs that was used for the original boot.
I've been assuming here that the AI manifest could be included in the
wanbootfs along with SC manifest across platforms. is there something
wrong with this?
William
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss