logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ganeti-listrunner - Run commands in parallel over multiple machines

Description

ganeti-listrunner is a tool to run commands in parallel over multiple machines.  It differs from  dsh  or
       other  tools  in that it asks for the password once (if not using ssh-agent) and then reuses the password
       to connect to all machines, thus being easily usable even when  public  key  authentication  or  Kerberos
       authentication is not available.

       It can run either a command or a script (which gets uploaded first and deleted after execution) on a list
       of  hosts provided either via a file (one host per line) or as a comma-separated list on the commandline.
       The output (stdout and stderr are merged) of the remote execution is written to a logfile.   One  logfile
       per host is written.

Example

       Run a command on a list of hosts:

              listrunner -l logdir -c "uname -a" -h host1,host2,host3

       Upload a script, some auxiliary files and run the script:

              listrunner -l logdir -x runme.sh \
                -a seed.dat -a golden.dat \
                -h host1,host2,host3

Exit Status

       The exist status of the command will be zero, unless it was aborted in some way (e.g.  ^C).

Name

       ganeti-listrunner - Run commands in parallel over multiple machines

Options

       The options that can be passed to the program are as follows:

       -l logdir
              The directory under which the logfiles files should be written.

       -x executable
              The executable to copy and run on the target hosts.

       -c shell-cmd
              The shell command to run on the remote hosts.

       -f hostfile
              The file with the target hosts, one hostname per line.

       -h hostlist
              Comma-separated list of target hosts.

       -a aux-file
              A  file to copy to the target hosts.  Can be given multiple times, in which case all files will be
              copied to the temporary directory.  The executable or the shell  command  will  be  run  from  the
              (temporary) directory where these files have been copied.

       -b batch-size
              The  host  list will be split into batches of batch-size which will be processed in parallel.  The
              default if 15, and should be increased if faster processing is needed.

       -u username
              Username to connect as instead of the default root username.

       -A     Use an existing ssh-agent instead of password authentication.

       --args Arguments to pass to executable (-x).

Reporting Bugs

       Report bugs to the project's issue tracker or contact the developers using the Ganeti mailing list.

See Also

       Ganeti overview and  specifications:  ganeti(7)  (general  overview),  ganeti-os-interface(7)  (guest  OS
       definitions), ganeti-extstorage-interface(7) (external storage providers).

       Ganeti  commands:  gnt-cluster(8) (cluster-wide commands), gnt-job(8) (job-related commands), gnt-node(8)
       (node-related  commands),  gnt-instance(8)  (instance   commands),   gnt-os(8)   (guest   OS   commands),
       gnt-storage(8)   (storage   commands),   gnt-group(8)  (node  group  commands),  gnt-backup(8)  (instance
       import/export commands), gnt-debug(8) (debug commands).

       Ganeti daemons: ganeti-watcher(8) (automatic instance restarter), ganeti-cleaner(8) (job queue  cleaner),
       ganeti-noded(8) (node daemon), ganeti-rapi(8) (remote API daemon).

       Ganeti  htools: htools(1) (generic binary), hbal(1) (cluster balancer), hspace(1) (capacity calculation),
       hail(1) (IAllocator plugin), hscan(1) (data gatherer from remote clusters), hinfo(1) (cluster information
       printer), mon-collector(7) (data collectors interface).

Synopsis

ganeti-listrunner  -l logdir {-x executable | -c shell-cmd} {-f hostfile | -h hostlist} [-a aux-file] [-b
       batch-size] [-u username] [-A]

See Also