k8s: Silence package manager and make it noninteractive
This patch sets debconf frontend to noninteractive by including
additional field in the first stanza of configuration file. Its
placement has been chosen arbitrarily - both 'Config' and 'Templates'
fields "are required in this first stanza" [1].
It also makes symlinking script more generic.
[1] man 5 debconf.conf (provided by "debconf-doc" in Ubuntu)
Issue-ID: SECCOM-235
Change-Id: If9dcc712d1ff7f527d3bc59f4c1709cffe4cbda5
Signed-off-by: Pawel Wieczorek <p.wieczorek2@samsung.com>
diff --git a/test/security/k8s/vagrant/dublin/Vagrantfile b/test/security/k8s/vagrant/dublin/Vagrantfile
index ce442eb..b8abcd1 100644
--- a/test/security/k8s/vagrant/dublin/Vagrantfile
+++ b/test/security/k8s/vagrant/dublin/Vagrantfile
@@ -8,6 +8,8 @@
synced_folder_main = "/vagrant"
synced_folder_config = "#{synced_folder_main}/config"
cluster_yml = "cluster.yml"
+apt_prefs_dir = "/etc/apt/apt.conf.d"
+apt_prefs = "95silent-approval"
vm_memory = 2 * 1024
vm_cpus = 1
@@ -35,6 +37,11 @@
usermod -aG docker "$USER"
SCRIPT
+$setup_debconf = <<-SCRIPT
+ echo "Setting debconf frontend to noninteractive"
+ sed -i'.orig' '/^Config:/a Frontend: noninteractive' /etc/debconf.conf
+SCRIPT
+
$install_sshpass = <<-SCRIPT
apt-get update
echo "Installing 'sshpass'"
@@ -69,11 +76,11 @@
done
SCRIPT
-$link_cluster_yml = <<-SCRIPT
+$link_file = <<-SCRIPT
SYNC_DIR="$1"
- CLUSTER_YML="$2"
- src="${SYNC_DIR}/${CLUSTER_YML}"
- dst="$HOME"
+ FILE="$2"
+ src="${SYNC_DIR}/${FILE}"
+ dst="$3"
echo "Symlinking ${src} to ${dst}"
ln -sf "$src" "$dst"
SCRIPT
@@ -115,6 +122,11 @@
config.vm.synced_folder ".", synced_folder_main, type: "rsync", rsync__exclude: "Vagrantfile"
config.vm.synced_folder "../../tools/config", synced_folder_config, type: "rsync"
+ config.vm.provision "setup_debconf", type: :shell, inline: $setup_debconf
+ config.vm.provision "link_apt_prefs", type: :shell, run: "always" do |s|
+ s.inline = $link_file
+ s.args = [synced_folder_config, apt_prefs, apt_prefs_dir]
+ end
config.vm.provision "link_dotfiles_root", type: :shell, run: "always" do |s|
s.inline = $link_dotfiles
s.args = synced_folder_config
@@ -140,8 +152,8 @@
config.vm.provision "get_rke", type: :shell, path: "../../tools/dublin/get_rke.sh"
config.vm.provision "link_cluster_yml", type: :shell, run: "always" do |s|
s.privileged = false
- s.inline = $link_cluster_yml
- s.args = [synced_folder_main, cluster_yml]
+ s.inline = $link_file
+ s.args = [synced_folder_main, cluster_yml, "$HOME"]
end
config.vm.post_up_message = operation_post_msg