|
1 |
|
2 =pod |
|
3 |
|
4 =head1 NAME |
|
5 |
|
6 B<openpkg register> - OpenPKG Registry Command-Line Client |
|
7 |
|
8 =head1 SYNOPSIS |
|
9 |
|
10 B<register> [-u|--user=<user|token>] [-l|--link=<token>] [I<-d|--desc=<text>>] |
|
11 [-m|--mode=fake|post|wipe] [I<-a|--args=<args>>] |
|
12 [I<--plat=<text>>] [I<--orel=<text>>] [I<--uuid=<file>>] |
|
13 [I<--conf=<file>>] [I<--prep=<file>>] [I<--tran=<file>>] |
|
14 [I<--util=<file>>] [--data=<tag>[,<tag>...]] |
|
15 [I<-P|--preparation>] [I<-T|--transaction>] |
|
16 [I<-U|--utilization>] [I<-C|--convenience>] |
|
17 [I<-I|--interaction>] |
|
18 [I<-v|--verbose>] [I<-h|--help>] |
|
19 |
|
20 B<register> -S|--printstatus |
|
21 |
|
22 B<register> -R|--rewriteurls [I<url> ...] |
|
23 |
|
24 =head1 DESCRIPTION |
|
25 |
|
26 B<openpkg register> is the Command-Line Client the OpenPKG Registry. It is |
|
27 used by administrators to register an instance with the OpenPKG Registry for |
|
28 later association. |
|
29 |
|
30 After association, B<openpkg register> can be used for repetitive |
|
31 reregistrations which update the heartbeat of the instance on the Registry |
|
32 server, avoiding premature depature from the database. It is assumed that |
|
33 every instance will be reregistered daily. Dormant |
|
34 instances might be discarded from the Registry, revoking their access to |
|
35 additional resources. |
|
36 |
|
37 =head1 PRIMARY OPERATIONS |
|
38 |
|
39 The following primary operations are available: |
|
40 |
|
41 =over 4 |
|
42 |
|
43 =item B<-h>, B<--help> |
|
44 |
|
45 Display brief usage message. |
|
46 |
|
47 =item B<-v>, B<--verbose> |
|
48 |
|
49 Display progress information during data posting. |
|
50 |
|
51 =item B<-P>, B<--preparation> |
|
52 |
|
53 Execute the primary operation "preparation". |
|
54 Creates registry data for one request and dumps it stdout |
|
55 in XML format. That request can be filtered and piped into |
|
56 the transaction phase or it can be copied and pasted into the |
|
57 XMLdump CGI facility manually. |
|
58 A copy of the output of the last run is also saved to the C<${REGISTRY_PREP}> file. |
|
59 |
|
60 =item B<-T>, B<--transaction> |
|
61 |
|
62 Execute the primary operation "transaction". |
|
63 Reads registry data with one request from stdin, executes |
|
64 the transaction and writes registry data with one or more |
|
65 responses to stdout in XML format. |
|
66 Depending on the mode of operation, the transaction might be an actual |
|
67 transport to the XMLdump CGI facility or a fake activity which complements the |
|
68 manual preparation. |
|
69 A copy of the output of the last run is also saved to the C<${REGISTRY_TRAN}> file. |
|
70 |
|
71 =item B<-U>, B<--utilization> |
|
72 |
|
73 Execute the primary operation "utilization". |
|
74 Reads registry data with one response from stdin and updates the local |
|
75 registry information. |
|
76 Depending on the mode of operation, the utilization might be an actual |
|
77 processing of a transaction response or a fake activity which complements the |
|
78 manual transaction. |
|
79 Anyway, this step finalizes the registration process and makes the instance |
|
80 assume it has been properly registered. This status can be printed. URL |
|
81 rewriting is activated. |
|
82 A copy of the output of the last run is also saved to the C<${REGISTRY_UTIL}> file. |
|
83 |
|
84 =item B<-C>, B<--convenience> |
|
85 |
|
86 Execute the primary operation "convenience". |
|
87 This executes the three primary operations "preparation", "transaction" and |
|
88 "utilization" in that order and pipes data through this chain. |
|
89 |
|
90 =item B<-I>, B<--interaction> |
|
91 |
|
92 Execute the primary operation "interaction". |
|
93 Like "convenience" but user is interactively asked for information. This is |
|
94 the easiest way to do registration but it is not meat to be automated. |
|
95 |
|
96 =item B<-S>, B<--printstatus> |
|
97 |
|
98 If the instance has been registered, information about the registration is printed in a |
|
99 format suitable for shell evaluation and return code is true. |
|
100 Otherwise nothing is printed and return code is false. |
|
101 |
|
102 =item B<-R>, B<--rewriteurls> [I<url> ...] |
|
103 |
|
104 If the instance has been registered, the given URLs are rewritten to prepend |
|
105 user:pass information before hostnames below the openpkg.(org|net|com) |
|
106 domains. Note the username is is UUID_REGISTRY and the password is the |
|
107 concatenation of UUID_INSTANCE and UUID_PLATFORM from the |
|
108 PREFIX/etc/openpkg/uuid file. Both informations are not meant to be used for |
|
109 traditional authentication, they are merly statistical information. |
|
110 Otherwise the URLs are returned verbatim. |
|
111 |
|
112 =back |
|
113 |
|
114 =head1 STANDARD OPTIONS |
|
115 |
|
116 Standard options are typically used to automate registration (not |
|
117 association). |
|
118 |
|
119 =over 4 |
|
120 |
|
121 =item B<-m>, B<--mode> fake|post|wipe |
|
122 |
|
123 Overrides C<${REGISTRY_MODE}> variable in C<${REGISTRY_CONF}> file. |
|
124 Has no default and is a manadatory setting. |
|
125 |
|
126 In B<post> mode, transactions are carried out using real network connectivity. |
|
127 The "preparation" step creates a XMLdump and writes it into the |
|
128 C<${REGISTRY_PREP}> file. The "transaction" step posts it to the DropXML form |
|
129 using a HTTP request. The response coming back from Registration server is |
|
130 also in XML format and is saved to C<${REGISTRY_TRAN}> file. The |
|
131 "utilization" step processes this response and writes the final results to the |
|
132 C<${REGISTRY_UTIL}> file. |
|
133 |
|
134 In B<fake> mode, no network connectivity takes place. |
|
135 The "prepararation" step creates a XMLdump and writes it into the |
|
136 C<${REGISTRY_PREP}> file. The "transaction" step is a fake only. It assumes a |
|
137 successful response from the Registration server and saves it to |
|
138 C<${REGISTRY_TRAN}> file. The "utilization" step processes this response and |
|
139 writes the final results to the C<${REGISTRY_UTIL}> file. |
|
140 I<Note>: fake mode is meant as a way to register instances which cannot or must |
|
141 not post data directly to the Registration server. |
|
142 |
|
143 In B<wipe> mode, the registration is wiped out locally. The status is reset |
|
144 and URL rewriting is disabled. |
|
145 I<Note>: the registration server is not contacted, the instace must be removed |
|
146 manually using the web interface. |
|
147 I<Note>: wiping registration is highly recommended as a precursor action of |
|
148 cloning activities. |
|
149 |
|
150 =item B<-a>, B<--args> "arg [arg ...]" |
|
151 |
|
152 Overrides C<${REGISTRY_ARGS}> variable in C<${REGISTRY_CONF}> file. |
|
153 Complements the mode and is specific to it. |
|
154 Defaults to "http://registry.openpkg.org/register" which is the official registry of the OpenPKG Project. |
|
155 This default is useful for "post" mode. |
|
156 |
|
157 =item B<-u>, B<--user> I<user|token> |
|
158 |
|
159 Overrides C<${REGISTRY_USER}> variable in C<${REGISTRY_CONF}> file. |
|
160 Indicates the registry user which will find this registration in his arrival queue. |
|
161 The user can also specified as a token which is enabled for use as "user". |
|
162 If the token is also enabled for "assoc" the registered instance is immediately associated |
|
163 to the user with no need for the user to visit the web interface. |
|
164 This information in submitted via the "registry_user" attribute of the XML request. |
|
165 Retrieves default online from http://openpkg.org/go/autoregister and is a manadatory setting. |
|
166 |
|
167 =item B<-l>, B<--link> I<token> |
|
168 |
|
169 Overrides C<${REGISTRY_LINK}> variable in C<${REGISTRY_CONF}> file. |
|
170 Indicates the registry user which will find this registration linked to his token. |
|
171 The link must be specified as a token which is enabled for use as "link". |
|
172 If a user token is used and the link token is also enabled for "assoc" then the registered instance |
|
173 is immediately associated to the user with no need for the user to visit the web interface. |
|
174 This information in submitted via the "registry_link" attribute of the XML request. |
|
175 Has no default and is an optional setting. |
|
176 Be aware that linked users see the same information about an instance as the associated user |
|
177 can find on his "association" page but they cannot alter or delete information. |
|
178 |
|
179 =item B<-d>, B<--desc> I<description> |
|
180 |
|
181 Overrides C<${REGISTRY_DESC}> variable in C<${REGISTRY_CONF}> file. |
|
182 Indicates a human readable description of the instance. |
|
183 This information in submitted via the "registry_desc" attribute of the XML request. |
|
184 It appears in the "description" column on the "association" page of the web form and can be edited on the server side. |
|
185 Defaults to "openpkg://${FQDN}${PREFIX}" |
|
186 |
|
187 =back |
|
188 |
|
189 =head1 ADVANCED OPTIONS |
|
190 |
|
191 Advanced options can be enganged to tailor and fully automate a registration |
|
192 (not association). |
|
193 |
|
194 =over 4 |
|
195 |
|
196 =item B<--plat> |
|
197 |
|
198 Overrides C<${REGISTRY_PLAT}> variable in C<${REGISTRY_CONF}> file. |
|
199 Indicates the platform. Concatenated information from CPU architecture (arch) and Operating System (os). |
|
200 This information in submitted via the "registry_plat" attribute of the XML request. |
|
201 Defaults to "%{l_platform -p}", e.g. "ix86-freebsd6.1" |
|
202 |
|
203 =item B<--orel> |
|
204 |
|
205 Overrides C<${REGISTRY_VERS}> variable in C<${REGISTRY_CONF}> file. |
|
206 Indicates the OpenPKG release. |
|
207 This information in submitted via the "registry_orel" attribute of the XML request. |
|
208 Defaults to "%{l_openpkg_release}", e.g. "OpenPKG-CURRENT", "OpenPKG-2-STABLE", "OpenPKG-2.5", |
|
209 |
|
210 =item B<--uuid> |
|
211 |
|
212 Overrides C<${REGISTRY_UUID}> variable in C<${REGISTRY_CONF}> file. |
|
213 Indicates the UUID file of the instance. |
|
214 This information in submitted via the "uuid_registry", "uuid_instance" and "uuid_platform" attributes of the XML request. |
|
215 Defaults to F<${PREFIX}/etc/openpkg/uuid> |
|
216 |
|
217 =item B<--conf> |
|
218 |
|
219 Overrides C<${REGISTRY_CONF}> variable from previous C<${REGISTRY_CONF}> file. Processing |
|
220 of the current configuration file is aborted immediately with all variables |
|
221 read so far kept. THe new configuration file is read in immediately and |
|
222 processing continues there. This works similar to an include but is more |
|
223 primitive as it does not allow nesting, only chaining. |
|
224 Defaults to F<${PREFIX}/etc/openpkg/register.conf> |
|
225 |
|
226 =item B<--prep> |
|
227 |
|
228 Overrides C<${REGISTRY_PREP}> variable in C<${REGISTRY_CONF}> file. |
|
229 File to save a copy of the output from the "preparation" step. |
|
230 Defaults to F<${PREFIX}/etc/openpkg/register.prep> |
|
231 |
|
232 =item B<--tran> |
|
233 |
|
234 Overrides C<${REGISTRY_TRAN}> variable in C<${REGISTRY_CONF}> file. |
|
235 File to save a copy of the output from the "transaction" step. |
|
236 Defaults to F<${PREFIX}/etc/openpkg/register.tran> |
|
237 |
|
238 =item B<--util> |
|
239 |
|
240 Overrides C<${REGISTRY_UTIL}> variable in C<${REGISTRY_CONF}> file. |
|
241 File to save a copy of the output from the "utilization" step. |
|
242 Defaults to F<${PREFIX}/etc/openpkg/register.util> |
|
243 |
|
244 =item B<--data> |
|
245 |
|
246 Overrides C<${REGISTRY_DATA}> variable in C<${REGISTRY_CONF}> file. |
|
247 Comma separated list of tags to prepare. Available tags are "request", |
|
248 "package" and "provides". The "request" refers to the whole thing and |
|
249 is mandatory. The "package" includes name-version-release information |
|
250 for all installed packages and "provides" adds more details required to |
|
251 capture package options. For details see OPENPKG_PREP below. |
|
252 Defaults to "request,package,provides" |
|
253 |
|
254 =back |
|
255 |
|
256 =head1 FILES |
|
257 |
|
258 The following files are used by B<openpkg register>: |
|
259 |
|
260 =over 4 |
|
261 |
|
262 =item OPENPKG_UUID=F<${PREFIX}/etc/openpkg/uuid> |
|
263 |
|
264 UUID_REGISTRY="..." |
|
265 UUID_INSTANCE="..." |
|
266 UUID_PLATFORM="..." |
|
267 |
|
268 =item OPENPKG_CONF=F<${PREFIX}/etc/openpkg/register.conf> |
|
269 |
|
270 Format suitable for shell evaluation. Interactive mode appends remarked date |
|
271 and current settings for reuse as new defaults for future runs. Can be preset |
|
272 to customize or automate registration. |
|
273 |
|
274 =item OPENPKG_PREP=F<${PREFIX}/etc/openpkg/register.prep> |
|
275 |
|
276 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> |
|
277 <!DOCTYPE registry |
|
278 PUBLIC "-//OpenPKG//DTD OpenPKG Registry 0.0.1//EN" |
|
279 "http://registry.openpkg.org/registry.dtd" []> |
|
280 <registry> |
|
281 <request id="..." |
|
282 registry_user="me@example.com" |
|
283 registry_desc="openpkg://rm0.openpkg.net/openpkg-dev" |
|
284 registry_plat="ix86-freebsd6.1" |
|
285 registry_orel="OpenPKG-CURRENT" |
|
286 uuid_registry="..." |
|
287 uuid_instance="..." |
|
288 uuid_platform="..." |
|
289 /> |
|
290 <package id="..." name="ssmtp" version="2.61" release="20050608"> |
|
291 <provides name="ssmtp::with_ssl" flag="=" version="no"/> |
|
292 <provides name="MTA" flag="" version=""/> |
|
293 <provides name="ssmtp" flag="=" version="2.61-20050608"/> |
|
294 </package> |
|
295 </registry> |
|
296 |
|
297 The XML request starts with <?xml version ...> and <!DOCTYPE registry ...> |
|
298 headers followed by a <registry> container. The request is inside a <request> |
|
299 tag. Successful submission into the XMLdump form requires the headers and |
|
300 exactly one container. It is possible to merge multiple requests into a single |
|
301 container manually or otherwise and submit them all at once. |
|
302 |
|
303 =item OPENPKG_TRAN=F<${PREFIX}/etc/openpkg/register.tran> |
|
304 |
|
305 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> |
|
306 <!DOCTYPE registry |
|
307 PUBLIC "-//OpenPKG//DTD OpenPKG Registry 0.0.1//EN" |
|
308 "http://registry.openpkg.org/registry.dtd" []> |
|
309 <registry> |
|
310 <response id="..." done="yes">openpkg://rm0.openpkg.net/openpkg-dev</response> |
|
311 </registry> |
|
312 |
|
313 The XML response starts with <?xml version ...> and <!DOCTYPE registry ...> |
|
314 headers followed by a <registry> container. The response is inside a <request> |
|
315 tag. The data carried in the tag comes from the "description" column on the |
|
316 "association" page of the web form and can be edited on the server side. |
|
317 |
|
318 =item OPENPKG_UTIL=F<${PREFIX}/etc/openpkg/register.util> |
|
319 |
|
320 REGISTRY_DBID="..." |
|
321 REGISTRY_DONE="yes" |
|
322 REGISTRY_RESP="openpkg://foo.example.com/my/openpkg/prefix" |
|
323 |
|
324 =back |
|
325 |
|
326 =head1 EXAMPLES |
|
327 |
|
328 # su - openpkg-mop |
|
329 $ openpkg register --printstatus |
|
330 REGISTRY_DBID="..." |
|
331 REGISTRY_DONE="yes" |
|
332 REGISTRY_RESP="openpkg://foo.example.com/my/openpkg/prefix" |
|
333 $ openpkg register --printstatus >/dev/null && echo "Yup" |
|
334 Yup |
|
335 $ eval `openpkg register --printstatus`; echo DONE=$REGISTRY_DONE |
|
336 DONE=yes |
|
337 $ openpkg register --mode=wipe |
|
338 $ openpkg register --printstatus || echo "Nope" |
|
339 Nope |
|
340 $ openpkg register --user=thl@openpkg.net --mode=post |
|
341 REGISTRY_DBID="...." |
|
342 REGISTRY_DONE="yes" |
|
343 REGISTRY_RESP="openpkg://foo.example.com/my/openpkg/prefix" |
|
344 $ openpkg register --printstatus >/dev/null && echo "Yup" |
|
345 Yup |
|
346 $ openpkg register --rewriteurls http://download.openpkg.org/foo/bar |
|
347 ftp://...:...@download.openpkg.org/foo/bar |
|
348 |
|
349 =head1 SEE ALSO |
|
350 |
|
351 bash(1), C<openpkg man uuid>, C<http://registry.openpkg.org/> |
|
352 |
|
353 =head1 AUTHOR |
|
354 |
|
355 Thomas Lotterer E<lt>thl@openpkg.orgE<gt> |
|
356 |
|
357 =cut |
|
358 |