From ef03f0f12d75e2ac807da0c676975b6d70284cda Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 18 Apr 2020 09:34:12 +0300 Subject: Add: script to run Subplot easily --- check | 5 +++++ 1 file changed, 5 insertions(+) create mode 100755 check diff --git a/check b/check new file mode 100755 index 0000000..4e4f4d0 --- /dev/null +++ b/check @@ -0,0 +1,5 @@ +#!/bin/sh + +set -eu + +CONTRACTOR_ADDRESS="$1" sp-codegen contractor.md -o test.py --run -- cgit v1.2.1 From b8cb127cdd6dc942ab0e518785926f39475f9d64 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 18 Apr 2020 09:34:42 +0300 Subject: Refactor: script to build VM images --- vm.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/vm.sh b/vm.sh index 8abdd36..566f208 100755 --- a/vm.sh +++ b/vm.sh @@ -2,7 +2,12 @@ set -eu -vmdb2 worker.vmdb --output worker.img --rootfs-tarball vm.tar.gz -v -vmdb2 worker-subplot.vmdb --output worker-subplot.img --rootfs-tarball vm.tar.gz -v -vmdb2 worker-vmdb2.vmdb --output worker-vmdb2.img --rootfs-tarball vm.tar.gz -v -vmdb2 vm.vmdb --output vm.img --rootfs-tarball vm.tar.gz -v +build() { + vmdb2 "$1" --output "$2" --rootfs-tarball vm.tar.gz -v --log vmdb2.log +} + +build vm.vmdb vm.img +build worker.vmdb worker.img +build worker-subplot.vmdb worker-subplot.img +build worker-vmdb2.vmdb worker-vmdb2.img +build worker-scap.vmdb worker-scap.img -- cgit v1.2.1 From b653961a50cc3ab45f2a3e121c15bb0683c36e44 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 18 Apr 2020 09:35:08 +0300 Subject: Change: unify VM image specifications --- vm.vmdb | 3 +++ worker-scap.vmdb | 4 +++- worker-scap.yml | 11 +---------- worker-subplot.vmdb | 7 ++++--- worker-subplot.yml | 23 ++++++----------------- worker-vmdb2.vmdb | 9 ++++++--- worker-vmdb2.yml | 11 ----------- worker.vmdb | 7 +++++-- worker.yml | 12 ------------ 9 files changed, 28 insertions(+), 59 deletions(-) diff --git a/vm.vmdb b/vm.vmdb index 7f207d6..82b0ab6 100644 --- a/vm.vmdb +++ b/vm.vmdb @@ -30,7 +30,10 @@ steps: - apt: install packages: - linux-image-amd64 + - locales-all - python3 + - sudo + - ssh tag: / unless: rootfs_unpacked diff --git a/worker-scap.vmdb b/worker-scap.vmdb index 2467378..a0b7a68 100644 --- a/worker-scap.vmdb +++ b/worker-scap.vmdb @@ -30,8 +30,10 @@ steps: - apt: install packages: - linux-image-amd64 - - python + - locales-all - openssh-server + - python3 + - sudo tag: / unless: rootfs_unpacked diff --git a/worker-scap.yml b/worker-scap.yml index 7387483..1003b77 100644 --- a/worker-scap.yml +++ b/worker-scap.yml @@ -75,18 +75,9 @@ owner: root group: root mode: 0600 - - file: - state: directory - path: /workspace - - lineinfile: - path: /etc/fstab - regexp: '^/dev/vdb' - line: '/dev/vdb /workspace ext4 defaults 0 2' vars: host: worker - ansible_python_interpreter: /usr/bin/python - user_pub: | - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAlECa3tbFGXhB3Zh/4/GhM11THOThVfiuLqqJ2dpWHEClzpKJHpzzwWt7g9z/MMQNMsUJLy+okz+De6hdjjmYJ9kG9Sr3H4YKq6itGQMj7L/cH3WS3ynp0uy0oW3hf932vDZKQ8iy9vczXH+ERYl+4TYae1Jp4Hyf4/2IYxEfuhKctvSvqySST3Qk9JNZ71HFGOWhjH/MmoCLoT1v+HkqmHdYf/GMKGRo3gqCEGgCgNErYYIyKm3OF3dHXK+hyGLE/cZNu6fU5woW3rvtUCFt08Ri2pm0cnXXJn9jQIMxfS5Kkf64svwgzKmPqgX1f4flopYPlsBXduCgzbJvj+lpgauAk/i1A5B01CFa9sI4C6pHZmwk1qxRwN+4IXL2CQt+tDgYC84ZDDd8R7cNyL22a3KhMQmdHtvog1beAa3Ab+J+cafkXXN+Es9f1wQjzk7DiHupmJIVofBvPP+cRcB46rwha6ati8Fa5QkT9rXFNqQsKk7jq8TIi54Bm15OOa0jInGG3TM17b9Ftu2WTJSAaqgBnDfZiInK7HEvC6K/IBljrN3oGagmFZPrAvzw7d6C2/nKFAQtfoMcE5oWVDrJyjsmJ8oaru0E8rwj7mMvyKPgEMnXTGXLWDgEo50+i291m4bkCxVwiOPbPRvdMll1Y8qfBAPT76sY4Ikgcw/2iw== openpgp:0xBBE80E50 + ansible_python_interpreter: /usr/bin/python3 ci_prod_signing_key: | -----BEGIN PGP PUBLIC KEY BLOCK----- diff --git a/worker-subplot.vmdb b/worker-subplot.vmdb index a96dbc7..3ff1d1c 100644 --- a/worker-subplot.vmdb +++ b/worker-subplot.vmdb @@ -1,8 +1,6 @@ -# An image for running the Ick contractor inner VM. - steps: - mkimg: "{{ output }}" - size: 10G + size: 4G - mklabel: msdos device: "{{ output }}" @@ -32,7 +30,10 @@ steps: - apt: install packages: - linux-image-amd64 + - locales-all + - openssh-server - python3 + - sudo tag: / unless: rootfs_unpacked diff --git a/worker-subplot.yml b/worker-subplot.yml index 5e4c1dc..8cf09ec 100644 --- a/worker-subplot.yml +++ b/worker-subplot.yml @@ -15,19 +15,17 @@ dest: /etc/network/interfaces - apt: name: - - openssh-server - - sudo - build-essential + - cargo + - graphviz + - librsvg2-bin + - locales-all - pandoc - pandoc-citeproc + - plantuml + - texlive-fonts-recommended - texlive-latex-base - texlive-latex-recommended - - texlive-fonts-recommended - - librsvg2-bin - - graphviz - - plantuml - - cargo - - locales-all - user: comment: "Worker" name: worker @@ -51,15 +49,6 @@ owner: root group: root mode: 0600 - - file: - state: directory - path: /workspace - - lineinfile: - path: /etc/fstab - regexp: '^/dev/vdb' - line: '/dev/vdb /workspace ext4 defaults 0 2' vars: host: worker ansible_python_interpreter: /usr/bin/python3 - user_pub: | - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAlECa3tbFGXhB3Zh/4/GhM11THOThVfiuLqqJ2dpWHEClzpKJHpzzwWt7g9z/MMQNMsUJLy+okz+De6hdjjmYJ9kG9Sr3H4YKq6itGQMj7L/cH3WS3ynp0uy0oW3hf932vDZKQ8iy9vczXH+ERYl+4TYae1Jp4Hyf4/2IYxEfuhKctvSvqySST3Qk9JNZ71HFGOWhjH/MmoCLoT1v+HkqmHdYf/GMKGRo3gqCEGgCgNErYYIyKm3OF3dHXK+hyGLE/cZNu6fU5woW3rvtUCFt08Ri2pm0cnXXJn9jQIMxfS5Kkf64svwgzKmPqgX1f4flopYPlsBXduCgzbJvj+lpgauAk/i1A5B01CFa9sI4C6pHZmwk1qxRwN+4IXL2CQt+tDgYC84ZDDd8R7cNyL22a3KhMQmdHtvog1beAa3Ab+J+cafkXXN+Es9f1wQjzk7DiHupmJIVofBvPP+cRcB46rwha6ati8Fa5QkT9rXFNqQsKk7jq8TIi54Bm15OOa0jInGG3TM17b9Ftu2WTJSAaqgBnDfZiInK7HEvC6K/IBljrN3oGagmFZPrAvzw7d6C2/nKFAQtfoMcE5oWVDrJyjsmJ8oaru0E8rwj7mMvyKPgEMnXTGXLWDgEo50+i291m4bkCxVwiOPbPRvdMll1Y8qfBAPT76sY4Ikgcw/2iw== openpgp:0xBBE80E50 diff --git a/worker-vmdb2.vmdb b/worker-vmdb2.vmdb index f91a353..be9ab2d 100644 --- a/worker-vmdb2.vmdb +++ b/worker-vmdb2.vmdb @@ -1,8 +1,6 @@ -# An image for running the Ick contractor inner VM. - steps: - mkimg: "{{ output }}" - size: 10G + size: 4G - mklabel: msdos device: "{{ output }}" @@ -20,6 +18,8 @@ steps: - mount: / + - virtual-filesystems: / + - unpack-rootfs: / - debootstrap: buster @@ -30,7 +30,10 @@ steps: - apt: install packages: - linux-image-amd64 + - locales-all + - openssh-server - python3 + - sudo tag: / unless: rootfs_unpacked diff --git a/worker-vmdb2.yml b/worker-vmdb2.yml index 45b26ae..a202e15 100644 --- a/worker-vmdb2.yml +++ b/worker-vmdb2.yml @@ -24,7 +24,6 @@ - kpartx - locales-all - moreutils - - openssh-server - pandoc - parted - python3-all @@ -33,7 +32,6 @@ - python3-jinja2 - python3-yaml - qemu-utils - - sudo - user: comment: "Worker" name: worker @@ -57,15 +55,6 @@ owner: root group: root mode: 0600 - - file: - state: directory - path: /workspace - - lineinfile: - path: /etc/fstab - regexp: '^/dev/vdb' - line: '/dev/vdb /workspace ext4 defaults 0 2' vars: host: worker ansible_python_interpreter: /usr/bin/python3 - user_pub: | - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAlECa3tbFGXhB3Zh/4/GhM11THOThVfiuLqqJ2dpWHEClzpKJHpzzwWt7g9z/MMQNMsUJLy+okz+De6hdjjmYJ9kG9Sr3H4YKq6itGQMj7L/cH3WS3ynp0uy0oW3hf932vDZKQ8iy9vczXH+ERYl+4TYae1Jp4Hyf4/2IYxEfuhKctvSvqySST3Qk9JNZ71HFGOWhjH/MmoCLoT1v+HkqmHdYf/GMKGRo3gqCEGgCgNErYYIyKm3OF3dHXK+hyGLE/cZNu6fU5woW3rvtUCFt08Ri2pm0cnXXJn9jQIMxfS5Kkf64svwgzKmPqgX1f4flopYPlsBXduCgzbJvj+lpgauAk/i1A5B01CFa9sI4C6pHZmwk1qxRwN+4IXL2CQt+tDgYC84ZDDd8R7cNyL22a3KhMQmdHtvog1beAa3Ab+J+cafkXXN+Es9f1wQjzk7DiHupmJIVofBvPP+cRcB46rwha6ati8Fa5QkT9rXFNqQsKk7jq8TIi54Bm15OOa0jInGG3TM17b9Ftu2WTJSAaqgBnDfZiInK7HEvC6K/IBljrN3oGagmFZPrAvzw7d6C2/nKFAQtfoMcE5oWVDrJyjsmJ8oaru0E8rwj7mMvyKPgEMnXTGXLWDgEo50+i291m4bkCxVwiOPbPRvdMll1Y8qfBAPT76sY4Ikgcw/2iw== openpgp:0xBBE80E50 diff --git a/worker.vmdb b/worker.vmdb index 56218ae..264f7b8 100644 --- a/worker.vmdb +++ b/worker.vmdb @@ -1,5 +1,3 @@ -# An image for running the Ick contractor inner VM. - steps: - mkimg: "{{ output }}" size: 4G @@ -20,6 +18,8 @@ steps: - mount: / + - virtual-filesystems: / + - unpack-rootfs: / - debootstrap: buster @@ -30,7 +30,10 @@ steps: - apt: install packages: - linux-image-amd64 + - locales-all + - openssh-server - python3 + - sudo tag: / unless: rootfs_unpacked diff --git a/worker.yml b/worker.yml index 7551a56..8d94f28 100644 --- a/worker.yml +++ b/worker.yml @@ -15,10 +15,7 @@ dest: /etc/network/interfaces - apt: name: - - openssh-server - - sudo - build-essential - - locales-all - user: comment: "Worker" name: worker @@ -42,15 +39,6 @@ owner: root group: root mode: 0600 - - file: - state: directory - path: /workspace - # - lineinfile: - # path: /etc/fstab - # regexp: '^/dev/vdb' - # line: '/dev/vdb /workspace ext4 defaults 0 2' vars: host: worker ansible_python_interpreter: /usr/bin/python3 - user_pub: | - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAlECa3tbFGXhB3Zh/4/GhM11THOThVfiuLqqJ2dpWHEClzpKJHpzzwWt7g9z/MMQNMsUJLy+okz+De6hdjjmYJ9kG9Sr3H4YKq6itGQMj7L/cH3WS3ynp0uy0oW3hf932vDZKQ8iy9vczXH+ERYl+4TYae1Jp4Hyf4/2IYxEfuhKctvSvqySST3Qk9JNZ71HFGOWhjH/MmoCLoT1v+HkqmHdYf/GMKGRo3gqCEGgCgNErYYIyKm3OF3dHXK+hyGLE/cZNu6fU5woW3rvtUCFt08Ri2pm0cnXXJn9jQIMxfS5Kkf64svwgzKmPqgX1f4flopYPlsBXduCgzbJvj+lpgauAk/i1A5B01CFa9sI4C6pHZmwk1qxRwN+4IXL2CQt+tDgYC84ZDDd8R7cNyL22a3KhMQmdHtvog1beAa3Ab+J+cafkXXN+Es9f1wQjzk7DiHupmJIVofBvPP+cRcB46rwha6ati8Fa5QkT9rXFNqQsKk7jq8TIi54Bm15OOa0jInGG3TM17b9Ftu2WTJSAaqgBnDfZiInK7HEvC6K/IBljrN3oGagmFZPrAvzw7d6C2/nKFAQtfoMcE5oWVDrJyjsmJ8oaru0E8rwj7mMvyKPgEMnXTGXLWDgEo50+i291m4bkCxVwiOPbPRvdMll1Y8qfBAPT76sY4Ikgcw/2iw== openpgp:0xBBE80E50 -- cgit v1.2.1 From 0b02e3cdc5bfb107f368a9d88bf166016d855dd1 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 18 Apr 2020 09:35:33 +0300 Subject: Fix: create /workspace, my worker VM images no longer have it The less an image needs to provide, the better. --- contractor | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contractor b/contractor index e3475f3..43fdc43 100755 --- a/contractor +++ b/contractor @@ -119,7 +119,7 @@ class ContractorApplication(cliapp.Application): worker = OnWorker( dest, 'worker@{}'.format(worker_ip), verbose=self.verbose) - self.exec_sequence(worker, MountWSonWorker()) + self.exec_sequence(worker, Mkdir('/workspace'), MountWSonWorker()) execs = [] install = bs.install() @@ -451,6 +451,7 @@ class Mkdir(RemoteExecution): def __init__(self, pathname, owner='root', group='root', mode=0o755): self._argv = [ + 'sudo', 'install', '-d', '-o', str(owner), '-g', str(group), -- cgit v1.2.1