LaunchDaemon
Prerequisites#
Emcee should be preinstalled on each host. Installation.
Emcee queue server is expected to be shared among Android and iOS workers. Proceed to Android doc to learn how to deploy Emcee queue on Linux using Kubernetes.
Example LaunchDaemon worker config#
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string><emcee></string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/opt/emcee/libexec/emcee-ios</string>
<string>distWork</string>
<string>--hostname=<%= @hostname %></string>
<string>--queue-server=http://queue-server</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>SessionCreate</key><true/>
<key>UserName</key><string>_emcee</string>
<key>GroupName</key><string>staff</string>
<key>WorkingDirectory</key><string>/opt/emcee</string>
<key>StandardErrorPath</key><string>/var/log/emcee/stderr.log</string>
<key>StandardOutPath</key><string>/var/log/emcee/stdout.log</string>
</dict>
</plist>
Config above is template actually. Do not forget to substitute effective hostname
queue-server domain should be resolvable in your network
Distributing and applying this confing may be done with Puppet, Ansible, etc. It is out of scope of this topic.