]> WPIA git - infra.git/commitdiff
upd: copy base image instead of creating fresh
authorFelix Dörre <felix@dogcraft.de>
Tue, 14 Mar 2017 14:05:21 +0000 (15:05 +0100)
committerFelix Dörre <felix@dogcraft.de>
Tue, 21 Mar 2017 09:06:27 +0000 (10:06 +0100)
This cuts down setup time from 60min to below 30min.

Change-Id: I2441788336d91963328549586dd9ae8b6e481e2a

modules/lxc/manifests/init.pp

index b0c64c4842e3f036ab0a2697f24d06689113c3a9..07cf459621528b44a9f8bdd7a960ee38a45c1c48 100644 (file)
@@ -4,6 +4,12 @@ class lxc {
     }
     package{ 'lxc':
         ensure => 'installed'
+    }->
+    exec {'lxc-base-image-created':
+        logoutput => on_failure,
+        command => '/usr/bin/lxc-create -n base-image -t debian -- -r stretch --packages=gnupg2,puppet,lsb-release,debconf-utils',# gnupg2 needed for puppet managing apt-keys
+        unless => '/usr/bin/test -d /var/lib/lxc/base-image',
+        timeout => '0'
     }
     define container ($contname, $ip, $dir = [], $bind = {}, $confline = []) {
         exec {"lxc-$contname-issue-cert":
@@ -14,10 +20,10 @@ class lxc {
 
         exec{ "lxc-$contname-created":
             logoutput => on_failure,
-            command   => "/usr/bin/lxc-create -n $contname -t debian -- -r stretch --packages=gnupg2", ## requires gnupg for puppet seed
+            command   => "/usr/bin/lxc-copy -n base-image -N $contname",
             unless    => "/usr/bin/test -d /var/lib/lxc/$contname",
             timeout   => '0',
-            require   => Package['lxc'],
+            require   => [Package['lxc'],Exec['lxc-base-image-created']],
         } -> file_line {"lxc-$contname-conf1":
             path   => "/var/lib/lxc/$contname/config",
             line   => 'lxc.network.type = veth',