bitreich-drist

fork of bitreich.org/drist
git clone git://git.pyratebeard.net/bitreich-drist.git
Log | Files | Refs | README | LICENSE

drist.1 (2863B)


      1 .Dd $Mdocdate: April 27 2020 $
      2 .Dt DRIST 1
      3 .Os
      4 .Sh NAME
      5 .Nm drist
      6 .Nd dumb remote installer shell tool, a remote deployment tool
      7 .Sh SYNOPSIS
      8 .Op Fl p
      9 .Op Fl d
     10 .Op Fl s Op Fl e Ar sudo|doas
     11 .Ar destination
     12 .Sh OPTIONS
     13 .Bl -tag -width Ds
     14 .It Op Fl p
     15 to use persistent ssh connection, allowing to ssh only once
     16 for the differents steps.
     17 This uses ControlMaster feature from
     18 .Xr ssh 1 .
     19 .It Op Fl d
     20 to truncate reported hostname.
     21 Tells
     22 .Nm
     23 to truncate the reported remote hostname to the left-most component.
     24 .It Op Fl s
     25 use a program to execute a command as root on the remote server.
     26 Default is sudo.
     27 .It Op Fl e Ar binary
     28 binary to use for executing the commands as root.
     29 This flag is only useful when used with
     30 .Fl s .
     31 .It Ar destination
     32 Specify the remote servers you want drist to work on.
     33 .Ar destination
     34 can be a file containing a list of hosts, one per line or
     35 it can be addresses passed in the command line.
     36 If you specify multiples servers,
     37 .Nm
     38 will loop over the list respecting the list order.
     39 Note that only one file can be used in the command line.
     40 .El
     41 .Sh DESCRIPTION
     42 .Nm
     43 is a tool to configure remote servers using
     44 .Xr ssh 1
     45 and
     46 .Xr rsync 1 .
     47 .Nm
     48 has been designed to be simple, so it may not offer all the features you want.
     49 .Pp
     50 When you run
     51 .Nm
     52 , it will look at a set of special directories in the current working
     53 directory.
     54 .Nm
     55 will connect to
     56 .Ar server
     57 via
     58 .Xr ssh 1
     59 and request the remote
     60 .Em HOSTNAME
     61 by calling
     62 .Ql uname -n .
     63 .Pp
     64 After that following steps will be executed:
     65 .Bl -enum -offset indent -compact
     66 .It
     67 If directory
     68 .Ar files
     69 exists, its content is copied to
     70 .Ar server
     71 using
     72 .Xr rsync 1
     73 in a temporary directory in ~/.drist_files_XXXXXXXX
     74 .It
     75 If directory
     76 .Ar files- Ns Em HOSTNAME
     77 exists, its content is copied to
     78 .Ar server
     79 using
     80 .Xr rsync 1
     81 in a temporary directory in ~/.drist_files_XXXXXXXX .
     82 .It
     83 If file
     84 .Ar script
     85 exists, it is copied to
     86 .Ar server
     87 and executed from the temporary directory.
     88 .It
     89 If file
     90 .Ar script- Ns Em HOSTNAME
     91 exists, it is copied to
     92 .Ar server
     93 and executed from the temporary directory.
     94 .El
     95 .Pp
     96 The presence of each of those files or directories is optional.
     97 .Pp
     98 All files in either
     99 .Ar files
    100 or
    101 .Ar files- Ns Em HOSTNAME
    102 etc. are relative to the root (/) directory.
    103 The specific files for
    104 .Em HOSTNAME
    105 are worked on after the common files.
    106 .Pp
    107 I recommend to write small "modules" which would install the required
    108 packages for a task and provide the files needed, rather than writing a
    109 full-blown module for deploying an entire system at once.
    110 .Nm
    111 does not handle file permissions and ownership.
    112 Those should be modified by the
    113 .Ar script
    114 file.
    115 .Sh EXAMPLES
    116 Please see the
    117 .Ar examples
    118 directory in the
    119 .Nm
    120 distribution.
    121 .Sh EXIT
    122 .Ex -std drist
    123 .Sh SEE ALSO
    124 .Xr rsync 1 ,
    125 .Xr ssh 1 ,
    126 .Xr ssh_config 5
    127 .Sh Authors
    128 .An -nosplit
    129 The
    130 .Nm
    131 program was written by
    132 .An Solène Rapenne Aq Mt solene@perso.pw