summaryrefslogtreecommitdiff
path: root/playbooks.d
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2023-07-31 14:02:02 +0200
committerPatrick Spek <p.spek@tyil.nl>2023-08-01 13:17:48 +0200
commit9a5279b3309a8553ef87bac2c8f3de91aa67855b (patch)
tree85c86d04baf9d7b5fc046fc34b2f525d73c5f612 /playbooks.d
parentadb182b14b81997819fef19b56b8623634b3fb9f (diff)
Add base playbook for nfs-server
Diffstat (limited to 'playbooks.d')
-rw-r--r--playbooks.d/nfs-server/description.txt1
-rw-r--r--playbooks.d/nfs-server/etc/defaults3
-rw-r--r--playbooks.d/nfs-server/etc/os.d/linux-gentoo1
-rw-r--r--playbooks.d/nfs-server/playbook.bash40
4 files changed, 45 insertions, 0 deletions
diff --git a/playbooks.d/nfs-server/description.txt b/playbooks.d/nfs-server/description.txt
new file mode 100644
index 0000000..8e396fe
--- /dev/null
+++ b/playbooks.d/nfs-server/description.txt
@@ -0,0 +1 @@
+A Bashtard playbook to configure a machine as an NFS server
diff --git a/playbooks.d/nfs-server/etc/defaults b/playbooks.d/nfs-server/etc/defaults
new file mode 100644
index 0000000..f8af32e
--- /dev/null
+++ b/playbooks.d/nfs-server/etc/defaults
@@ -0,0 +1,3 @@
+pkg.nfs-utils=nfs-utils
+svc.nfs=nfs-server
+svc.rpcbind=rpcbind
diff --git a/playbooks.d/nfs-server/etc/os.d/linux-gentoo b/playbooks.d/nfs-server/etc/os.d/linux-gentoo
new file mode 100644
index 0000000..a76300d
--- /dev/null
+++ b/playbooks.d/nfs-server/etc/os.d/linux-gentoo
@@ -0,0 +1 @@
+pkg.nfs-utils=net-fs/nfs-utils
diff --git a/playbooks.d/nfs-server/playbook.bash b/playbooks.d/nfs-server/playbook.bash
new file mode 100644
index 0000000..91efec2
--- /dev/null
+++ b/playbooks.d/nfs-server/playbook.bash
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+
+playbook_add() {
+ pkg install nfs-utils
+
+ touch /etc/exports
+
+ playbook_sync
+
+ svc enable nfs
+ svc enable rpcbind
+
+ svc start nfs
+ svc start rpcbind
+}
+
+playbook_sync() {
+ local buffer="$(tmpfile)"
+ local hash="$(file_hash /etc/exports)"
+
+ # TODO: Write the config file!
+
+ [[ "$(file_hash "$buffer")" == "$hash" ]] && return
+
+ mv -- "$buffer" "/etc/exports"
+
+ [[ "$BASHTARD_ACTION" == "add" ]] && return
+
+ exportfs -rv
+}
+
+playbook_del() {
+ svc stop rpcbind
+ svc stop nfs
+
+ svc disable rpcbind
+ svc disable nfs
+
+ pkg uninstall nfs-utils
+}