summaryrefslogtreecommitdiffstats
path: root/share/create-scripts/debootstrap
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@open-infrastructure.net>2021-08-19 07:50:51 +0000
committerDaniel Baumann <daniel.baumann@open-infrastructure.net>2021-08-19 09:20:40 +0000
commitc0060c31fdf1c2af1454c5877c311b6680618084 (patch)
treed85f1dac8fbc7ab60a55acef6a4a777893d2209a /share/create-scripts/debootstrap
parentAdding cdebootstrap support. (diff)
downloadcompute-tools-c0060c31fdf1c2af1454c5877c311b6680618084.tar.xz
compute-tools-c0060c31fdf1c2af1454c5877c311b6680618084.zip
Refactor debootstrap create script (FIXME WIP).
Signed-off-by: Daniel Baumann <daniel.baumann@open-infrastructure.net>
Diffstat (limited to 'share/create-scripts/debootstrap')
-rwxr-xr-xshare/create-scripts/debootstrap178
1 files changed, 0 insertions, 178 deletions
diff --git a/share/create-scripts/debootstrap b/share/create-scripts/debootstrap
deleted file mode 100755
index bef75b1..0000000
--- a/share/create-scripts/debootstrap
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2014-2021 Daniel Baumann <daniel.baumann@open-infrastructure.net>
-#
-# SPDX-License-Identifier: GPL-3.0+
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-set -e
-
-PROJECT="open-infrastructure"
-SOFTWARE="compute-tools"
-PROGRAM="container"
-
-SCRIPT="$(basename ${0})"
-
-HOOKS="/etc/${SOFTWARE}/hooks"
-MACHINES="/var/lib/machines"
-
-Parameters ()
-{
- GETOPT_LONGOPTIONS="name:,architecture:,distribution:,mirror:,password:"
- GETOPT_OPTIONS="n:,a:,d:,m:,p:"
-
- PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${SCRIPT} --options ${GETOPT_OPTIONS} --shell sh -- ${@})"
-
- if [ "${?}" != "0" ]
- then
- echo "'${SCRIPT}': getopt exit" >&2
- exit 1
- fi
-
- eval set -- "${PARAMETERS}"
-
- while true
- do
- case "${1}" in
- -n|--name)
- NAME="${2}"
- shift 2
- ;;
-
- -a|--architecture)
- ARCHITECTURE="${2}"
- shift 2
- ;;
-
- -d|--distribution)
- DISTRIBUTION="${2}"
- shift 2
- ;;
-
- -m|--mirror)
- MIRROR="${2}"
- shift 2
- ;;
-
- -p|--password)
- PASSWORD="${2}"
- shift 2
- ;;
-
- --)
- shift 1
- break
- ;;
-
- *)
- echo "'${SCRIPT}': getopt error" >&2
- exit 1
- ;;
- esac
- done
-}
-
-Usage ()
-{
- echo "Usage: container build -n|--name NAME -s|--script ${SCRIPT} -- [-a|--architecture ARCHITECTURE] [-d|--distribution DISTRIBUTION] [-m|--mirror MIRROR] [-p|--password PASSWORD}" >&2
- exit 1
-}
-
-Parameters "${@}"
-
-if [ -z "${NAME}" ]
-then
- Usage
-fi
-
-if [ -e "${MACHINES}/${NAME}" ]
-then
- echo "'${NAME}': container already exists" >&2
- exit 1
-fi
-
-case "${SCRIPT}" in
- cdebootstrap)
- BOOTSTRAP="/usr/bin/cdebootstrap"
- BOOTSTRAP_OPTIONS=""
- ;;
-
- debootstrap)
- BOOTSTRAP="/usr/sbin/debootstrap"
- BOOTSTRAP_OPTIONS=""
- ;;
-
- mmdebstrap)
- BOOTSTRAP="/usr/bin/mmdebstrap"
- BOOTSTRAP_OPTIONS="--mode=root"
- ;;
-esac
-
-if [ ! -x "${BOOTSTRAP}" ]
-then
- echo "'${NAME}': ${BOOTSTRAP} - no such file." >&2
- exit 1
-fi
-
-if [ "$(id -u)" -ne 0 ]
-then
- echo "'${NAME}': need root privileges" >&2
- exit 1
-fi
-
-ARCHITECTURE="${ARCHITECTURE:-$(dpkg --print-architecture)}"
-DISTRIBUTION="${DISTRIBUTION:-bullseye}"
-MIRROR="${MIRROR:-https://deb.debian.org/debian}"
-PASSWORD="${PASSWORD:-$(dd if=/dev/urandom bs=12 count=1 2> /dev/null | base64)}"
-
-INCLUDE="dbus"
-
-case "${MIRROR}" in
- https*)
- INCLUDE="${INCLUDE},apt-transport-https,ca-certificates"
- ;;
-esac
-
-# Pre hooks
-for FILE in "${HOOKS}/pre-${SCRIPT}".* "${HOOKS}/${NAME}.pre-${SCRIPT}"
-do
- if [ -x "${FILE}" ]
- then
- "${FILE}"
- fi
-done
-
-# Run
-mkdir -p "${MACHINES}"
-${BOOTSTRAP} ${BOOTSTRAP_OPTIONS} --arch=${ARCHITECTURE} --include=${INCLUDE} ${DISTRIBUTION} ${MACHINES}/${NAME} ${MIRROR}
-
-# Cleaning apt cache
-chroot "${MACHINES}/${NAME}" apt clean
-
-# Setting hostname
-echo "${NAME}" > "${MACHINES}/${NAME}/etc/hostname"
-
-# Setting root password
-echo root:${PASSWORD} | chroot "${MACHINES}/${NAME}" chpasswd
-echo "${NAME}: root password set to '${PASSWORD}'."
-
-# Post hooks
-for FILE in "${HOOKS}/post-${SCRIPT}".* "${HOOKS}/${NAME}.post-${SCRIPT}"
-do
- if [ -x "${FILE}" ]
- then
- "${FILE}"
- fi
-done