2017-11-09 21:17:09 +01:00
|
|
|
.. _installation:
|
|
|
|
|
2017-11-09 20:33:09 +01:00
|
|
|
Installation
|
|
|
|
============
|
|
|
|
|
|
|
|
.. TIP::
|
|
|
|
|
|
|
|
Note: check out the [tutorial]({{< relref "tutorial/_index.md" >}}) if you want a first impression of zrepl.
|
|
|
|
|
|
|
|
User Privileges
|
|
|
|
---------------
|
|
|
|
|
|
|
|
It is possible to run zrepl as an unprivileged user in combination with
|
2017-11-09 21:23:45 +01:00
|
|
|
`ZFS delegation <https://www.freebsd.org/doc/handbook/zfs-zfs-allow.html>`_.
|
2017-11-09 20:33:09 +01:00
|
|
|
Also, there is the possibility to run it in a jail on FreeBSD by delegating a dataset to the jail.
|
|
|
|
However, until we get around documenting those setups, you will have to run zrepl as root or experiment yourself :)
|
|
|
|
|
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
|
|
|
zrepl is currently not packaged on any operating system. Signed & versioned releases are planned but not available yet.
|
|
|
|
|
|
|
|
Check out the sources yourself, fetch dependencies using dep, compile and install to the zrepl user's `$PATH`.<br />
|
2017-11-09 21:23:45 +01:00
|
|
|
**Note**: if the zrepl binary is not in `$PATH`, you will have to adjust the examples in the :ref:`tutorial`.
|
2017-11-09 20:33:09 +01:00
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
# NOTE: you may want to checkout & build as an unprivileged user
|
|
|
|
cd /root
|
|
|
|
git clone https://github.com/zrepl/zrepl.git
|
|
|
|
cd zrepl
|
|
|
|
dep ensure
|
|
|
|
go build -o zrepl
|
|
|
|
cp zrepl /usr/local/bin/zrepl
|
|
|
|
rehash
|
|
|
|
# see if it worked
|
|
|
|
zrepl help
|
|
|
|
|
2017-11-09 21:17:09 +01:00
|
|
|
.. _mainconfigfile:
|
|
|
|
|
2017-11-09 20:33:09 +01:00
|
|
|
Configuration Files
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
zrepl searches for its main configuration file in the following locations (in that order):
|
|
|
|
|
|
|
|
* `/etc/zrepl/zrepl.yml`
|
|
|
|
* `/usr/local/etc/zrepl/zrepl.yml`
|
|
|
|
|
|
|
|
Alternatively, use CLI flags to specify a config location.
|
|
|
|
|
2017-11-09 21:23:45 +01:00
|
|
|
Copy a config from the :ref:`tutorial` or the `cmd/sampleconf` directory to one of these locations and customize it to your setup.
|
2017-11-09 20:33:09 +01:00
|
|
|
|
|
|
|
## Runtime Directories
|
|
|
|
|
2017-11-09 21:23:45 +01:00
|
|
|
Check the the :ref:`configuration documentation <conf-runtime-directories>` for more information.
|
2017-11-09 20:33:09 +01:00
|
|
|
For default settings, the following should to the trick.
|
|
|
|
|
2017-11-09 21:23:45 +01:00
|
|
|
::
|
|
|
|
|
|
|
|
mkdir -p /var/run/zrepl/stdinserver
|
|
|
|
chmod -R 0700 /var/run/zrepl
|
2017-11-09 20:33:09 +01:00
|
|
|
|
|
|
|
|
|
|
|
Running the Daemon
|
|
|
|
------------------
|
|
|
|
|
|
|
|
All actual work zrepl does is performed by a daemon process.
|
|
|
|
|
2017-11-10 13:41:17 +01:00
|
|
|
Logging is configurable via the config file. Please refer to the :ref:`logging documention <logging>`.
|
2017-11-09 20:33:09 +01:00
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
zrepl daemon
|
|
|
|
|
|
|
|
There are no *rc(8)* or *systemd.service(5)* service definitions yet. Note the *daemon(8)* utility on FreeBSD.
|
|
|
|
|
|
|
|
.. ATTENTION::
|
|
|
|
|
|
|
|
Make sure to actually monitor the error level output of zrepl: some configuration errors will not make the daemon exit.<br />
|
|
|
|
Example: if the daemon cannot create the [stdinserver]({{< relref "configuration/transports.md#stdinserver" >}}) sockets
|
|
|
|
in the runtime directory, it will emit an error message but not exit because other tasks such as periodic snapshots & pruning are of equal importance.
|
|
|
|
|
2017-11-09 21:17:09 +01:00
|
|
|
.. _install-restarting:
|
|
|
|
|
2017-11-09 20:33:09 +01:00
|
|
|
Restarting
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
The daemon handles SIGINT and SIGTERM for graceful shutdown.
|
|
|
|
|
|
|
|
Graceful shutdown means at worst that a job will not be rescheduled for the next interval.
|
|
|
|
|
|
|
|
The daemon exits as soon as all jobs have reported shut down.
|