diff options
author | Mike Crute <mike@crute.us> | 2023-09-10 19:31:07 -0700 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2023-09-10 19:32:02 -0700 |
commit | 8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929 (patch) | |
tree | fe9a99696a55adf3ef7de16104c55e2e3ebb1899 | |
parent | abab852d585b4cea2189ec6c1b981a26597ab13b (diff) | |
download | dotfiles-8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929.tar.bz2 dotfiles-8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929.tar.xz dotfiles-8fc1c6b14b1fdd6be5f0a94507d4bfe031e04929.zip |
Add some scripts
-rwxr-xr-x | bin/docker-mirror.sh | 35 | ||||
-rw-r--r-- | bin/sm-ipmi-key.go | 42 | ||||
-rwxr-xr-x | bin/update-dns.sh | 38 |
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 | |||
3 | set -e | ||
4 | |||
5 | function 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 | |||
17 | mirror "cesanta/docker_auth:latest" | ||
18 | mirror "cesanta/docker_auth:1" | ||
19 | mirror "klausmeyer/docker-registry-browser:latest" | ||
20 | mirror "registry:latest" | ||
21 | mirror "registry:2" | ||
22 | mirror "mongo:3.6" | ||
23 | mirror "mongo:4" | ||
24 | mirror "mongo:latest" | ||
25 | mirror "quay.io/wekan/wekan:latest" | ||
26 | mirror "alpine:edge" | ||
27 | mirror "alpine:latest" | ||
28 | mirror "alpine:3.10" | ||
29 | mirror "amazonlinux:2" | ||
30 | mirror "frolvlad/alpine-glibc:latest" | ||
31 | mirror "frolvlad/alpine-java:jre8-slim" | ||
32 | mirror "golang:latest" | ||
33 | mirror "nginx:mainline-alpine" | ||
34 | mirror "ubuntu:14.04" | ||
35 | mirror "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 @@ | |||
1 | package main | ||
2 | |||
3 | // A key generator that generates magic keys | ||
4 | // go run sm-ipmi-key.go | ||
5 | |||
6 | import ( | ||
7 | "crypto/hmac" | ||
8 | "crypto/sha1" | ||
9 | "encoding/hex" | ||
10 | "fmt" | ||
11 | "os" | ||
12 | "strings" | ||
13 | ) | ||
14 | |||
15 | const secretKey = "8544E3B47ECA58F9583043F8" | ||
16 | |||
17 | func mustUnhex(s string) []byte { | ||
18 | o, err := hex.DecodeString(s) | ||
19 | if err != nil { | ||
20 | panic(err) | ||
21 | } | ||
22 | return o | ||
23 | } | ||
24 | |||
25 | func 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 | |||
3 | view="internal" | ||
4 | #view="external" | ||
5 | |||
6 | zone_key=$(grep "key \"master-view-$view\"" <<EOF | ||
7 | key "master-view-external" { algorithm hmac-sha256; secret "$(pass Pomona/DNS_External_Key)"; }; | ||
8 | key "master-view-internal" { algorithm hmac-sha256; secret "$(pass Pomona/DNS_Internal_Key)"; }; | ||
9 | EOF | ||
10 | ) | ||
11 | |||
12 | # Zone Transfer | ||
13 | #zone="" | ||
14 | #dig @ns1.as398223.net +nostats +nocmd -k <(echo $zone_key) AXFR $zone | ||
15 | #exit 0 | ||
16 | |||
17 | if [[ $1 != "-r" ]]; then | ||
18 | echo "Dry run mode, no changes made" && exit 1 | ||
19 | fi | ||
20 | |||
21 | # Update Records | ||
22 | # NOTE: White space between PTR lines matters for buggy reasons | ||
23 | ( | ||
24 | cat <<EOF | ||
25 | |||
26 | |||
27 | |||
28 | update add dev.ssh-proxy.crute.me. 60 IN A 127.0.0.1 | ||
29 | |||
30 | |||
31 | |||
32 | |||
33 | |||
34 | |||
35 | send | ||
36 | EOF | ||
37 | ) | nsupdate -k <(echo $zone_key) | ||
38 | echo "Updated: $?" | ||