summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2023-09-10 19:31:07 -0700
committerMike Crute <mike@crute.us>2023-09-10 19:32:02 -0700
commit8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929 (patch)
treefe9a99696a55adf3ef7de16104c55e2e3ebb1899
parentabab852d585b4cea2189ec6c1b981a26597ab13b (diff)
downloaddotfiles-8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929.tar.bz2
dotfiles-8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929.tar.xz
dotfiles-8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929.zip
Add some scripts
-rwxr-xr-xbin/docker-mirror.sh35
-rw-r--r--bin/sm-ipmi-key.go42
-rwxr-xr-xbin/update-dns.sh38
3 files changed, 115 insertions, 0 deletions
diff --git a/bin/docker-mirror.sh b/bin/docker-mirror.sh
new file mode 100755
index 0000000..22e75ce
--- /dev/null
+++ b/bin/docker-mirror.sh
@@ -0,0 +1,35 @@
1#!/bin/bash
2
3set -e
4
5function mirror() {
6 src="${1%:*}"; tag="${1#*:}"
7 dest="docker.crute.me/$(basename ${src})"
8
9 echo "Mirroring ${src}:${tag} to ${dest}:${tag}"
10
11 docker run docker.crute.me/skopeo:latest copy \
12 --dest-creds "docker-mirror:$(pass Pomona/Docker_Mirror_Key)" -a \
13 docker://${src}:${tag} \
14 docker://${dest}:${tag}
15}
16
17mirror "cesanta/docker_auth:latest"
18mirror "cesanta/docker_auth:1"
19mirror "klausmeyer/docker-registry-browser:latest"
20mirror "registry:latest"
21mirror "registry:2"
22mirror "mongo:3.6"
23mirror "mongo:4"
24mirror "mongo:latest"
25mirror "quay.io/wekan/wekan:latest"
26mirror "alpine:edge"
27mirror "alpine:latest"
28mirror "alpine:3.10"
29mirror "amazonlinux:2"
30mirror "frolvlad/alpine-glibc:latest"
31mirror "frolvlad/alpine-java:jre8-slim"
32mirror "golang:latest"
33mirror "nginx:mainline-alpine"
34mirror "ubuntu:14.04"
35mirror "ubuntu:16.04"
diff --git a/bin/sm-ipmi-key.go b/bin/sm-ipmi-key.go
new file mode 100644
index 0000000..7477e89
--- /dev/null
+++ b/bin/sm-ipmi-key.go
@@ -0,0 +1,42 @@
1package main
2
3// A key generator that generates magic keys
4// go run sm-ipmi-key.go
5
6import (
7 "crypto/hmac"
8 "crypto/sha1"
9 "encoding/hex"
10 "fmt"
11 "os"
12 "strings"
13)
14
15const secretKey = "8544E3B47ECA58F9583043F8"
16
17func mustUnhex(s string) []byte {
18 o, err := hex.DecodeString(s)
19 if err != nil {
20 panic(err)
21 }
22 return o
23}
24
25func main() {
26 // Cleanup mac
27 mac := strings.ReplaceAll(strings.ToLower(os.Args[1]), ":", "")
28
29 // Create hash
30 hash := hmac.New(sha1.New, mustUnhex(secretKey))
31 hash.Write(mustUnhex(mac))
32 res := hex.EncodeToString(hash.Sum(nil))
33
34 // Cut into groups of 4 characters
35 out := make([]string, 24/4)
36 for i := 0; i < 24/4; i++ {
37 out[i] = res[:24][i*4 : i*4+4]
38 }
39
40 // Print the groups with spaces between them
41 fmt.Println(strings.Join(out, " "))
42}
diff --git a/bin/update-dns.sh b/bin/update-dns.sh
new file mode 100755
index 0000000..1262195
--- /dev/null
+++ b/bin/update-dns.sh
@@ -0,0 +1,38 @@
1#!/bin/bash
2
3view="internal"
4#view="external"
5
6zone_key=$(grep "key \"master-view-$view\"" <<EOF
7key "master-view-external" { algorithm hmac-sha256; secret "$(pass Pomona/DNS_External_Key)"; };
8key "master-view-internal" { algorithm hmac-sha256; secret "$(pass Pomona/DNS_Internal_Key)"; };
9EOF
10)
11
12# Zone Transfer
13#zone=""
14#dig @ns1.as398223.net +nostats +nocmd -k <(echo $zone_key) AXFR $zone
15#exit 0
16
17if [[ $1 != "-r" ]]; then
18 echo "Dry run mode, no changes made" && exit 1
19fi
20
21# Update Records
22# NOTE: White space between PTR lines matters for buggy reasons
23(
24cat <<EOF
25
26
27
28update add dev.ssh-proxy.crute.me. 60 IN A 127.0.0.1
29
30
31
32
33
34
35send
36EOF
37) | nsupdate -k <(echo $zone_key)
38echo "Updated: $?"