349cfc2a471dde8efac034c8f0464a2b839210ad
[ganeti-github.git] / man / gnt-node.rst
1 gnt-node(8) Ganeti | Version @GANETI_VERSION@
2 =============================================
3
4 Name
5 ----
6
7 gnt-node - Node administration
8
9 Synopsis
10 --------
11
12 **gnt-node** {command} [arguments...]
13
14 DESCRIPTION
15 -----------
16
17 The **gnt-node** is used for managing the (physical) nodes in the
18 Ganeti system.
19
20 COMMANDS
21 --------
22
23 ADD
24 ~~~
25
26 | **add** [\--readd] [{-s|\--secondary-ip} *secondary\_ip*]
27 | [{-g|\--node-group} *nodegroup*]
28 | [\--master-capable=``yes|no``] [\--vm-capable=``yes|no``]
29 | [\--node-parameters *ndparams*]
30 | [\--disk-state *diskstate*]
31 | [\--hypervisor-state *hvstate*]
32 | [\--no-node-setup]
33 | {*nodename*}
34
35 Adds the given node to the cluster.
36
37 This command is used to join a new node to the cluster. You will
38 have to provide credentials to ssh as root to the node to be added.
39 Forwardig of an ssh agent (the ``-A`` option of ssh) works, if an
40 appropriate authorized key is set up on the node to be added. If
41 the other node allows password authentication for root, another
42 way of providing credentials is to provide the root password once
43 asked for it. The command needs to be run on the Ganeti master.
44
45 Note that the command is potentially destructive, as it will
46 forcibly join the specified host to the cluster, not paying attention
47 to its current status (it could be already in a cluster, etc.)
48
49 The ``-s (--secondary-ip)`` is used in dual-home clusters and
50 specifies the new node's IP in the secondary network. See the
51 discussion in **gnt-cluster**\(8) for more information.
52
53 In case you're readding a node after hardware failure, you can use
54 the ``--readd`` parameter. In this case, you don't need to pass the
55 secondary IP again, it will be reused from the cluster. Also, the
56 drained and offline flags of the node will be cleared before
57 re-adding it. Note that even for readded nodes, a new SSH key is
58 generated and distributed and previous Ganeti keys are removed
59 from the machine.
60
61 The ``-g (--node-group)`` option is used to add the new node into a
62 specific node group, specified by UUID or name. If only one node group
63 exists you can skip this option, otherwise it's mandatory.
64
65 The ``--no-node-setup`` option that used to prevent Ganeti from performing
66 the initial SSH setup on the new node is no longer valid. Instead,
67 Ganeti consideres the ``modify ssh setup`` configuration parameter
68 (which is set using ``--no-ssh-init`` during cluster initialization)
69 to determine whether or not to do the SSH setup on a new node or not.
70 If this parameter is set to ``False``, Ganeti will not touch the SSH
71 keys or the ``authorized_keys`` file of the node at all. Using this option,
72 it lies in the administrators responsibility to ensure SSH connectivity
73 between the hosts by other means.
74
75 The ``vm_capable``, ``master_capable``, ``ndparams``, ``diskstate`` and
76 ``hvstate`` options are described in **ganeti**\(7), and are used to set
77 the properties of the new node.
78
79 The command performs some operations that change the state of the master
80 and the new node, like copying certificates and starting the node daemon
81 on the new node, or updating ``/etc/hosts`` on the master node.  If the
82 command fails at a later stage, it doesn't undo such changes.  This
83 should not be a problem, as a successful run of ``gnt-node add`` will
84 bring everything back in sync.
85
86 If the node was previously part of another cluster and still has daemons
87 running, the ``node-cleanup`` tool can be run on the machine to be added
88 to clean remains of the previous cluster from the node.
89
90 Example::
91
92     # gnt-node add node5.example.com
93     # gnt-node add -s 192.0.2.5 node5.example.com
94     # gnt-node add -g group2 -s 192.0.2.9 node9.group2.example.com
95
96
97 EVACUATE
98 ~~~~~~~~
99
100 | **evacuate** [-f] [\--early-release] [\--submit] [\--print-jobid]
101 | [{-I|\--iallocator} *NAME* \| {-n|\--new-secondary} *destination\_node*]
102 | [--ignore-soft-errors]
103 | [{-p|\--primary-only} \| {-s|\--secondary-only} ]
104 |  {*node*}
105
106 This command will move instances away from the given node. If
107 ``--primary-only`` is given, only primary instances are evacuated, with
108 ``--secondary-only`` only secondaries. If neither is given, all
109 instances are evacuated. It works only for instances having a drbd disk
110 template.
111
112 The new location for the instances can be specified in two ways:
113
114 - as a single node for all instances, via the ``-n (--new-secondary)``
115   option
116
117 - or via the ``-I (--iallocator)`` option, giving a script name as
118   parameter (or ``.`` to use the default allocator), so each instance
119   will be in turn placed on the (per the script) optimal node
120
121 The ``--early-release`` changes the code so that the old storage on
122 node being evacuated is removed early (before the resync is
123 completed) and the internal Ganeti locks are also released for both
124 the current secondary and the new secondary, thus allowing more
125 parallelism in the cluster operation. This should be used only when
126 recovering from a disk failure on the current secondary (thus the
127 old storage is already broken) or when the storage on the primary
128 node is known to be fine (thus we won't need the old storage for
129 potential recovery).
130
131 Note that this command is equivalent to using per-instance commands for
132 each affected instance individually:
133
134 - ``--primary-only`` is equivalent to performing ``gnt-instance
135   migrate`` for every primary instance running on the node that can be
136   migrated and ``gnt-instance failover`` for every primary instance that
137   cannot be migrated.
138 - ``--secondary-only`` is equivalent to ``gnt-instance replace-disks``
139   in secondary node change mode (``--new-secondary``) for every DRBD
140   instance that the node is a secondary for.
141 - when neither of the above is done a combination of the two cases is run
142
143 Note that the iallocator currently only considers disk information of
144 the default disk template, even if the instance's disk templates differ
145 from that.
146
147 The ``--ignore-soft-errors`` option is passed through to the allocator.
148
149 See **ganeti**\(7) for a description of ``--submit`` and other common
150 options.
151
152 Example::
153
154     # gnt-node evacuate -I hail node3.example.com
155
156 Note that, due to an issue with the iallocator interface, evacuation of
157 all instances at once is not yet implemented. Full evacuation can
158 currently be achieved by sequentially evacuating primaries and
159 secondaries.
160 ::
161
162     # gnt-node evacuate -p node3.example.com
163     # gnt-node evacuate -s node3.example.com
164
165
166 FAILOVER
167 ~~~~~~~~
168
169 **failover** [-f] [\--ignore-consistency] {*node*}
170
171 This command will fail over all instances having the given node as
172 primary to their secondary nodes. This works only for instances having
173 a drbd disk template.
174
175 Note that failover will stop any running instances on the given node and
176 restart them again on the new primary.
177 See also FAILOVER in **gnt-instance**\(8).
178
179 Normally the failover will check the consistency of the disks before
180 failing over the instance. If you are trying to migrate instances off
181 a dead node, this will fail. Use the ``--ignore-consistency`` option
182 for this purpose.
183
184 Example::
185
186     # gnt-node failover node1.example.com
187
188
189 INFO
190 ~~~~
191
192 **info** [*node*...]
193
194 Show detailed information about the nodes in the cluster. If you
195 don't give any arguments, all nodes will be shows, otherwise the
196 output will be restricted to the given names.
197
198 LIST
199 ~~~~
200
201 | **list**
202 | [\--no-headers] [\--separator=*SEPARATOR*]
203 | [\--units=*UNITS*] [-v] [{-o|\--output} *[+]FIELD,...*]
204 | [\--filter]
205 | [node...]
206
207 Lists the nodes in the cluster.
208
209 The ``--no-headers`` option will skip the initial header line. The
210 ``--separator`` option takes an argument which denotes what will be
211 used between the output fields. Both these options are to help
212 scripting.
213
214 The units used to display the numeric values in the output varies,
215 depending on the options given. By default, the values will be
216 formatted in the most appropriate unit. If the ``--separator``
217 option is given, then the values are shown in mebibytes to allow
218 parsing by scripts. In both cases, the ``--units`` option can be
219 used to enforce a given output unit.
220
221 Queries of nodes will be done in parallel with any running jobs. This might
222 give inconsistent results for the free disk/memory.
223
224 The ``-v`` option activates verbose mode, which changes the display of
225 special field states (see **ganeti**\(7)).
226
227 The ``-o (--output)`` option takes a comma-separated list of output
228 fields. The available fields and their meaning are:
229
230 @QUERY_FIELDS_NODE@
231
232 If the value of the option starts with the character ``+``, the new
233 fields will be added to the default list. This allows one to quickly
234 see the default list plus a few other fields, instead of retyping
235 the entire list of fields.
236
237 Note that some of these fields are known from the configuration of the
238 cluster (e.g. ``name``, ``pinst``, ``sinst``, ``pip``, ``sip``) and thus
239 the master does not need to contact the node for this data (making the
240 listing fast if only fields from this set are selected), whereas the
241 other fields are "live" fields and require a query to the cluster nodes.
242
243 Depending on the virtualization type and implementation details, the
244 ``mtotal``, ``mnode`` and ``mfree`` fields may have slightly varying
245 meanings. For example, some solutions share the node memory with the
246 pool of memory used for instances (KVM), whereas others have separate
247 memory for the node and for the instances (Xen).
248
249 Note that the field 'dtotal' and 'dfree' refer to the storage type
250 that is defined by the default disk template. The default disk template
251 is the first on in the list of cluster-wide enabled disk templates and
252 can be set with ``gnt-cluster modify``. Currently, only the disk
253 templates 'plain', 'drbd', 'file', and 'sharedfile' support storage
254 reporting, for all others '0' is displayed.
255
256 If exactly one argument is given and it appears to be a query filter
257 (see **ganeti**\(7)), the query result is filtered accordingly. For
258 ambiguous cases (e.g. a single field name as a filter) the ``--filter``
259 (``-F``) option forces the argument to be treated as a filter (e.g.
260 ``gnt-node list -F master_candidate``).
261
262 If no node names are given, then all nodes are queried. Otherwise,
263 only the given nodes will be listed.
264
265
266 LIST-DRBD
267 ~~~~~~~~~
268
269 **list-drbd** [\--no-headers] [\--separator=*SEPARATOR*] node
270
271 Lists the mapping of DRBD minors for a given node. This outputs a static
272 list of fields (it doesn't accept the ``--output`` option), as follows:
273
274 ``Node``
275   The (full) name of the node we are querying
276 ``Minor``
277   The DRBD minor
278 ``Instance``
279   The instance the DRBD minor belongs to
280 ``Disk``
281   The disk index that the DRBD minor belongs to
282 ``Role``
283   Either ``primary`` or ``secondary``, denoting the role of the node for
284   the instance (note: this is not the live status of the DRBD device,
285   but the configuration value)
286 ``PeerNode``
287   The node that the minor is connected to on the other end
288
289 This command can be used as a reverse lookup (from node and minor) to a
290 given instance, which can be useful when debugging DRBD issues.
291
292 Note that this command queries Ganeti via **ganeti-confd**\(8), so
293 it won't be available if support for ``confd`` has not been enabled at
294 build time; furthermore, in Ganeti 2.6 this is only available via the
295 Haskell version of confd (again selected at build time).
296
297 LIST-FIELDS
298 ~~~~~~~~~~~
299
300 **list-fields** [field...]
301
302 Lists available fields for nodes.
303
304
305 MIGRATE
306 ~~~~~~~
307
308 | **migrate** [-f] [\--non-live] [\--migration-mode=live\|non-live]
309 | [\--ignore-ipolicy] [\--submit] [\--print-jobid] {*node*}
310
311 This command will migrate all instances having the given node as
312 primary to their secondary nodes. This works only for instances
313 having a drbd disk template.
314
315 As for the **gnt-instance migrate** command, the options
316 ``--no-live``, ``--migration-mode`` and ``--no-runtime-changes``
317 can be given to influence the migration type.
318
319 If ``--ignore-ipolicy`` is given any instance policy violations
320 occurring during this operation are ignored.
321
322 See **ganeti**\(7) for a description of ``--submit`` and other common
323 options.
324
325 Example::
326
327     # gnt-node migrate node1.example.com
328
329
330 MODIFY
331 ~~~~~~
332
333 | **modify** [-f] [\--submit] [\--print-jobid]
334 | [{-C|\--master-candidate} ``yes|no``]
335 | [{-D|\--drained} ``yes|no``] [{-O|\--offline} ``yes|no``]
336 | [\--master-capable=``yes|no``] [\--vm-capable=``yes|no``] [\--auto-promote]
337 | [{-s|\--secondary-ip} *secondary_ip*]
338 | [\--node-parameters *ndparams*]
339 | [\--node-powered=``yes|no``]
340 | [\--hypervisor-state *hvstate*]
341 | [\--disk-state *diskstate*]
342 | {*node*}
343
344 This command changes the role of the node. Each options takes
345 either a literal yes or no, and only one option should be given as
346 yes. The meaning of the roles and flags are described in the
347 manpage **ganeti**\(7).
348
349 The option ``--node-powered`` can be used to modify state-of-record if
350 it doesn't reflect the reality anymore.
351
352 In case a node is demoted from the master candidate role, the
353 operation will be refused unless you pass the ``--auto-promote``
354 option. This option will cause the operation to lock all cluster nodes
355 (thus it will not be able to run in parallel with most other jobs),
356 but it allows automated maintenance of the cluster candidate pool. If
357 locking all cluster node is too expensive, another option is to
358 promote manually another node to master candidate before demoting the
359 current one.
360
361 Example (setting a node offline, which will demote it from master
362 candidate role if is in that role)::
363
364     # gnt-node modify --offline=yes node1.example.com
365
366 The ``-s (--secondary-ip)`` option can be used to change the node's
367 secondary ip. No drbd instances can be running on the node, while this
368 operation is taking place. Remember that the secondary ip must be
369 reachable from the master secondary ip, when being changed, so be sure
370 that the node has the new IP already configured and active. In order to
371 convert a cluster from single homed to multi-homed or vice versa
372 ``--force`` is needed as well, and the target node for the first change
373 must be the master.
374
375 See **ganeti**\(7) for a description of ``--submit`` and other common
376 options.
377
378 Example (setting the node back to online and master candidate)::
379
380     # gnt-node modify --offline=no --master-candidate=yes node1.example.com
381
382
383 REMOVE
384 ~~~~~~
385
386 **remove** {*nodename*}
387
388 Removes a node from the cluster. Instances must be removed or
389 migrated to another cluster before.
390
391 Example::
392
393     # gnt-node remove node5.example.com
394
395
396 VOLUMES
397 ~~~~~~~
398
399 | **volumes** [\--no-headers] [\--human-readable]
400 | [\--separator=*SEPARATOR*] [{-o|\--output} *FIELDS*]
401 | [*node*...]
402
403 Lists all logical volumes and their physical disks from the node(s)
404 provided.
405
406 The ``--no-headers`` option will skip the initial header line. The
407 ``--separator`` option takes an argument which denotes what will be
408 used between the output fields. Both these options are to help
409 scripting.
410
411 The units used to display the numeric values in the output varies,
412 depending on the options given. By default, the values will be
413 formatted in the most appropriate unit. If the ``--separator``
414 option is given, then the values are shown in mebibytes to allow
415 parsing by scripts. In both cases, the ``--units`` option can be
416 used to enforce a given output unit.
417
418 The ``-o (--output)`` option takes a comma-separated list of output
419 fields. The available fields and their meaning are:
420
421 node
422     the node name on which the volume exists
423
424 phys
425     the physical drive (on which the LVM physical volume lives)
426
427 vg
428     the volume group name
429
430 name
431     the logical volume name
432
433 size
434     the logical volume size
435
436 instance
437     The name of the instance to which this volume belongs, or (in case
438     it's an orphan volume) the character "-"
439
440
441 Example::
442
443     # gnt-node volumes node5.example.com
444     Node              PhysDev   VG    Name                                 Size Instance
445     node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11000.meta 128  instance1.example.com
446     node1.example.com /dev/hdc1 xenvg instance1.example.com-sda_11001.data 256  instance1.example.com
447
448
449 LIST-STORAGE
450 ~~~~~~~~~~~~
451
452 | **list-storage** [\--no-headers] [\--human-readable]
453 | [\--separator=*SEPARATOR*] [\--storage-type=*STORAGE\_TYPE*]
454 | [{-o|\--output} *FIELDS*]
455 | [*node*...]
456
457 Lists the available storage units and their details for the given
458 node(s).
459
460 The ``--no-headers`` option will skip the initial header line. The
461 ``--separator`` option takes an argument which denotes what will be
462 used between the output fields. Both these options are to help
463 scripting.
464
465 The units used to display the numeric values in the output varies,
466 depending on the options given. By default, the values will be
467 formatted in the most appropriate unit. If the ``--separator``
468 option is given, then the values are shown in mebibytes to allow
469 parsing by scripts. In both cases, the ``--units`` option can be
470 used to enforce a given output unit.
471
472 The ``--storage-type`` option can be used to choose a storage unit
473 type. Possible choices are lvm-pv, lvm-vg, file, sharedfile and gluster.
474
475 The ``-o (--output)`` option takes a comma-separated list of output
476 fields. The available fields and their meaning are:
477
478 node
479     the node name on which the volume exists
480
481 type
482     the type of the storage unit (currently just what is passed in via
483     ``--storage-type``)
484
485 name
486     the path/identifier of the storage unit
487
488 size
489     total size of the unit; for the file type see a note below
490
491 used
492     used space in the unit; for the file type see a note below
493
494 free
495     available disk space
496
497 allocatable
498     whether we the unit is available for allocation (only lvm-pv can
499     change this setting, the other types always report true)
500
501
502 Note that for the "file" type, the total disk space might not equal
503 to the sum of used and free, due to the method Ganeti uses to
504 compute each of them. The total and free values are computed as the
505 total and free space values for the filesystem to which the
506 directory belongs, but the used space is computed from the used
507 space under that directory *only*, which might not be necessarily
508 the root of the filesystem, and as such there could be files
509 outside the file storage directory using disk space and causing a
510 mismatch in the values.
511
512 Example::
513
514     node1# gnt-node list-storage node2
515     Node  Type   Name        Size Used   Free Allocatable
516     node2 lvm-pv /dev/sda7 673.8G 1.5G 672.3G Y
517     node2 lvm-pv /dev/sdb1 698.6G   0M 698.6G Y
518
519
520 MODIFY-STORAGE
521 ~~~~~~~~~~~~~~
522
523 | **modify-storage** [\--allocatable={yes|no}] [\--submit] [\--print-jobid]
524 | {*node*} {*storage-type*} {*volume-name*}
525
526 Modifies storage volumes on a node. Only LVM physical volumes can
527 be modified at the moment. They have a storage type of "lvm-pv".
528
529 Example::
530
531     # gnt-node modify-storage --allocatable no node5.example.com lvm-pv /dev/sdb1
532
533
534 REPAIR-STORAGE
535 ~~~~~~~~~~~~~~
536
537 | **repair-storage** [\--ignore-consistency] ]\--submit]
538 | {*node*} {*storage-type*} {*volume-name*}
539
540 Repairs a storage volume on a node. Only LVM volume groups can be
541 repaired at this time. They have the storage type "lvm-vg".
542
543 On LVM volume groups, **repair-storage** runs ``vgreduce
544 --removemissing``.
545
546
547
548 **Caution:** Running this command can lead to data loss. Use it with
549 care.
550
551 The ``--ignore-consistency`` option will ignore any inconsistent
552 disks (on the nodes paired with this one). Use of this option is
553 most likely to lead to data-loss.
554
555 Example::
556
557     # gnt-node repair-storage node5.example.com lvm-vg xenvg
558
559
560 POWERCYCLE
561 ~~~~~~~~~~
562
563 **powercycle** [\--yes] [\--force] [\--submit] [\--print-jobid] {*node*}
564
565 This command (tries to) forcefully reboot a node. It is a command
566 that can be used if the node environment is broken, such that the
567 admin can no longer login over SSH, but the Ganeti node daemon is
568 still working.
569
570 Note that this command is not guaranteed to work; it depends on the
571 hypervisor how effective is the reboot attempt. For Linux, this
572 command requires the kernel option ``CONFIG_MAGIC_SYSRQ`` to be
573 enabled.
574
575 The ``--yes`` option can be used to skip confirmation, while the
576 ``--force`` option is needed if the target node is the master
577 node.
578
579 See **ganeti**\(7) for a description of ``--submit`` and other common
580 options.
581
582 POWER
583 ~~~~~
584
585 **power** [``--force``] [``--ignore-status``] [``--all``]
586 [``--power-delay``] on|off|cycle|status [*nodes*]
587
588 This command calls out to out-of-band management to change the power
589 state of given node. With ``status`` you get the power status as reported
590 by the out-of-band management script.
591
592 Note that this command will only work if the out-of-band functionality
593 is configured and enabled on the cluster. If this is not the case,
594 please use the **powercycle** command above.
595
596 Using ``--force`` you skip the confirmation to do the operation.
597 Currently this only has effect on ``off`` and ``cycle``. On those two
598 you can *not* operate on the master. However, the command will provide
599 you with the command to invoke to operate on the master nerver-mind.
600 This is considered harmful and Ganeti does not support the use of it.
601
602 Providing ``--ignore-status`` will ignore the offline=N state of a node
603 and continue with power off.
604
605 ``--power-delay`` specifies the time in seconds (factions allowed)
606 waited between powering on the next node. This is by default 2 seconds
607 but can increased if needed with this option.
608
609 *nodes* are optional. If not provided it will call out for every node in
610 the cluster. Except for the ``off`` and ``cycle`` command where you've
611 to explicit use ``--all`` to select all.
612
613
614 HEALTH
615 ~~~~~~
616
617 **health** [*nodes*]
618
619 This command calls out to out-of-band management to ask for the health status
620 of all or given nodes. The health contains the node name and then the items
621 element with their status in a ``item=status`` manner. Where ``item`` is script
622 specific and ``status`` can be one of ``OK``, ``WARNING``, ``CRITICAL`` or
623 ``UNKNOWN``. Items with status ``WARNING`` or ``CRITICAL`` are logged and
624 annotated in the command line output.
625
626
627 RESTRICTED-COMMAND
628 ~~~~~~~~~~~~~~~~~~
629
630 | **restricted-command** [-M] [\--sync]
631 | { -g *group* *command* | *command* *nodes*... }
632
633 Executes a restricted command on the specified nodes. Restricted commands are
634 not arbitrary, but must reside in
635 ``@SYSCONFDIR@/ganeti/restricted-commands`` on a node, either as a regular
636 file or as a symlink. The directory must be owned by root and not be
637 world- or group-writable. If a command fails verification or otherwise
638 fails to start, the node daemon log must be consulted for more detailed
639 information.
640
641 Example for running a command on two nodes::
642
643     # gnt-node restricted-command mycommand \
644       node1.example.com node2.example.com
645
646 The ``-g`` option can be used to run a command only on a specific node
647 group, e.g.::
648
649     # gnt-node restricted-command -g default mycommand
650
651 The ``-M`` option can be used to prepend the node name to all command
652 output lines. ``--sync`` forces the opcode to acquire the node lock(s)
653 in exclusive mode.
654
655 REPAIR-COMMAND
656 ~~~~~~~~~~~~~~~~~~
657
658 | **repair-command** { --input *input* } *command* *node*
659
660 Executes a repair command. Repair commands reside in
661 ``@SYSCONFDIR@/ganeti/node-repair-commands`` on a node, either as a regular
662 file or as a symlink. The directory must be owned by root and not be
663 world- or group-writable. If a command fails verification or otherwise
664 fails to start, the node daemon log must be consulted for more detailed
665 information.
666
667 Example for running a command::
668
669     # gnt-node repair-command --input "input string" \
670       mycommand node.example.com
671
672 Tags
673 ~~~~
674
675 ADD-TAGS
676 ^^^^^^^^
677
678 **add-tags** [\--from *file*] {*nodename*} {*tag*...}
679
680 Add tags to the given node. If any of the tags contains invalid
681 characters, the entire operation will abort.
682
683 If the ``--from`` option is given, the list of tags will be
684 extended with the contents of that file (each line becomes a tag).
685 In this case, there is not need to pass tags on the command line
686 (if you do, both sources will be used). A file name of - will be
687 interpreted as stdin.
688
689 LIST-TAGS
690 ^^^^^^^^^
691
692 **list-tags** {*nodename*}
693
694 List the tags of the given node.
695
696 REMOVE-TAGS
697 ^^^^^^^^^^^
698
699 **remove-tags** [\--from *file*] {*nodename*} {*tag*...}
700
701 Remove tags from the given node. If any of the tags are not
702 existing on the node, the entire operation will abort.
703
704 If the ``--from`` option is given, the list of tags to be removed will
705 be extended with the contents of that file (each line becomes a tag).
706 In this case, there is not need to pass tags on the command line (if
707 you do, tags from both sources will be removed). A file name of - will
708 be interpreted as stdin.
709
710 .. vim: set textwidth=72 :
711 .. Local Variables:
712 .. mode: rst
713 .. fill-column: 72
714 .. End: