From 7353ecca2613f8550b8ac815b69bc9267aa2a163 Mon Sep 17 00:00:00 2001 From: Magic_RB Date: Wed, 10 Mar 2021 23:39:02 +0100 Subject: [PATCH] Changes Signed-off-by: Magic_RB --- assets/css/style.css | 21 +- assets/ttf/ubuntu-mono.ttf | Bin 0 -> 189004 bytes blog/on-databases-docker-and-nix.org | 6 +- ...calable-concourseci-with-nomad-and-nix.org | 451 +++++++++++++++++- docker/apache.cfg | 34 ++ docker/entrypoint.sh | 1 + flake.lock | 35 +- flake.nix | 139 +++++- make.el | 11 +- 9 files changed, 664 insertions(+), 34 deletions(-) create mode 100644 assets/ttf/ubuntu-mono.ttf create mode 100644 docker/apache.cfg create mode 100644 docker/entrypoint.sh diff --git a/assets/css/style.css b/assets/css/style.css index 1b9b681..4525ed8 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -8,6 +8,11 @@ src: url(../ttf/ubuntu-regular.ttf) format("truetype"); } +@font-face { + font-family: "Ubuntu Mono"; + src: url(../ttf/ubuntu-mono.ttf) format("truetype"); +} + * { font-family: "Ubuntu Regular"; } @@ -19,7 +24,20 @@ ul { code { background-color: #eee; border: 0.01rem solid #999; - padding: 0.1rem; + padding: 0rem 0.1rem 0rem 0.1rem; +} + + +.TINY { + font-size: 0.75rem; +} + +.WARNING { + background-color: #eee; + border: 1px solid #FF0000; + display: block; + padding: 0.5rem; + font-family: "Ubuntu Mono"; } pre { @@ -27,6 +45,7 @@ pre { border: 1px solid #999; display: block; padding: 0.5rem; + font-family: "Ubuntu Mono"; } #table-of-contents { diff --git a/assets/ttf/ubuntu-mono.ttf b/assets/ttf/ubuntu-mono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c8add8e5737f4338618ac87e7185348de62b2da1 GIT binary patch literal 189004 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 cX#cIaf-b>?(PB=xE&jM3{wIXn;=. - #+BEGIN_VERBATIM +*** Structure + - [[*concourse][concourse]] + - [[web][web]] + - [[*db][db]] + - [[workers][workers]] + - [[*][]] + +**** concourse + Nothing here, just a folder for the other secrets + +***** web + - tsa_host_key - key used for tsa (communication between a web and a worker node) + - tsa_host_key_pub + - session_signing key + - local_user_name - username of the administrator user + - local_user_pass - password of the administrator user + +***** db + - password + - user + - database + - root_user + - root_password + +***** workers + Holds dynamically generated secrets, of all the workers nodes + +***** + - private_key - the worker's private key + - public_key - the worker's public key, used for authentication when connecting to a web node + +*** Policies + We'll need 3 policies, =concourse-web-policy=, =concourse-worker-policy= and =concourse-db-policy=. + + #+TITLE: concourse-db-policy.hcl + #+BEGIN_SRC hcl + path "kv/data/concourse/db" { + capabilities = ["read"] + } + #+END_SRC + + #+TITLE: concourse-web-policy.hcl + #+BEGIN_SRC hcl + path "kv/data/concourse/workers/*" { + capabilities = ["read"] + } + + path "kv/metadata/concourse/workers" { + capabilities = ["list"] + } + + path "kv/data/concourse/web" { + capabilities = ["read"] + } + + path "kv/data/concourse/db" { + capabilities = ["read"] + } + #+END_SRC + + #+TITLE: concourse-worker-policy.hcl + #+BEGIN_SRC hcl + path "kv/data/concourse/workers/*" { + capabilities = ["read", "update", "delete"] + } + + path "kv/data/concourse/web" { + capabilities = ["read"] + } + #+END_SRC + +*** Application + Create the =web= secrets. - #+END_VERBATIM + #+BEGIN_SRC shell-script + concourse generate-key -t rsa -f ./session_signing_key + _session_signing_key="$(cat session_signing_key)" + concourse generate-key -t ssh -f ./tsa_host_key + _tsa_host_key="$(cat tsa_host_key)" + _tsa_host_key_pub="$(cat tsa_host_key.pub)" + #+END_SRC + + Upload them. + + #+BEGIN_SRC shell-script + vault kv put concourse/web \ + session_signing_key="$_session_signing_key" \ + tsa_host_key="$_tsa_host_key" \ + tsa_host_key_pub="$_tsa_host_key_pub" \ + local_user_pass="changeme" \ + local_user_name="changeme" + #+END_SRC + + Manually specify and upload the secrets for PostgreSQL. + + #+BEGIN_SRC shell-script + vault kv put concourse/db \ + password="changeme" \ + user="changeme" \ + database="changeme" \ + root_user="changeme" \ + root_password="changeme" + #+END_SRC + + #+BEGIN_TINY + The policy file expects the path to be prefixed ~kv/~ if you're using KVv1, with v2 it expects ~kv/data/~. That's + not the case for the ~vault kv~ subcommand, because it automatically prepends the corrects prefix. + #+END_TINY + +** Nomad Web Job + The basic idea of this job is that we start 2 tasks, one for PostgreSQL and the other one for a ConcourseCI, this + could be clustered, but it's out of the scope of this post. + + #+BEGIN_WARNING + The paths in =read=-like go template calls, must be prefixed with =kv/data= while the =list=-like calls, must be + prefixed with =kv/metadata= if you're using KVv2. I figured that out by inspecting the =vault kv= subcommand with + the =-output-curl-string= flag. + #+END_WARNING + + #+BEGIN_SRC hcl + job "concourse-ci-web" { + datacenters = ["homelab-1"] + type = "service" + + group "svc" { + count = 1 + + network { + mode ="bridge" + + port "db" { + to = "5432" + } + port "http" { + static = "8080" + to = "8080" + } + port "tsa" { + static = "2222" + to = "2222" + } + } + + service { + name = "concourse-web" + port = "http" + + check { + type = "http" + path = "/" + interval = "2s" + timeout = "2s" + } + } + + service { + name = "concourse-tsa" + port = "2222" + } + + service { + name = "concourse-db" + port = "db" + } + + task "db" { + driver = "docker" + + config { + image = "magicrb/postgresql@sha256:changeme" + ports = ["db"] + + volumes = [ + "secrets/main.sh:/data/scripts/main.sh", + ] + } + + vault { + policies = ["concourse-db-policy"] + } + + template { + data = <> /data/postgresql/pg_hba.conf + cat << EOD >> /data/postgresql/postgresql.conf + listen_addresses = '0.0.0.0' + password_encryption = md5 + EOD + fi + EOF + destination = "${NOMAD_SECRETS_DIR}/main.sh" + } + } + + task "web" { + driver = "docker" + + config { + image = "concourse/concourse@sha256:changeme" + command = "web" + ports = ["http", "tsa"] + } + + vault { + policies = ["concourse-web-policy"] + } + + restart { + attempts = 5 + delay = "15s" + } + + template { + data = <=. You can actually get the host's hostname from + the =node.unique.name= environment variable, which is not available to the actual code running the in container, but + only in the =template= stanzas. We therefore save it's content into a real environment variable. After that it's + quite simple. \\ + + I'll add the simplified script, which generates and saves the generated secrets. The container must run as a + pre-start task, which is not a sidecar, so that it completes before the main task starts. Template evaluation happens + at runtime, so the secrets will be properly resolved. + + #+BEGIN_SRC shell-script + concourse generate-key -t ssh -f /worker_key + + _worker_key="$(cat /worker_key)" + _worker_key_pub="$(cat /worker_key.pub)" + echo -e "${_worker_key//$'\n'/\\\\n}" > /worker_key + echo -e "${_worker_key_pub//$'\n'/\\\\n}" > /worker_key.pub + + + JSON_FMT='{"public_key":"%s","private_key":"%s"}' + printf "$JSON_FMT" "$(< /worker_key.pub)" "$(< /worker_key)" > secret.json + + vault kv put kv/concourse/workers/blowhole @secret.json + #+END_SRC + + The Bash substitutions are there only to avoid depending on another program like =sed=, which could do it too, and it + would be readable. I also opted for using JSON file, because I was worried I might hit the maximum argument length. \ + + One thing to note is that I haven't yet figured out a way to dynamically get the address of one of the available + Vault instances. So for now, it's okay to hardcode it in. + + #+BEGIN_SRC hcl + job "concourse-ci-worker" { + datacenters = ["homelab-1"] + type = "system" + + group "svc" { + count = 1 + + network { + mode = "bridge" + } + + task "create-secret" { + driver = "docker" + + config { + image = "useyourown" + } + + vault { + policies = ["concourse-worker-policy"] + } + + lifecycle { + sidecar = false + hook = "prestart" + } + + template { + data = < + Require all denied + Options SymLinksIfOwnerMatch + + + + + Require all granted + Options +Indexes +FollowSymlinks + DirectoryIndex index.html + + \ No newline at end of file diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 0000000..63f705a --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1 @@ +apachectl start -f $_apache_cfg -D FOREGROUND diff --git a/flake.lock b/flake.lock index e05db26..9931dfd 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "emacs-htmlize": { + "flake": false, + "locked": { + "lastModified": 1597563983, + "narHash": "sha256-wiRnlWKYQSvQijrymSkEbsW3581LOeuTItkxvTgHXDE=", + "owner": "hniksic", + "repo": "emacs-htmlize", + "rev": "49205105898ba8993b5253beec55d8bddd820a70", + "type": "github" + }, + "original": { + "owner": "hniksic", + "repo": "emacs-htmlize", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1614447571, @@ -29,10 +45,27 @@ "type": "github" } }, + "rlib": { + "locked": { + "lastModified": 1615407344, + "narHash": "sha256-b9fQG73Znv3x4UENEhe75EXDH8x1RcIz6NXj05OHBmY=", + "ref": "master", + "rev": "ea13b638781b3c2a5baf97149873f51a1927d89c", + "revCount": 11, + "type": "git", + "url": "https://gitea.redalder.org/RedAlder/rlib" + }, + "original": { + "type": "git", + "url": "https://gitea.redalder.org/RedAlder/rlib" + } + }, "root": { "inputs": { + "emacs-htmlize": "emacs-htmlize", "nixpkgs": "nixpkgs", - "org-thtml": "org-thtml" + "org-thtml": "org-thtml", + "rlib": "rlib" } } }, diff --git a/flake.nix b/flake.nix index c73e425..8e0696b 100644 --- a/flake.nix +++ b/flake.nix @@ -5,38 +5,135 @@ url = "github:juanjosegarciaripoll/org-thtml"; flake = false; }; + emacs-htmlize = { + url = "github:hniksic/emacs-htmlize"; + flake = false; + }; + + rlib = { + url = "git+https://gitea.redalder.org/RedAlder/rlib"; + flake = true; + }; }; - outputs = { self, nixpkgs, org-thtml }: + outputs = { self, nixpkgs, org-thtml, emacs-htmlize, ... }@inputs: let supportedSystems = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system); + + rlib = inputs.rlib.lib { + inherit nixpkgs; + system = "x86_64-linux"; + packages = { + nixpkgs = { + config = {}; + versions = { + stable = inputs.nixpkgs; + }; + }; + custom = {}; + }; + self = rlib; + }; + + websiteBase = pkgs: + pkgs.stdenv.mkDerivation { + name = "magic_rb-website"; + version = "0.1"; + src = ./.; + nativeBuildInputs = [ pkgs.emacs ]; + + buildPhase = '' + cp ${org-thtml}/ox-thtml.el ./ox-thtml.el + cp ${emacs-htmlize}/htmlize.el ./htmlize.el + mkdir tmp && export HOME=$(pwd)/tmp + emacs --script ./make.el + + find public_html -name 'sitemap.*' -exec rm {} \; + ''; + + installPhase = '' + mkdir -p $out + cp -r public_html/* $out + ''; + }; in { website = forAllSystems (system: let pkgs = import nixpkgs { inherit system; }; - in - pkgs.stdenv.mkDerivation { - name = "magic_rb-website"; - version = "0.1"; - src = ./.; - nativeBuildInputs = [ pkgs.emacs ]; - - buildPhase = '' - cp ${org-thtml}/ox-thtml.el ./ox-thtml.el - mkdir tmp && export HOME=$(pwd)/tmp - emacs --script ./make.el - - find public_html -name 'sitemap.*' -exec rm {} \; - ''; - - installPhase = '' - mkdir -p $out - cp -r public_html/* $out - ''; - } + websiteBase pkgs ); + + dockerImages = with rlib.dockerTools; { + apache = buildLayeredImage + ({ nixpkgs, custom, rlib }: + with rlib.dockerTools; + let + shadow = makeShadow { + withNixbld = false; + users = [ + { + name = "www-data"; + uid = "5000"; + gid = "5000"; + home = "/var/empty"; + shell = "${nixpkgs.stable.bash}/bin/bash"; + description = "Apache HTTPD user"; + } + ]; + groups = [ + { + name = "www-data"; + id = 5000; + } + ]; + }; + ca-certificates = makeCerts { + certs = []; + }; + apache = nixpkgs.stable.apache.override { + proxySupport = false; + sslSupport = false; + http2Support = false; + ldapSupport = false; + libxml2Support = false; + brotliSupport = false; + }; + entrypoint = nixpkgs.stable.writeShellScriptBin "entrypoint.sh" (builtins.readFile ./docker/entrypoint.sh); + website = nixpkgs.stable.runCommandNoCCLocal "website" {} '' + mkdir -p $out/var/ + ln -s ${websiteBase nixpkgs.stable} $out/var/www + ''; + logs = nixpkgs.stable.runCommandNoCCLocal "logs" {} '' + mkdir -p $out/var/log/apache2 + ''; + + in + { + name = "magic_rb-website-apache"; + tag = "latest"; + + contents = [ + entrypoint + shadow + ca-certificates + makeTmp + makeBasicBin + website + logs + ]; + + config = with nixpkgs.stable; { + Entrypoint = [ "${dumb-init}/bin/dumb-init" "--" "/bin/entrypoint.sh" ]; + + Env = [ + "PATH=${lib.makeBinPath [ busybox apacheHttpd bash ]}" + "_apache_cfg=${./docker/apache.cfg}" + ]; + }; + }); + }; }; } diff --git a/make.el b/make.el index 66de274..a3010ee 100644 --- a/make.el +++ b/make.el @@ -4,6 +4,7 @@ ;;; Code: (load-file "./ox-thtml.el") +;; (load-file "./htmlize.el") (require 'org) (require 'ox) (require 'ox-html) @@ -22,7 +23,12 @@ ;; DOES NOT WORK https://github.com/alphapapa/unpackaged.el#export-to-html-with-useful-anchors -(setq org-export-with-sub-superscripts '{}) +(setq org-export-with-sub-superscripts '{} + org-export-headline-levels 6 + ; emacs-htmlize does not work when Emacs is ran in =script= mode unfortunately + ;; org-html-html5-fancy t + ;; org-html-htmlize-output-type 'inline-css + ) (defvar org-publish-project-alist) (setq org-publish-project-alist @@ -36,7 +42,8 @@ :with-date nil :html-template ,(templated-html-load-template "templates/blog.html") :publishing-function org-html-publish-to-templated-html - :headline-levels 4 + ;; :htmlized-source t + :headline-levels 5 :exclude "^\\(index.org\\|*.inc\\)" :auto-preamble t :auto-sitemap t