URI: 
       drist.1 - drist - a remote deployment tool
  HTML git clone git://bitreich.org/drist/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/drist/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR 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