commit a75f138b107858f6d1de8081f897d3beb351debd Author: josephsmendoza Date: Wed Nov 2 20:37:39 2022 +0000 initial commit diff --git a/machinectl-oci-import.sh b/machinectl-oci-import.sh new file mode 100644 index 0000000..55f8561 --- /dev/null +++ b/machinectl-oci-import.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +set -euo pipefail +mkdir -p /run/nspawn-oci + +skopeo_output=$(echo /run/nspawn-oci/$1 | sed s.://./.g) +mkdir -p $skopeo_output +skopeo copy $1 oci:$skopeo_output:latest + +umoci_output=/run/nspawn-oci/$2 +rm -rf $umoci_output +umoci --verbose unpack --image $skopeo_output $umoci_output + +mkdir -p /etc/systemd/nspawn +oci_config=$umoci_output/config.json +nspawn_config=/etc/systemd/nspawn/$2.nspawn + +cat << end > $nspawn_config +[Exec] +ProcessTwo=true +end + +for environment in $(jq --compact-output '.process.env' $oci_config | sed "s/[][]//g;s/\"//g;s/,/ /g") +do +echo $environment +cat << end >> $nspawn_config +Environment=$environment +end +done + +cat << end >> $nspawn_config +WorkingDirectory=$(jq --compact-output '.process.cwd' $oci_config | sed "s/[][]//g;s/\"//g;s/,/ /g") +Parameters=$(jq --compact-output '.process.args' $oci_config | sed "s/[][]//g;s/,/ /g") +end + +machinectl import-fs $umoci_output/rootfs $2 +echo "$2 created from $1. start/enable via systemd-nspawn@$2.service" \ No newline at end of file diff --git a/nspawn-oci-import.sh b/nspawn-oci-import.sh new file mode 100644 index 0000000..6ec6b0a --- /dev/null +++ b/nspawn-oci-import.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail +mkdir -p /run/nspawn-oci + +skopeo_output=$(echo /run/nspawn-oci/$1 | sed s.://./.g) +mkdir -p $skopeo_output +skopeo copy $1 oci:$skopeo_output:latest + +umoci_output=/run/nspawn-oci/$2 +rm -rf $umoci_output +umoci --verbose unpack --image $skopeo_output $umoci_output + +mkdir -p /etc/systemd/system/systemd-nspawn@$2.service.d/ +override=/etc/systemd/system/systemd-nspawn@$2.service.d/override.conf +cat << end > $override +[Service] +ExecStart=systemd-nspawn --oci-bundle=/var/lib/machines/%i --machine %i +end + +machinectl import-fs $umoci_output $2 +echo "$2 created from $1. start/enable via systemd-nspawn@$2.service" \ No newline at end of file