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"],
}
}
}
|