summaryrefslogtreecommitdiff
path: root/manifests/os/arch.pp
blob: 4f835461d21c4e22ae2caead1922bb2163b4f058 (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
48
49
50
51
52
53
54
55
56
57
58
define nspawn::os::arch (
  String $machine = $name,
) {

  ensure_packages(['arch-install-scripts'])

  exec { "/usr/bin/pacstrap /var/lib/machines/${machine} base puppet":
    creates => "/var/lib/machines/${machine}/etc/os-release",
  }

  file { "/var/lib/machines/${machine}/etc/systemd/network.d/20-puppet.conf":
    content => @(EOF)
    [Match]
    Name=host0

    [Network]
    Address=10.0.0.43/23
    Gateway=10.0.0.1
    IPv6AcceptRA=1
    | EOF
  }

  $symlinks = [
    [ '/etc/systemd/system/dbus-org.freedesktop.network1.service', 
      '/usr/lib/systemd/system/systemd-networkd.service' ],
    [ '/etc/systemd/system/multi-user.target.wants/systemd-networkd.service',
      '/usr/lib/systemd/system/systemd-networkd.service' ],
    [ '/etc/systemd/system/sockets.target.wants/systemd-networkd.socket', 
      '/usr/lib/systemd/system/systemd-networkd.socket' ],
    [ '/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service', 
      '/usr/lib/systemd/system/systemd-network-generator.service' ],
    [ '/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service', 
      '/usr/lib/systemd/system/systemd-networkd-wait-online.service' ],
  ]

  $symlinks.each |$pair| {
    $where = $pair[0]
    $target = $pair[1]
    file { "/var/lib/machines/${machine}/${where}":
      ensure => link,
      target => $target,
    }
  }


  file { "/var/lib/machines/${machine}/etc/systemd/network.d/20-puppet.conf":
    content => @(EOF)
    [Match]
    Name=host0

    [Network]
    Address=10.0.0.43/23
    Gateway=10.0.0.1
    IPv6AcceptRA=1
    | EOF
  }

}