From cc3086f70a70a59e2dbe42b84ded3e49bba70599 Mon Sep 17 00:00:00 2001 From: Mykola Malkov Date: Wed, 25 Jul 2018 13:24:19 +0300 Subject: [PATCH] TT#37257 Change source list back to custom one It is necessary to use separate apt database and source list because non management node has no internet access so is installed from management node so these additional packages have to be installed/accessible from sipwise repo. Change-Id: I4c1310320c4d66aba01af5ce00127f4757ec71ad --- templates/scripts/includes/deployment.sh | 27 ++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/templates/scripts/includes/deployment.sh b/templates/scripts/includes/deployment.sh index b2a9ff5..6187984 100755 --- a/templates/scripts/includes/deployment.sh +++ b/templates/scripts/includes/deployment.sh @@ -271,8 +271,31 @@ ensure_packages_installed() { fi done - DEBIAN_FRONTEND='noninteractive' apt-get update - DEBIAN_FRONTEND='noninteractive' apt-get -y --no-install-recommends install "${install_packages[@]}" + # Use separate apt database and source list because non management node has no internet access + # so is installed from management node so these additional packages have to be accessible from + # sipwise repo + local TMPDIR + TMPDIR=$(mktemp -d) + mkdir -p "${TMPDIR}/etc/preferences.d" "${TMPDIR}/statedir/lists/partial" \ + "${TMPDIR}/cachedir/archives/partial" + chown _apt -R "${TMPDIR}" + + echo "deb ${DEBIAN_URL}/debian/ ${DEBIAN_RELEASE} main contrib non-free" > \ + "${TMPDIR}/etc/sources.list" + + DEBIAN_FRONTEND='noninteractive' apt-get \ + -o dir::cache="${TMPDIR}/cachedir" \ + -o dir::state="${TMPDIR}/statedir" \ + -o dir::etc="${TMPDIR}/etc" \ + -o dir::etc::trustedparts="/etc/apt/trusted.gpg.d/" \ + update + + DEBIAN_FRONTEND='noninteractive' apt-get \ + -o dir::cache="${TMPDIR}/cachedir" \ + -o dir::state="${TMPDIR}/statedir" \ + -o dir::etc="${TMPDIR}/etc" \ + -o dir::etc::trustedparts="/etc/apt/trusted.gpg.d/" \ + -y --no-install-recommends install "${install_packages[@]}" for pkg in "${install_packages[@]}"; do if is_package_installed "${pkg}"; then