# profiles::nomad::node class profiles::nomad::node ( Stdlib::Absolutepath $data_dir = '/data/nomad', Integer $bootstrap_expect = 3, Boolean $server = false, Boolean $client = false, Boolean $manage_service = true, Boolean $manage_user = true, String $user = 'nomad', String $group = 'nomad', ){ if $manage_user { # Define the group for Nomad group { $group: ensure => 'present', system => true, } # Define the user for Nomad user { $user: ensure => 'present', comment => 'Nomad System User', home => '/var/lib/nomad', managehome => true, shell => '/sbin/nologin', system => true, gid => $group, require => Group[$group], } } file { $data_dir: ensure => directory, owner => $user, group => $group, mode => '0755', require => [ User[$user], Group[$group], ], } mkdir::p {'/etc/nomad.d/':} -> file { '/etc/nomad.d/config.hcl': ensure => file, owner => 'root', group => 'root', mode => '0755', content => template('profiles/nomad/config.hcl.erb'), require => [ Package['nomad'], ], } if $manage_service { include ::systemd systemd::unit_file { 'nomad.service': content => template('profiles/nomad/nomad.service.erb'), enable => true, active => true, subscribe => [ File['/etc/pki/tls/vault/private.key'], File['/etc/nomad.d/config.hcl'] ], } } }