[PATCH 5/7] lxcinstaller: install Debian trees with debootstrap

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This allows boostrapping Debian into LXC containers.

XXX: This currently relies on debootstrap fixes that are pending review:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890418
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890419
The working debootstrap tree is here:
https://github.com/lkundrak/debootstrap/tree/lr/lxc-install
---
 virtinst/lxcinstaller.py | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/virtinst/lxcinstaller.py b/virtinst/lxcinstaller.py
index f5c416d52..c50710933 100644
--- a/virtinst/lxcinstaller.py
+++ b/virtinst/lxcinstaller.py
@@ -17,6 +17,7 @@
 # MA 02110-1301 USA.
 
 import os
+import re
 
 from . import urlfetcher
 from . import util
@@ -87,6 +88,22 @@ class LXCInstaller(Installer):
     # Run the bootstrap in installer phase #
     ########################################
 
+    def _init_debootstrap(self, guest):
+        if re.match(r'i[4-9]86', guest.os.arch):
+            arch = "i386"
+        elif guest.os.arch == "x86_64":
+            arch = "amd64"
+        else:
+            arch = guest.os.arch
+
+        guest.os.init = "/usr/sbin/debootstrap"
+        guest.os.initargs.add_new().val = "--arch"
+        guest.os.initargs.add_new().val = arch
+        guest.os.initargs.add_new().val = self._repo_version
+        guest.os.initargs.add_new().val = self._target_tree
+        if self._repo_url:
+            guest.os.initargs.add_new().val = self._repo_url
+
     ########################
     # Private method impls #
     ########################
@@ -130,6 +147,9 @@ class LXCInstaller(Installer):
         self._remove_installed_config(guest)
 
         if isinstall:
-            raise ValueError(_("%s repositories are not supported") % self._repo_type)
+            if self._repo_type == "deb":
+                self._init_debootstrap(guest)
+            else:
+                raise ValueError(_("%s repositories are not supported") % self._repo_type)
         else:
             self._restore_installed_config(guest)
-- 
2.14.3

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list



[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux