salt/pkg/smartos/esky/salt-minion.xml
Nahum Shalman 3e5742bb73 SmartOS: run salt minion in an audit context
This fixes an issue @njones11 was having with
multiple cron.present states.

"crontab -l <username>" would fail, so the temp file
would be empty, a given cronjob would go in
and then the "su - <username> crontab <temp file>" would
succeed.

This evaded debugging attempts because if you invoked the salt
minion manually from a login shell, an audit context would
already exist and the "crontab -l <username>" would succeed.

The hint was a message in the debug log of:
[ERROR   ] Command 'crontab -l legion' failed with return code: 1
[ERROR   ] stderr: crontab: The audit context for your shell has not
been set.

We explicitly set up an audit context when launching the salt minion
which allows "crontab -l <username>" to succeed.

This may fix other issues and something similar
should perhaps be applied to pkg/smartos/salt-minion.xml

"5417" was chosen arbitrarily
2014-06-19 16:11:49 -04:00

64 lines
2.0 KiB
XML

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
Created by Manifold
-->
<service_bundle type="manifest" name="salt-minion">
<service name="network/salt-minion" type="service" version="1">
<create_default_instance enabled="false"/>
<single_instance/>
<dependency name="network"
grouping="require_all"
restart_on="error"
type="service">
<service_fmri value="svc:/milestone/network:default"/>
</dependency>
<dependency name="filesystem"
grouping="require_all"
restart_on="error"
type="service">
<service_fmri value="svc:/system/filesystem/local"/>
</dependency>
<method_context/>
<exec_method type="method"
name="start"
exec="auditconfig -setaudit 0 lo 0,0,localhost 5417 SALT_PREFIX/bin/salt-minion"
timeout_seconds="60">
<method_context>
<method_environment>
<envvar name="PATH" value="/usr/local/sbin:/usr/local/bin:/opt/local/sbin:/opt/local/bin:/usr/sbin:/usr/bin:/sbin:SALT_PREFIX/bin" />
</method_environment>
</method_context>
</exec_method>
<exec_method type="method"
name="stop"
exec=":kill"
timeout_seconds="60"/>
<property_group name="startd" type="framework">
<propval name="duration" type="astring" value="child"/>
<propval name="ignore_error" type="astring" value="core,signal"/>
</property_group>
<stability value="Unstable"/>
<template>
<common_name>
<loctext xml:lang="C">Salt Minion</loctext>
</common_name>
<documentation>
<doc_link name="SaltStack Documentation"
uri="http://docs.saltstack.org"/>
</documentation>
</template>
</service>
</service_bundle>