feat: add nomad profile/role
- add basic consul manage nomad servers
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# 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']
|
||||
],
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user