## Experiences with Drist "How rewriting and pushing helped me save time." Ivan J. ## Drist * Tool for configuration deployment * Simple to understand and much smaller than alternatives ## Alternatives * Ansible * Puppet * $hipstertool * slack ## slack * https://packages.debian.org/sid/slack * Much simpler than other alternatives * Similar to drist, but: * Uses a pull method which requires a lot more configuration ## Drist methodology 1. Write simple modules 2. Push to servers ## Layout ├── Makefile ├── named ├── nginx ├── qemus ├── scripts └── ssl ## A simple drist module qemus ├── config.mk ├── files-alderaan │   └── etc │   └── conf.d │   ├── qemu.ftwhr │   ├── qemu.jakku │   └── qemu.nextcloud ├── files-dantooine │   └── etc │   └── conf.d │   └── qemu.debian-print-server ├── Makefile -> ../Makefile └── script ## A less simple drist module ├── certbot │   ├── config │   │   ├── accounts │   │   ├── csr │   │   ├── keys │   │   ├── live │   │   └── renewal-hooks │   ├── credentials.ini │   └── work ├── config.mk ├── files-alderaan │   └── etc │   └── ssl ├── files-jakku │   └── etc │   └── ssl ├── Makefile -> ../Makefile ├── newcert.sh ├── renew.sh ├── script-alderaan └── script-jakku ## Configuration Makefile: include config.mk all: $(SERVERS) $(SERVERS): drist -p $@ config.mk: SERVERS = root@dantooine \ root@alderaan The script takes care of any service restarting and/or file permissions and ownership ## Usage * Writing a new module is as simple as: $ mkdir -p module/files && cd module $ ln -s ../Makefile $ echo 'SERVERS = root@tatooine' > config.mk $ echo 'Drist rocks' > files/index.gph ## Usage * Deploying is as simple as: $ time make -j4 [cut output] make -j4 0.07s user 0.06s system 14% cpu 0.915 total ## Fin Thank you Solene!