- add basic consul manage nomad servers Reviewed-on: https://git.query.consul/unkinben/puppet-prod/pulls/200
70 lines
1.5 KiB
Puppet
70 lines
1.5 KiB
Puppet
# 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']
|
|
],
|
|
}
|
|
}
|
|
}
|