]> gitweb.fluxo.info Git - puppet-virtual.git/commitdiff
KVMX support develop master
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 31 Dec 2017 00:34:26 +0000 (22:34 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 31 Dec 2017 00:34:26 +0000 (22:34 -0200)
manifests/kvm/instance.pp [new file with mode: 0644]
manifests/kvm/kvmx.pp [new file with mode: 0644]
manifests/kvm/manager.pp
manifests/kvm/manager/instance.pp
manifests/kvm/packages.pp [new file with mode: 0644]
templates/kvm.rules.erb [moved from templates/kvm_creator.rules.erb with 100% similarity]

diff --git a/manifests/kvm/instance.pp b/manifests/kvm/instance.pp
new file mode 100644 (file)
index 0000000..57e3bf0
--- /dev/null
@@ -0,0 +1,19 @@
+define virtual::kvm::instance(
+  $udev = false,
+) {
+  user { $name:
+    ensure  => present,
+    home    => "/home/${name}",
+    groups  => [ 'kvm' ],
+  }
+
+  if $udev == true {
+    file { "/etc/udev/rules.d/92-kvm-${name}.rules":
+      ensure  => present,
+      owner   => root,
+      group   => root,
+      mode    => '0644',
+      content => template('virtual/kvm.rules.erb'),
+    }
+  }
+}
diff --git a/manifests/kvm/kvmx.pp b/manifests/kvm/kvmx.pp
new file mode 100644 (file)
index 0000000..daed3d6
--- /dev/null
@@ -0,0 +1,41 @@
+class virtual::kvm::kvmx {
+  include virtual::kvm::packages
+  include virtual::networking
+
+  vcsrepo { '/usr/local/share/kvmx':
+    ensure   => present,
+    provider => git,
+    source   => 'https://git.fluxo.info/kvmx',
+    revision => 'd2263b94f93e0c0b7549c5a84c18834f8e6e8f58',
+    owner    => 'root',
+    group    => 'root',
+  }
+
+  file { '/usr/local/bin/kvmx':
+    ensure  => '/usr/local/share/kvmx/kvmx',
+    owner   => 'root',
+    group   => 'root',
+    require => Vcsrepo['/usr/local/share/kvmx'],
+  }
+
+  file { '/usr/local/bin/kvmx-create':
+    ensure  => '/usr/local/share/kvmx/kvmx-create',
+    owner   => 'root',
+    group   => 'root',
+    require => Vcsrepo['/usr/local/share/kvmx'],
+  }
+
+  file { '/usr/local/bin/kvmx-status':
+    ensure  => '/usr/local/share/kvmx/kvmx-status',
+    owner   => 'root',
+    group   => 'root',
+    require => Vcsrepo['/usr/local/share/kvmx'],
+  }
+
+  file { '/usr/local/bin/kvmx-vdagent':
+    ensure  => '/usr/local/share/kvmx/kvmx-vdagent',
+    owner   => 'root',
+    group   => 'root',
+    require => Vcsrepo['/usr/local/share/kvmx'],
+  }
+}
index 5c9b2fb1db0ef5c70aa86729ded03efe41216882..daed51e586042e94d5101e92114f2311d84fcdc0 100644 (file)
@@ -1,28 +1,19 @@
 class virtual::kvm::manager {
+  include virtual::kvm::packages
   include virtual::networking
 
   package { [
-    'qemu-kvm',
     'runit',
     'runit-systemd',
     'uml-utilities',
-    'qemu-kvm',
-    'socat',
-    'fakeroot',
-    'xorriso',
   ]:
     ensure  => present,
   }
 
-  # Provide a netboot image for VM installs
-  package { "debian-installer-9-netboot-${::architecture}":
-    ensure => present,
-  }
-
   vcsrepo { '/usr/local/share/kvm-manager':
     ensure   => present,
     provider => git,
-    source   => 'git://git.fluxo.info/kvm-manager.git',
+    source   => 'https://git.fluxo.info/kvm-manager',
     revision => 'b262c9597a3c5fd8c86ae63deda10f999048dfb8',
     owner    => 'root',
     group    => 'root',
index 621a3ca605d08a1586053a42cf16cad6b15a6c89..c9ecff90709f9d5f897ca7611834f13cd81aff11 100644 (file)
@@ -11,26 +11,14 @@ define virtual::kvm::manager::instance(
     creates => "/etc/sv/kvm/${name}",
   }
 
-  user { $name:
-    ensure  => present,
-    home    => "/home/${name}",
-    groups  => [ 'kvm' ],
-    require => Exec["kvm-creator-${name}"],
-  }
-
   exec { "update-service-kvm-${name}":
     command => "/usr/sbin/update-service --add /etc/sv/kvm/${name}",
     creates => "/etc/service/${name}",
     require => [ Exec["kvm-creator-${name}"], User["${name}"] ],
   }
 
-  if $udev == true {
-    file { "/etc/udev/rules.d/92-kvm_creator-${name}.rules":
-      ensure  => present,
-      owner   => root,
-      group   => root,
-      mode    => '0644',
-      content => template('virtual/kvm_creator.rules.erb'),
-    }
+  virtual::kvmx::instance { "$name":
+    udev    => $udev,
+    require => Exec["kvm-creator-${name}"],
   }
 }
diff --git a/manifests/kvm/packages.pp b/manifests/kvm/packages.pp
new file mode 100644 (file)
index 0000000..3505e7f
--- /dev/null
@@ -0,0 +1,15 @@
+class virtual::kvm::packages {
+  package { [
+    'qemu-kvm',
+    'socat',
+    'fakeroot',
+    'xorriso',
+  ]:
+    ensure  => present,
+  }
+
+  # Provide a netboot image for VM installs
+  package { "debian-installer-9-netboot-${::architecture}":
+    ensure => present,
+  }
+}