diff --git a/parts/k8s/kubernetesprovisionsource.sh b/parts/k8s/kubernetesprovisionsource.sh index fc629fef33..2fd23f8b77 100755 --- a/parts/k8s/kubernetesprovisionsource.sh +++ b/parts/k8s/kubernetesprovisionsource.sh @@ -120,10 +120,17 @@ wait_for_file() { fi done } +wait_for_apt_locks() { + while fuser /var/lib/dpkg/lock /var/lib/apt/lists/lock /var/cache/apt/archives/lock >/dev/null 2>&1; do + echo 'Waiting for release of apt locks' + sleep 3 + done +} apt_get_update() { retries=10 apt_update_output=/tmp/apt-get-update.out for i in $(seq 1 $retries); do + wait_for_apt_locks timeout 30 dpkg --configure -a timeout 30 apt-get -f -y install timeout 120 apt-get update 2>&1 | tee $apt_update_output | grep -E "^([WE]:.*)|([eE]rr.*)$" @@ -135,10 +142,12 @@ apt_get_update() { fi done echo Executed apt-get update $i times + wait_for_apt_locks } apt_get_install() { retries=$1; wait_sleep=$2; timeout=$3; shift && shift && shift for i in $(seq 1 $retries); do + wait_for_apt_locks timeout 30 dpkg --configure -a timeout $timeout apt-get install --no-install-recommends -y ${@} [ $? -eq 0 ] && break || \ @@ -150,6 +159,7 @@ apt_get_install() { fi done echo Executed apt-get install --no-install-recommends -y \"$@\" $i times; + wait_for_apt_locks } systemctl_restart() { retries=$1; wait_sleep=$2; timeout=$3 svcname=$4 @@ -163,4 +173,4 @@ systemctl_restart() { sleep $wait_sleep fi done -} +} \ No newline at end of file diff --git a/parts/k8s/setup-custom-search-domains.sh b/parts/k8s/setup-custom-search-domains.sh index f78414880c..89cdc85327 100755 --- a/parts/k8s/setup-custom-search-domains.sh +++ b/parts/k8s/setup-custom-search-domains.sh @@ -4,5 +4,7 @@ source /opt/azure/containers/provision_source.sh sudo echo " dns-search " >> /etc/network/interfaces.d/50-cloud-init.cfg systemctl_restart 20 5 10 restart networking +wait_for_apt_locks retrycmd_if_failure 10 5 120 apt-get -y install realmd sssd sssd-tools samba-common samba samba-common python2.7 samba-libs packagekit +wait_for_apt_locks echo "" | realm join -U @`echo "" | tr /a-z/ /A-Z/` `echo "" | tr /a-z/ /A-Z/` \ No newline at end of file