summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2022-09-26 14:11:33 +0200
committerPatrick Spek <p.spek@tyil.nl>2022-09-26 14:11:33 +0200
commit53b6e03efe9eaab25acca069801adecd5933c17d (patch)
tree6145a239cd0b8802c035d43143d369b4b82fd410
parentec26dfb6c270487a0658aceb3298dad225189e1b (diff)
Add new git-server playbook
-rw-r--r--playbooks.d/git-server/description.txt1
-rw-r--r--playbooks.d/git-server/etc/defaults3
-rw-r--r--playbooks.d/git-server/etc/os.d/linux-gentoo1
-rw-r--r--playbooks.d/git-server/playbook.bash50
-rw-r--r--playbooks.d/git-server/share/gitconfig2
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@anoia-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@bast-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@caeghi-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@denahnu-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@edephas-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@faiwoo-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@gaeru-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@hurzak-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/root@tyil-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@anoia-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@bast-ed25519.pub5
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@caeghi-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@denahnu-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@edephas-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@faiwoo-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@hurzak-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@ivdea-ed25519.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@sessifet-rsa.pub1
-rw-r--r--playbooks.d/git-server/share/pubkeys.d/tyil@tyil-ed25519.pub1
24 files changed, 80 insertions, 0 deletions
diff --git a/playbooks.d/git-server/description.txt b/playbooks.d/git-server/description.txt
new file mode 100644
index 0000000..25573f4
--- /dev/null
+++ b/playbooks.d/git-server/description.txt
@@ -0,0 +1 @@
+Simple git server for personal use
diff --git a/playbooks.d/git-server/etc/defaults b/playbooks.d/git-server/etc/defaults
new file mode 100644
index 0000000..521190f
--- /dev/null
+++ b/playbooks.d/git-server/etc/defaults
@@ -0,0 +1,3 @@
+git.user=git
+pkg.git=git
+git.repodir=/srv/git
diff --git a/playbooks.d/git-server/etc/os.d/linux-gentoo b/playbooks.d/git-server/etc/os.d/linux-gentoo
new file mode 100644
index 0000000..7b9c30b
--- /dev/null
+++ b/playbooks.d/git-server/etc/os.d/linux-gentoo
@@ -0,0 +1 @@
+pkg.git=dev-vcs/git
diff --git a/playbooks.d/git-server/playbook.bash b/playbooks.d/git-server/playbook.bash
new file mode 100644
index 0000000..ac4f2da
--- /dev/null
+++ b/playbooks.d/git-server/playbook.bash
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+
+playbook_add() {
+ notice "$BASHTARD_PLAYBOOK" "Installing packages"
+ pkg install "$(config "pkg.git")"
+
+ notice "$BASHTARD_PLAYBOOK" "Creating user 'git'"
+ useradd \
+ --home-dir "$(config "git.repodir")" \
+ --create-home \
+ --shell "$(config "fs.bindir")/git-shell" \
+ "$(config "git.user")"
+
+ playbook_sync
+}
+
+playbook_sync() {
+ notice "$BASHTARD_PLAYBOOK" "Setting up authorized_keys"
+ mkdir -pv -- "$(config "git.repodir")/.ssh"
+
+ cat "$BASHTARD_ETCDIR/playbooks.d/$BASHTARD_PLAYBOOK/share/pubkeys.d/"* > "$(config "git.repodir")/.ssh/authorized_keys"
+
+ chown -Rv "$(config "git.user"):$(config "git.user")" "$(config "git.repodir")/.ssh"
+ chmod -v 700 "$(config "git.repodir")/.ssh"
+ chmod -v 644 "$(config "git.repodir")/.ssh/authorized_keys"
+
+ notice "$BASHTARD_PLAYBOOK" "Ensuring all desired repositories exist"
+ while read -r repo
+ do
+ local name="$(config "git.repos.$repo.name" "$repo")"
+ local path="$(config "git.repodir")/$(config "git.repos.$repo.path" "$name")"
+
+ info "$BASHTARD_PLAYBOOK" "Ensuring $name exists ($repo)"
+
+ if [[ ! -d "$path" ]]
+ then
+ notice "$BASHTARD_PLAYBOOK" "Creating bare repository at $path"
+ sudo -u git mkdir -pv -- "$path"
+ sudo -u git git -C "$path" --bare init
+ fi
+
+ printf "$(config "git.repos.$repo.description" "Nondescript")\n" > "$path/description"
+ done < <(config_subkeys "git.repos")
+}
+
+playbook_del() {
+ notice "$BASHTARD_PLAYBOOK" "Cleaning up repodir"
+ rm -frv --one-file-system -- "$(config "git.repodir")"
+ userdel "$(config "git.user")"
+}
diff --git a/playbooks.d/git-server/share/gitconfig b/playbooks.d/git-server/share/gitconfig
new file mode 100644
index 0000000..200c0c9
--- /dev/null
+++ b/playbooks.d/git-server/share/gitconfig
@@ -0,0 +1,2 @@
+[init]
+ defaultBranch = master
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@anoia-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@anoia-ed25519.pub
new file mode 100644
index 0000000..30daab2
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@anoia-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJVA8JzM40s3VSWIKtFDCL3DX8pnM8fhX81I7aa/U+ie root@anoia.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@bast-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@bast-ed25519.pub
new file mode 100644
index 0000000..e1d7ab3
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@bast-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICk/6jLojpp5Jaum8C1trxqtZuLd/GJH8sh0SB/Z/y9J root@bast
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@caeghi-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@caeghi-ed25519.pub
new file mode 100644
index 0000000..2c94f81
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@caeghi-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEeckhvozWNKJssM+PY44fBXkzVeoqg9H8NHreWLUvGY root@caeghi.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@denahnu-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@denahnu-ed25519.pub
new file mode 100644
index 0000000..fb857d7
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@denahnu-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID7lMmT3CJEPk1BnpW0UHie6g0LUJ/i45Sp5l4DGocwg root@denahnu.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@edephas-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@edephas-ed25519.pub
new file mode 100644
index 0000000..0d09b9a
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@edephas-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID2tje8i3DtCmLrc+qJ7d02qQQ0lO7wtwWXO4XthWGra root@edephas
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@faiwoo-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@faiwoo-ed25519.pub
new file mode 100644
index 0000000..2f712c7
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@faiwoo-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICcFE9oQT3s+vLsv4WNKTn3K0ZhntStXdCHfdBPj/62V root@faiwoo
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@gaeru-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@gaeru-ed25519.pub
new file mode 100644
index 0000000..3056a3d
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@gaeru-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICj0hW49y+AGuMN2D672I5K6ZVLPVZLCsd+2MIat54nP root@gaeru.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@hurzak-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@hurzak-ed25519.pub
new file mode 100644
index 0000000..348487a
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@hurzak-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOdRI1JSQnDYqoCkCrNz/T9mLSCNb5vRSnNjb/3CGtDK root@hurzak.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/root@tyil-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/root@tyil-ed25519.pub
new file mode 100644
index 0000000..60cd440
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/root@tyil-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2UxgdieMtF0a9QXFRb5QVYOwxG9oN1Q85///Y6VCZj root@tyil.email
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@anoia-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@anoia-ed25519.pub
new file mode 100644
index 0000000..aea0daa
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@anoia-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOLpn3Tny1LSWaLeIDmdAkZZoAajSJN9CQvfFdgLFfsK tyil@anoia.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@bast-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@bast-ed25519.pub
new file mode 100644
index 0000000..00e492d
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@bast-ed25519.pub
@@ -0,0 +1,5 @@
+<<<<<<< HEAD
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAXhPa+EGS4NySl0YqG38xGEab6uqdimseqq4tlLWyV4 tyil@bast.tyil.net
+=======
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILE1+6HjG3XvLQDHLwnFzq78SEsPTNa8Wu6+inmTMqu7 tyil@bast
+>>>>>>> d8b0063 (Update pubkey for tyil@bast)
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@caeghi-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@caeghi-ed25519.pub
new file mode 100644
index 0000000..969df53
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@caeghi-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILQp0puZEEADKgUF1XYtLPzcYLTGNdDj0WCTf37adaZ2 tyil@caeghi.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@denahnu-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@denahnu-ed25519.pub
new file mode 100644
index 0000000..0434392
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@denahnu-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE4sustL8Mw5lQpyuUnmhJgeypvlHy6UFaEKmFCGcltL tyil@denahnu
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@edephas-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@edephas-ed25519.pub
new file mode 100644
index 0000000..b3b01eb
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@edephas-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHiNIpe2QCOk22YYU/mY7QA2rq0E07wetzj5R1wtWxeC tyil@edephas.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@faiwoo-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@faiwoo-ed25519.pub
new file mode 100644
index 0000000..6dd5ab7
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@faiwoo-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFCiQJhuTvL0vZoOAu1L0sU81VV2qH1l4U73bL9RYfrW tyil@faiwoo
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@hurzak-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@hurzak-ed25519.pub
new file mode 100644
index 0000000..0b6b1ef
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@hurzak-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINRprF4gE0pGiMNSxR8Z0fFsBikoifsm7HpdbHkBsmDg tyil@hurzak.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@ivdea-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@ivdea-ed25519.pub
new file mode 100644
index 0000000..834bcd2
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@ivdea-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE+Ki28DBM3A8QUpxbAlZx2x111+rhn8JPcec67y9xi/ tyil@ivdea.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@sessifet-rsa.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@sessifet-rsa.pub
new file mode 100644
index 0000000..1b8d9e6
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@sessifet-rsa.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqntlHQ/3HHPUoNl7bpQ6pZIxZHnUAAIXTB5eBjDE0auJZE0Qz5HjUkqZNSb0SzoK9GgLLMH7yNMaYMSTRJguRARRTY3MpdQbrsMu5/8HbKZwxhy7jVRAODnIDO2b3A67ZOHQAazNZYlX873fVhDJHP3RPpYWJS1L2jyk6Z3euvg0duo4JolBEHzmuDi8mEhdNhjW54VM9CRofRrD2VBrnxbmH6LCQwVfuEiz7jVlyugKIiPtaX/9fSnwUVjpNVn0TA93FL0M6xypZFywORrAGLV9kuoQ/G0iVfXqH1A04OFzH1RGNq+oHfHWYZdE098SS+ur9E8+wXcIDBkkI37kF tyil@sessifet.tyil.net
diff --git a/playbooks.d/git-server/share/pubkeys.d/tyil@tyil-ed25519.pub b/playbooks.d/git-server/share/pubkeys.d/tyil@tyil-ed25519.pub
new file mode 100644
index 0000000..87d8f58
--- /dev/null
+++ b/playbooks.d/git-server/share/pubkeys.d/tyil@tyil-ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDQDyWbo8Ma60t5wwKK2bdxo03gj2GxxCyn2/V2nNr5Z tyil@tyil.email