initial commit

This commit is contained in:
josephsmendoza
2022-11-02 20:37:39 +00:00
commit a75f138b10
2 changed files with 57 additions and 0 deletions
+36
View File
@@ -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"
+21
View File
@@ -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"