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