Puppet Class: dcos::agent
- Inherits:
- ::dcos
- Defined in:
- manifests/agent.pp
Overview
DC/OS agent node
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'manifests/agent.pp', line 3
class dcos::agent (
$public = false,
$attributes = {},
$mesos = {},
$executor = $::dcos::params::executor,
) inherits ::dcos {
anchor { 'dcos::agent::installed': }
if $public {
$dcos_mesos_service = 'dcos-mesos-slave-public'
$role = 'slave_public'
} else {
$dcos_mesos_service = 'dcos-mesos-slave'
$role = 'slave'
}
if $::dcos::bootstrap_url {
exec { 'dcos agent install':
command => "bash ${::dcos::download_dir}/dcos_install.sh ${role}",
path => '/bin:/usr/bin:/usr/sbin',
onlyif => 'test ! -d /opt/mesosphere',
refreshonly => false,
before => Anchor['dcos::agent::installed'],
}
}
case $::osfamily {
'Debian': {
# needed for DC/OS < 1.11
# make sure to try system library first
file_line { 'update LD_PATH /opt/mesosphere/environment':
path => '/opt/mesosphere/environment',
line => 'LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/opt/mesosphere/lib',
match => '^LD_LIBRARY_PATH=*',
replace => true,
require => Anchor['dcos::agent::installed'],
}
}
default: { }
}
$config_dir = $::dcos_config_path
file {"${config_dir}/../etc/mesos-executor-environment.json":
ensure => 'present',
content => dcos_sorted_json($executor),
notify => Service[$dcos_mesos_service],
require => Anchor['dcos::agent::installed'],
}
file {'/var/lib/dcos':
ensure => 'directory',
}
file_line {'default_tasks_max':
line => 'DefaultTasksMax=infinity',
path => '/etc/systemd/system.conf',
}
file {'/var/lib/dcos/mesos-slave-common':
ensure => 'present',
content => template('dcos/agent-common.erb'),
notify => Service[$dcos_mesos_service],
require => File['/var/lib/dcos'],
}
exec {'stop-dcos-agent':
command => "systemctl kill -s SIGUSR1 ${dcos_mesos_service} && systemctl stop ${dcos_mesos_service}",
path => '/bin:/usr/bin:/usr/sbin',
refreshonly => true,
onlyif => 'test -d /var/lib/dcos',
subscribe => File['/var/lib/dcos/mesos-slave-common'],
notify => Exec['dcos-systemd-reload'],
require => Anchor['dcos::agent::installed'],
}
exec { 'dcos-systemd-reload':
command => 'systemctl daemon-reload && rm -f /var/lib/mesos/slave/meta/slaves/latest',
path => '/bin:/usr/bin:/usr/sbin',
onlyif => 'test -d /var/lib/dcos',
refreshonly => true,
require => Anchor['dcos::agent::installed'],
}
service { $dcos_mesos_service:
ensure => 'running',
hasstatus => true,
hasrestart => true,
enable => true,
require => Anchor['dcos::agent::installed'],
}
}
|