aboutsummaryrefslogtreecommitdiff
path: root/manifests/kvm/instance.pp
blob: e580754e0528d583df11eaa1de8b4acd83be07a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
define virtual::kvm::instance(
  $iface,
  $udev  = false,
  $shell = undef,
) {
  user { $name:
    ensure   => present,
    password => '*',
    home     => "/home/${name}",
    groups   => [ 'kvm' ],
    shell    => $shell,
  }

  file { [ "/home/${name}", "/home/${name}/vms", "/home/${name}/vms/${name}" ]:
    ensure  => directory,
    owner   => $name,
    group   => $name,
    mode    => '0755',
    require => User[$name],
  }

  file { "/etc/network/interfaces.d/${name}":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => '0644',
    content => template('virtual/interface.erb'),
    require => User[$name],
  }

  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'),
      require => User[$name],
    }

    exec { "udev-reload-kvm-${name}":
      command     => "/bin/udevadm control --reload-rules && /bin/udevadm trigger",
      refreshonly => true,
      subscribe   => File["/etc/udev/rules.d/92-kvm-${name}.rules"],
    }
  }
}