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